This page shows my experiments in EME, or moonbounce, which is perhaps the most challenging (and exciting) field of radio to build and get working. I gained much useful experience designing, building and validating the theoretical system calculations. It is based on experiences with my EME station at M0LNB, so is just one example of how to do it. My system uses a 2x2 Yagi-Uda array; much better EIRP and G/T can be obtained with larger arrays or parabolic dishes.
EME: Moon Planning
EME: Setup
EME: System Design
EME: Theoretical Performance
EME: Practical Performance
EME: 23cm QSOs
EME: Echo
EME: Rotator
EME: Antenna
EME: Power Amplifier
EME: Radio - IC-9700
EME: Sequencer
EME: Software - PSTrotator
EME: Software - WSJT-X
EME: Software - QMAP
EME: Q65 Modulation and Coding
EME: The Propagation Channel
EME: Power Meter
My EME Link Calculator was used to check when the moon was near perigee and at suitable elevation.
We live near London and our garden is limited in size; we also have buildings and trees all around us. For these reasons I chose a 2x2 array of 36 element Yagi-Uda antennas for my 23cm EME setup. I can then raise the array a bit higher which would be more difficult with a dish. The antennas and 4-way combiner are from Antennas-Amplifier, the relay is a SSB/Tohtsu AS3000, and the LNA is from Kuhne.
EME Array
RF Block Diagram
My EME Link Calculator was used to estimate the SNR during an EME QSO.
Good agreement (+/- 1dB) was obtained between theory and practice.
The following plot was captured using the software SkyScanner and processed in Matlab. The measurement is the ratio of noise with the antenna pointing at the sun to the noise in a cold part of the sky. A Y-factor of 7.4dB was achieved. This is an important performance validation of the receive system.
Measured sun noise
Here are the QSO made using Q65-60C or Q65-30B on 23cm. (Not used Q65-120D due to PA limitations.) Contacts: >3m dish at 300W under nominal conditions; 1m dish requires favourable geometry/conditions.
| Callsign | SNR rpt sent | SNR rpt rcvd | Dish size | TX power | Country | Date |
|---|---|---|---|---|---|---|
| AG7CM | -22dB | -23dB | 3m | 500W | United States | 14 Sep 2025 |
| DF3RU | -16dB | -15dB | 6m | 800W | Germany | 10 Nov 2024 |
| DF3RU | -11dB | -12dB | 6m | 750W | Germany | 31 Dec 2025 |
| DF7KB | -20dB | -18dB | 4.8m | 300W | Germany | 11 Nov 2024 |
| DG5CST | -14dB | -10dB | 10m | 250W | Germany | 10 Nov 2024 |
| DL1AT | -22dB | -22dB | 3.06m | 500W | Germany | 12 Nov 2024 |
| DL3EBJ | -16dB | -16dB | 4.8m | 400W | Germany | 8 Nov 2025 |
| DL7UDA | -18dB | -19dB | 4.5m | 400W | Germany | 8 Nov 2025 |
| EA8DBM | -19dB | -22dB | 6m | 500W | Canary Islands | 3 Jan 2026 |
| F4KLO | -15dB | -16dB | 10m | 60W | France | 11 Nov 2024 |
| G0LBK | -24dB | -24dB | 4m | 250W | England | 10 Nov 2024 |
| G4CCH | -15dB | -12dB | 5.4m | 500W | England | 11 Nov 2024 |
| G4YTL | -24dB | -24dB | 3m | 200W | England | 11 Nov 2024 |
| GM0PJD | -23dB | -20dB | 2.4m | 150W | Scotland | 13 Sep 2025 |
| GM0PJD | -19dB | -18dB | 3.8m | 400W | Scotland | 5 Jan 2026 |
| HB9Q | -5dB | -14dB | 10m | 1kW | Switzerland | 12 Oct 2025 |
| HB9Q | -9dB | -13dB | 10m | 1kW | Switzerland | 13 Sep 2025 |
| HG5BMU | -22dB | -26dB | 3.6m | 150W | Hungary | 4 Jan 2026 |
| I0NAA | -25dB | -20dB | 5m | 250W | Italy | 18 Nov 2024 |
| I2FAK | -17dB | -20dB | 4m | 500W | Italy | 15 Aug 2025 |
| IK2DDR | -23dB | -19dB | 3.7m | 250W | Italy | 10 Nov 2024 |
| IK2DDR | -19dB | -15dB | 3.7m | 250W | Italy | 31 Dec 2025 |
| IK2DDR | -17dB | -15dB | 3.7m | 250W | Italy | 2 Jan 2026 |
| IK3COJ | -27dB | -21dB | 4.1m | 300W | Italy | 10 Nov 2024 |
| IK5VLS | -20dB | -17dB | 4m | 400W | Italy | 8 Nov 2025 |
| IK5VLS | -20dB | -20dB | 4m | 400W | Italy | 11 Oct 2025 |
| IK7EZN | -24dB | -20dB | 3.4m | 200W | Italy | 9 Nov 2024 |
| IQ2DB | -24dB | -20dB | 3m | 500W | Italy | 9 Nov 2024 |
| IQ2DB | -19dB | -24dB | 3m | 500W | Italy | 31 Dec 2025 |
| IZ8GGF | -17dB | -18dB | 3m | 400W | Italy | 31 Dec 2025 |
| IZ8GGF | -19dB | -17dB | 3m | 400W | Italy | 6 Jan 2026 |
| JA4LJB | -18dB | -17dB | Japan | 4 Jan 2026 | ||
| JJ3JHP | -22dB | -23dB | 4.5m | 500W | Japan | 12 Oct 2025 |
| JQ3JWF | -19dB | -19dB | 4.5m | 500W | Japan | 12 Oct 2025 |
| JS6UJS | -20dB | -16dB | Japan | 4 Jan 2026 | ||
| K0PRT/ W6BVB |
-13dB | -9dB | 18.2m | 350W | United States | 12 Oct 2025 |
| KA1GT | -23dB | -21dB | 3m | 200W | United States | 18 Nov 2024 |
| KA1GT | -20dB | -19dB | 3m | 230W | United States | 3 Jan 2026 |
| KB2SA | -25dB | -28dB | 1.0m | 900W | United States | 5 Jan 2026 |
| NC1I | -10dB | -11dB | 6.1m | 1kW | United States | 14 Sep 2025 |
| NC1I | -10dB | -13dB | 6.1m | 1kW | United States | 13 Nov 2024 |
| OE1UGA | -16dB | -18dB | Austria | 15 Nov 2024 | ||
| OE3JPC | -24dB | -24dB | 2x56el | 400W | Austria | 4 Jan 2026 |
| OE5JFL | -15dB | -15dB | 7.3m | 400W | Austria | 13 Sep 2025 |
| OE9ERC | -9dB | -9dB | 11m | 2kW | Austria | 8 Nov 2025 |
| OE9ERC | -9dB | -11dB | 11m | 2kW | Austria | 11 Sep 2025 |
| OE9ERC | -9dB | -9dB | 11m | 2kW | Austria | 15 Aug 2025 |
| OH1LRY | -15dB | -13dB | 8m | 150W | Finland | 12 Oct 2025 |
| OH3LWP | -19dB | -22dB | 4m | 50W | Finland | 17 Oct 2025 |
| OK1DFC | -14dB | -11dB | 8m | 1.2kW | Czech Republic | 11 Oct 2025 |
| OK1KKD | -17dB | -18dB | 5m | 500W | Czech Republic | 11 Oct 2025 |
| OK1UGA | -13dB | -16dB | 6m | 350W | Czech Republic | 15 Aug 2025 |
| OK1USW | -22dB | -20dB | 3.4m | 300W | Czech Republic | 8 Nov 2025 |
| OK2DL | -11dB | -15dB | 6m | 1kW | Czech Republic | 11 Oct 2025 |
| OK2DL | -14dB | -18dB | 6m | 1kW | Czech Republic | 18 Nov 2024 |
| ON5GS | -18dB | -16dB | 6m | 200W | Belgium | 14 Sep 2025 |
| OZ5TG | -22dB | -21dB | 4.3m | 125W | Denmark | 4 Jan 2026 |
| OZ5TG | -21dB | -22dB | 4.3m | 125W | Denmark | 5 Jan 2026 |
| PA0PLY | -23dB | -21dB | 3m | 300W | Netherlands | 11 Oct 2025 |
| PA0TBR | -17dB | -19dB | 3.5m | 300W | Netherlands | 31 Dec 2025 |
| PA1PS | -21dB | -23dB | 3m | 300W | Netherlands | 12 Nov 2024 |
| PA3DZL | -19dB | -18dB | 4m | 800W | Netherlands | 13 Sep 2025 |
| PA3EXV | -19dB | -19dB | 3.55m | 400W | Netherlands | 12 Oct 2025 |
| PA3EXV | -23dB | -20dB | 3.55m | 400W | Netherlands | 10 Nov 2024 |
| PA3FXB | -20dB | -20dB | 2.9m | 300W | Netherlands | 12 Nov 2024 |
| PE1LWT | -21dB | -22dB | 3m | 180W | Netherlands | 12 Nov 2024 |
| PY2BS | -18dB | -20dB | 5.1m | 600W | Brazil | 12 Nov 2024 |
| RD4D | -9dB | -12dB | 10m | 1kW | Russia | 8 Nov 2025 |
| RD4D | -15dB | -16dB | 10m | 1kW | Russia | 11 Oct 2025 |
| RJ3DC | -24dB | -24dB | 3.05m | 300W | Russia | 2 Jan 2026 |
| RW9OG | -28dB | -23dB | 3.05m | 150W | Russia | 4 Jan 2026 |
| RX3DR | -23dB | -18dB | 3m | 150W | Russia | 8 Nov 2025 |
| RX3DR | -21dB | -18dB | 3m | 150W | Russia | 4 Jan 2026 |
| SA6BUN | -19dB | -17dB | 5m | 1kW | Sweden | 11 Oct 2025 |
| SP5GDM | -23dB | -21dB | 3.7m | 500W | Poland | 9 Nov 2024 |
| SP5GDM | -19dB | -18dB | 3.7m | 800W | Poland | 3 Jan 2026 |
| UA3PTW | -7dB | -11dB | 8m | 1000W | Russia | 2 Jan 2026 |
| UA4AAV | -17dB | -21dB | 4.7m | 1000W | Russia | 8 Nov 2025 |
| UA9FAD | -26dB | -21dB | 3m | 100W | Russia | 11 Nov 2024 |
| VK2JDS | -21dB | -17dB | 5m | 125W | Australia | 3 Jan 2026 |
My EME Link Calculator was used to estimate the echo SNR with my setup.
Good agreement (+/- 1dB) was obtained between theory and practice.
When I was tracking satellites the Yaesu G5500DC rotor was good enough but for EME, something more accurate was needed so I bought an Alfa SPID RAS HR rotator. The thinking was it didn't need to be heavy duty but did need to be accurate, to within a degree. I also bought the MD-02 controller and PS-02 power supply. Sadly though there were problems with the sensor waveform and the rotor would lose sync with the controller in elevation. After reading a lot online, there were a number of possible causes: noise pickup on the sensor cables or not enough drive current from the sensors. Looking inside, my new unit did include the MOSFET sensor drivers, which was good. So I bought three separate sensor cables and followed the instructions provided by rfhamdesign. I thought that would fix it but no! So I investigated further and took my oscilloscope to the antenna. The waveform coming from the elevation sensor was garbage. During the time I was in constant contact with DX Shop and Spid, who were both very helpful. Anyway, after replacing the sensor unit, the problem was fixed. Seems I have been quite unlucky with buying new ham radio equipment: first the power amplifier and then the rotator.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Optimising for Hall Sensor RFI pickup during TX and loss of rotator sync with MD-02
Using the AS1 Advanced Sequencer, I connected a PTT relay switch in series with Sel 4 switch and connected this between the MD-02 controller electronics +15V line and the PSU. The MD-02 controller electronics power is fully OFF during Transmitting cycles OR if I need to kill the controller power for another reason. If power is killed during a PSTrotator update, the antenna continues on its way after boot up without losing sync. So it seems to work! Note I measured the current of the MD-02 electronics to be 0.5A so well within the AS1 relay rating.
Near-field coupling is significant at ~0.3 m separation; mitigation focused on sensor wiring and controller power sequencing.
The Yagi-Uda antenna is the 23cm36DXAP from Antennas-Amplifiers. Four of them are arranged in a quad separated by 650mm, and connected with a 4-way combiner. Each antenna gain is 20.4dBi and the frequency range: 1290 – 1310 MHz, with a half-power beamwidth of 18 degrees.
Fig: Antennas after assembly
The combined 2x2 antenna gain is simulated as follows:
Here are the cuts in Azimuth (left) and Elevation (right) for antenna spacings (mm) of 590H/580V (top), 650H/640V (mid), 700H/690V (bot):
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Plots provided by Goran YU1CF of Antennas-Amplifiers.
Originally I used a Gemini 23 PA from DX Shop in the UK, and I made quite a lot of QSO with that power amplifier; however it would often temperature trip during 60 second bursts of Q65 modulation so I had to back it off to about 120W at the PA output. Four times the power was needed in my eme setup, so I bought an HLV-523 500W 23cm PA from BEKO Electronics in Germany.
Sadly, during 60 second bursts of 400W power some strange noises came from inside the PA, so I powered down, opened it up and investigated. There was arcing at the cable interface at the output of the power block which began at about 200W. The semi-flexible coax was 0.114" and rated at under 300W (For and 500W power amplifier!). After replacing with 0.25" coax, the problem was solved.
The photos below show the thinner cable with black soot from the arcing and the new cable that solved the problem.
![]() |
|
![]() |
![]() |
![]() |
![]() |
This is how I configure the Icom IC-9700 to work with WSJT-X for EME.
![]() |
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Note the Leo Bodnar GPS output is around 10dBm which is too high for the IC-9700. Put a 20dB attenuator in between to keep the input level at -10dBm which is recommended level for this rig.
For EME it is important to sequence the radio, power amplifier, low noise amplifier and any relays. During receive, we want the radio to be in RX mode, the relays to pass the antenna signal to the LNA, which must be switched on, of course, and during transmit, we need the radio to be in TX mode, the relays to pass the power amplifier signal to the antennas and the PA to be correctly biased and ready to accept the signal from the radio, of course. But more than that, it is very important that the radio and power amplifier transmit into a good load (say < -20dB return loss), especially between TX and RX and between RX and TX. This is where we need a sequencer. Some PAs offer inbuilt sequencing, but the literature does not usually make it clear exactly when things happen. This is why you need a stand-alone sequencer.
Here is a block diagram showing the connections, and some videos showing the AS1 in operation; the first video is full speed when using WSJT-X ECHO and the second video has all timers set to 1000ms so you can see the sequencing of the LEDs. I am delighted with this purchase.
Sequencer Setup Block Diagram
WSJT-X ECHO with Timers set correctly
Keying the radio (no RF) with 1000ms timers
Another way to check the PA will see a good S11 looking towards the antenna from the PA TX connector, is with a VNA. Set the VNA to plot S11_dB vs Time at 1.3GHz and listen to the AS1 relays. Check that during TX the PA will see a good VSWR load.
S11 vs Time at 1.3GHz
PSTrotator is a great low cost software program packed with functionality for rig control and rotator control for satellites and of course the moon. Nowadays I use it for moon rotator tracking only. In simple terms it does the maths to calculate rotor azimuth and elevation pointing direction based on its knowledge of where your antenna is and where the moon is, and updates in near real time. The azimuth and elevation pointing direction is sent to the MD-02 rotator controller which points the antenna. In theory it is possible to obtain an accuracy of 0.1~0.2 degree accuracy from my setup, but this does require some calibration. My antenna has a half-power beamwidth of +/- 5 degrees, so I am aiming for an accuracy of +/- 1 degrees.
This is how I configure WSJT-X to work with the IC-9700 for EME. The baud rate and RS232 config needs to match the radio setting and also the properties of the COM port under Device Manager. These screenshots should get you up and running and on the air. We can check the setup by pressing the Test CAT button and the Test PTT button.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Optimisation
To get the best performance from WSJT-X, there are some important settings. Firstly, if the HB9Q chatroom says a sked will be on say "1296.088 CFOM 1500", we want the DX station to arrive close to 1500Hz in our display and we want the DX station to see us on 1500Hz. In this way "F Tol" can be reduced to 100Hz or even 50Hz and decoding speed and sensitivity improved. We do this by putting the rig in SPLIT operation, where WSJT-X controls the rig for Doppler in both RX and TX. The rig's dial will shift (SelfDop / 2) from the Sked frequency in one direction for RX and the other direction for TX. The arranged Sked frequency is shown in the Astronomical Data window and can be adjusted with the rig's dial when pressing Ctrl first or type say 88k in the box in the main window where it says 23cm (or whatever you're using). The Sked frequency is what would be seen by a spectrum analyser on the moon and is the same for RX and TX. Let WSJT-X control the rig for Doppler correction.
To get the best decoding sensitivity from WSJT-X, we can do the following: (1) F Tol to 100Hz or 50Hz (2) Type DX Call and DX Grid in the boxes (3) Deep decoding (possibly normal better?) (4) Averaging / clear average after decode (5) Manually "Clear Avg" before decoding. Typically we use Q65-30B, Q65-60C then Q65-120D in order of increasing sensitivity for 23cm.
QMAP is useful because you can view 90kHz of spectrum at the same time and decode over the whole band, albeit with 2dB reduction in sensitivity. Usually you know what USB dial frequency to tune to using the messages on HB9Q, but sometimes it is useful to see all the signals on the band, and then select the frequency of interest in WSJT-X.
As shown in the block diagram above, I split the RX signal before the PA input and route it to a SDRplay RSPdx tuned to 1296.080MHz. Using SDR Console to read the RSPdx, it is possible to output UDP packets in a form required for the QMAP software. QMAP is an executable that comes packaged with WSJT-X. I run SDR Console and QMAP on a separate laptop.
Coming soon
Coming soon
I use a power meter from moonbounce.dk to monitor the TX power at the PA output and the reflected power, hence the SWR. There are two parts: a directional coupler that sits inline with the TX output, and a power meter / display unit.
![]() |
|
![]() |