HA8LFK Diplexer Characterisation

I decided to build or buy a diplexer to communicate with LEO (low earth orbit) satellites that use cross-band operation.

Some of the satellites in LEO are U/V or V/U. U/V means the satellite receives at UHF but transmits at VHF. V/U is the other way around.

My space aerials are in the attic and there are only two cables going from the shack to the attic. One thick cable is used solely for HF, and the other thinner cable is used for higher bands, 6m, 2m and 70cm.

A diplexer allows the use of different frequencies on the same cable. In this case it allows both VHF and UHF aerials to be used on the same cable. The diplexer has one input (from the transceiver) and two outputs (one to the VHF aerial and one to the UHF aerial) when transmitting. The diplexer blocks VHF signals going to the UHF output, and also blocks UHF signals going to the VHF output. In this way the transmit power goes where it is most wanted, that is, to the appropriate aerial. 

On receive the same ports are used but there are two inputs (one from each aerial) and one output (to the transceiver).

I decided not to built a diplexer for VHF/UHF operation as fiddling with inductors at those frequencies can be a bit hit-or-miss unless you use SMD components. It’s much easier to buy one, especially for those of us who are challenged when building VHF and UHF inductors. There are a few diplexers on offer, and I chose one on eBay from HA8LFK. It seems well built and works fine. The 50W limit certainly won’t affect me just now as the highest power I can send on VHF/UHF is 5W. One drawback may be that the sockets are SMA and my shack mostly uses BNC for VHF and above.

HA8LFK Diplexer

I have characterised this diplexer by sending sine waves of various frequencies through its transmit path and measuring the outputs. The signals came from my WaveTek model 1062 sweep generator and were measured at my HP 54615B scope. I used SMA/BNC adapters and short BNC cables to connect the diplexer to the test equipment.HA8LFK diplexer characteristics

As you can see the sweep generator signal is almost flat. The VHF port peaks a little lower than the 2m band. The UHF port peaks a little lower than the UHF band. Neither seems significant.

The insertion loss on transmit is 1.45dB at 2m, and 1.79dB at 70cm.

I didn’t make a graph for receive but did measure the insertion losses: 0.72dB at 2m, and 1.24dB at 70cm. This surprised me as I would have thought the diplexer would be symmetric, but it appears not.

Now to use it in anger …

70cms Cebik Moxon Aerial for LEO Satellites

The 70cms (435MHz) version of the Cebik Moxon is now built and shows an SWR of 1.1 in the shack as measured with my AW07A antenna analyser. Hopefully this SWR will not change too much when I put in in the attic.

The elements are made out of #12 AWG wire from RS Components. The sizes are as specified in Cebik’s original article published in the ARRL QST in August 2001 “A Simple Fixed Antenna for VHF/UHF Satellite Work”. The phasing line is built as for the 2m version using RG59U coax cable from BitsBox only using a length for the 70cm band. The matching line is made from old 75Ω cable TV cable again at 70cm band length. The elements and lines are explained in my earlier post about Building the 2m Cebik Moxon.

The elements are stapled to an old wooden curtain pole to keep the driven elements and reflectors apart. At the ‘floating’ end they are kept apart using the insulation from old multi-core telephone cable and the shaft from cotton buds. I’ll hot-glue these in place once the aerial is in the attic. The distance between these floating ends is the most critical in the whole aerial.


I plan to use this aerial with the 2m version and suitable diplexers to communicate with U/V or V/U LEO satellites. Watch this space!

SSTV Award

The International Space Station transmitted some slow-scan TV images during February 2019. My 2m Cebik Moxon in the attic was easily able to receive these images even at quite low elevations. No need to be outside pointing a Yagi in the February chill!

SSTV Image from ISS
SSTV Image from ISS

The images I received can be seen in the ARISS SSTV Gallery. You’ll need to put in my callsign: MM0GYG.

They handed out awards too.


Great fun!

Satellite Aerial Link Budget

I’ve had a little luck transmitting to a satellite. I’m using packet as I can use the 2m Cebik Moxon aerial for both transmit and receive. To see if the ISS should be able to hear my signals I wrote a link budget program in Racket. There’s a few assumptions in it but it seems to confirm the ISS should have no problem hearing me on 2m. The program shows:

Transmit power (W)?
Frequency (MHz)?
Elevation (°)?
Transmit power:   5 W (36.99 dBm)
Frequency:        145.825 MHz
Satellite height: 403 km
Elevation angle:  40°

Satellite is 5396 km away
Signal at satellite is 9 dB above noise

This seems borne out as I do receive what seem to be digipeated packets just after I transmit them. But I can’t confirm on the ISS site that they are real and not just an echo from somewhere.

70cms doesn’t look as good:

Transmit power (W)?
Frequency (MHz)?
Elevation (°)?
Transmit power:   5 W (36.99 dBm)
Frequency:        435.255 MHz
Satellite height: 403 km
Elevation angle:  40°

Satellite is 5396 km away
Signal at satellite is -0 dB above noise

Increasing the power to 25W might work:

Transmit power (W)?
Frequency (MHz)?
Elevation (°)?
Transmit power:   25 W (43.98 dBm)
Frequency:        435.255 MHz
Satellite height: 403 km
Elevation angle:  40°

Satellite is 5396 km away
Signal at satellite is 7 dB above noise

I’m currently building the 70cms version and will try some FM voice contacts.

Here’s the link budget program:

#lang racket
; link budget for Cebik Moxon in attic
; Andy Fletcher Jan 9, 2019 

; definitions
(define (get_user_input prompt)
    (displayln prompt)
    (string->number (read-line))))

(define (log10 n)
  (/ (log n) (log 10)))

(define (watts2dbm w)
  (* 10 (log10 (* w 1000))))

(define (degrees2radians d)
  (* (/ pi 180) d))

(define (square x)
  (* x x))

; distance to satellite in km
(define (satellite_distance e_degrees height)
  (let* ([e (degrees2radians e_degrees)]
         [earth_radius 6371]    ; kms
         [r (+ height earth_radius)] ; distance between geocentre and satellite
    (sqrt (+ (square (* earth_radius (cos e))) (square r) (- (square earth_radius)) (- (* earth_radius (cos e)))))))

; free space path loss
(define (fspl f d)
  (- (+ (* 20 (log10 f)) (* 20 (log10 d)) 32.45)))

; execute
(let* (
       [ptx_watts (get_user_input "Transmit power (W)?")]
       [f         (get_user_input "Frequency (MHz)?")]
       [e_degrees (get_user_input "Elevation (°)?")]
       [h 403]               ; satellite height in kms
       [cable_loss -3.55]    ; measured dB
       [tx_gain 6.0]         ; Cebik Moxon modelled gain in dB
       [roof_loss -6.0]      ; assumed loss of signal going through the roof in dB
       [rx_gain 2.0]         ; assumed receive gain at satellite in dB
       [sat_max_sens 124.0]  ; assumed satellite maximum sensitivity in dBm
       [distance_to_satellite (satellite_distance e_degrees h)]
       [ptx (watts2dbm ptx_watts)]
    (printf "Transmit power:   ~a W (~a dBm)\n" ptx_watts (~r ptx #:min-width 1 #:precision 2))
    (printf "Frequency:        ~a MHz\n" f)
    (printf "Satellite height: ~a km\n" (~r h #:min-width 1 #:precision 0))
    (printf "Elevation angle:  ~a°\n" e_degrees)
    (printf "\nSatellite is ~a km away\n" (~r distance_to_satellite #:min-width 1 #:precision 0))
    (printf "Signal at satellite is ~a dB above noise\n"
            (~r  (+ ptx cable_loss tx_gain roof_loss (fspl f distance_to_satellite) rx_gain sat_max_sens) #:min-width 1 #:precision 0))))

Building the 2m Cebik Moxon

The Cebik Moxon is made up of four driven elements, two reflectors, a phasing line and a matching line.

The matching line is needed to match the 25Ω impedance presented by the aerial to the 50Ω impedance expected by the coax feed to the radio. It is made up of parallel quarter-wave lengths of 75Ω cable. I modelled this in an excellent application SimSmith by AE6TY to see how critical its length is (the answer being not very much). The SWR is 1.125 at 351mm, and only rises to 1.13 at 330mm and 354.5mm.

I worked out the velocity factor of the RG59U 75Ω cable (bought from Bitsbox who were very prompt and helpful but didn’t know its velocity factor) by building a TDR out of a circuit to make a fast pulse and my HP54615B scope. As usual Alan, W2AEW came to the rescue with this video #88: Cheap and simple TDR using an oscilloscope and 74AC14 Schmitt Trigger Inverter.

Here are my sums to work out the velocity factor of the RG59U cable measured with the TDR circuit.

5m takes 48.8ns between peaks, so the signal takes \frac{48.8}{2} = 24.4ns  to go 5m which is 4.88ns/m, so the speed is  \frac{1}{4.88ns/m} = 204.918 \times 10^{6} m/s, so the Velocity Factor, VF = \frac{204.918 \times 10^{6}}{c} = 0.683.

Using EE Toolkit on iPhone, in air ¼ 𝜆 is 513.7mm at 145.9MHz. So ¼ 𝜆 should be 513.7 x VF = 350.857mm.

SimSmith Matching Line
SimSmith Matching Line

The phasing line is just a quarter wavelength of 50Ω cable which feeds the other element 90° out of phase from the first. Here’s an Lissajous FigureXY scope picture of the phasing. It should be a bit more upright but I think that is probably due to the way I’m connecting it to the scope rather than the phasing line itself.

Now the bit I am particularly bad at: putting it all together.

I made the elements out of 6mm aluminium round tube. The tube is easy to cut with a hacksaw and to bend using a pipe bender. The matching section and phasing line are connected to the rods using solder tags and screws. The driven elements and reflectors are kept apart by whittled pea sticks. This distance between the driven elements and the reflectors is the most critical measurement. The pea sticks are held in place with shrink wrap and friction. The elements are hot-glued to a plastic drain pipe. This is not very robust, but works as long as the aerial isn’t disturbed too much. I’ll have to fix this properly if I want to move the aerial from the attic to the garden.

Aerial in attic
Aerial in attic

Cebik Moxon Aerial and Packet

When used with my FT–60 transceiver handheld, which is FM only, the Cebik Moxon picks up satellites AO–85, NO–84, AO–91, AO–92 and ISS SSTV. I don’t know enough about satellites to know if it’s getting good signals but I can hear many voice stations, amongst them G0VHS, EA7IFT, G0IIQ, OH1ON, EB2DJ, G0FGX, PE1NIL.

Using DireWolf and Xastir as described in my FT60 PTT page, we get

A map of stations
A map of stations

Masthead Preamp

The cable to the Cebik Moxon aerial in the attic is RG58 and has a loss of over 3dB so I’m considering putting in a masthead preamp.

The cable loss was measured by sending the AW07A antenna analyser signal at 145.8MHz down it and measuring the RMS voltage at the HP 54615B scope. This was 194mV. The AW07A signal direct to the scope was 292mV. So the voltage loss was 20log \frac{292}{194} = 3.55dB.

However, it’s not just a matter of inserting the preamp into the signal path. It needs powered somehow and protected from transmit RF.

Here’s some scribbles from my lab book showing my initial thoughts on how to do this. I got an M–100 preamp for Xmas so I’ll use that.

Preamp Scribbles
Preamp Scribbles

2m Omnidirectional Aerial

I thought it was about time I understood aerials more, so I am building an omnidirectional aerial for LEO satellite use.

I’m hopeful that I will be able to use the aerial in my attic, but if not I’ll use it in the garden. The aerial I’ve picked is documented in the ARRL Antenna Book in one of the supplementary PDFs. The article which describes it was published in QST in 2001 and is called “A Simple Fixed Antenna for VHF/UHF Satellite Work” by L. B. Cebik, W4RNL. I can’t link to it because it is copyrighted by ARRL but I explain most of it below. It is a pair of Moxon rectangles at 90° to each other.

I made a model of the aerial in the excellent Mac application cocoaNEC by Kok Chen, W7AY. The other aerial modelling applications I looked at were all based on spreadsheet tables. I found the programming approach used by cocoaNEC easier to use. Here’s the shape of the aerial as shown by cocoaNEC.

Cebik Geometry
Cebik Geometry

The driven elements are the top ones, and the reflectors are the bottom ones. Both have vertical parts which make up the Moxon rectangles. One of the driven elements is driven from the feeder through a matching line. The other driven element is driven 90° out of phase through a phasing line. This gives the radiation pattern below. This is the VHF version of the aerial. As you can see it is almost omnidirectional but favours elevations that you might expect to be able to use a satellite at.

Cebik Radiation Pattern

Cebik Radiation Pattern

This was output by this cocoaNEC program of the Cebik aerial.

// Cebik’s Moxon Turnstile as described in “A Simple Fixed Antenna for VHF-UHF Satellite Work”
// note there is a problem with quotes and double quotes — I had to copy them from another model 
// rather than typing them
// so I’ve converted to metres
// this version replaces the driven2 excitation with a 90º phasing line between driven1 and driven2
// so driven1 is excited from the middle, where the phasing line is connected
// driven2 is just connected through the phasing line

model( "Cebik" ) 

real driveh, drivev, gap, reflecth, reflectv, h, rad, n, lambda;
element driven1, driven2;

lambda = 2.05478; // c/145.9MHz

drivev = 0.096774; // 3.81"
driveh = 0.73787; // 29.05"

gap = 0.03556; // 1.40"

reflectv = 0.141986; // 5.59"
reflecth = driveh;

rad = 0.003175; // 0.125"
n = 21; 

h = 1.5; // height above ground

// driven 1 (driven directly) 
driven1 = 
wire(0, -driveh/40, h, 0, driveh/40, h, rad, n); // very middle of dipole
wire(0, -driveh/2, h, 0, -driveh/40, h, rad, n); // horizontal parts
wire(0, driveh/2, h, 0, driveh/40, h, rad, n);
wire(0, -driveh/2, h, 0, -driveh/2, h - drivev, rad, n); // dropping vertical parts
wire(0, driveh/2, h, 0, driveh/2, h - drivev, rad, n);

// reflector 1
wire(0, -reflecth/2, h - drivev - gap - reflectv, 0, reflecth/2, h - drivev - gap - reflectv, rad, n);
wire(0, -reflecth/2, h - drivev - gap - reflectv, 0, -reflecth/2, h - drivev - gap, rad, n);
wire(0, reflecth/2, h - drivev - gap - reflectv, 0, reflecth/2, h - drivev - gap, rad, n);

// driven 2 (via phasing line)
driven2 = 
wire(-driveh/40, 0, h, driveh/40, 0, h, rad, n); // split as driven1
wire(-driveh/2, 0, h, -driveh/40, 0, h, rad, n);
wire(driveh/2, 0, h, driveh/40, 0, h, rad, n);
wire(-driveh/2, 0, h, -driveh/2, 0, h - drivev, rad, n);
wire(driveh/2, 0, h, driveh/2, 0, h - drivev, rad, n);

// reflector 2
wire(-reflecth/2, 0, h - drivev - gap - reflectv, reflecth/2, 0, h - drivev - gap - reflectv, rad, n);
wire(-reflecth/2, 0, h - drivev - gap - reflectv, -reflecth/2, 0, h - drivev - gap, rad, n);
wire(reflecth/2, 0, h - drivev - gap - reflectv, reflecth/2, 0, h - drivev - gap, rad, n);

voltageFeed(driven1, 1.0, 0.0); 
longTransmissionLine(driven1, driven2, 50.0, 1.0 *lambda/4); // 𝜆/4 phasing line



Learning the Art of Electronics

I was given ‘Learning the Art of Electronics’ by Thomas C. Hayes for my birthday. This is a hands-on lab course associated with the Horowitz book ‘The Art of Electronics’ (AoE). I am working my way through this and am hopefully filling some of the holes in my knowledge. It’s certainly made me think more deeply about some of the electronics I thought I understood! It doesn’t just rehash the AoE book — it approaches the theory in its own way. It’s good fun, so far.

Old fletchWeb pages

This web site was originally made from HTML and CSS helped along by m4 and make. My current web site provider ‘TSOhost’ allows WordPress to be used.

I think WordPress looks nicer than my old pages and will be easier to maintain and keep up to date with web fashions.

So new pages will be in a WordPress blog format and any updates to old pages will go there too.