WSPR and multiplier

(Please note that this example program will not run without a valid GPS signal)

The WSPR beacon example program makes the RFzero capable of transmitting on any frequency from 100 kHz to 200 MHz and beyond running on the fundamental frequency.

There is also a special version of the WSPR program where the output is to be used on much higher frequencies, e.g. using the harmonics or using a multiplier circuit. This way you can use the WSPR multiplied example program to transmit on e.g. 432 MHz using the third harmonic or on 1 GHz using a multiplier. If using the multiplied example program it is recommended to cover the clock with a foam cover or other measures to reduce the airflow (perturbation) around the clock  circuit. Using a simple foam cover we have 100% decodes on 1 GHz. We have no equipment to test it on higher frequencies, e.g .on 1,3 GHz.

A two lines and 16 characters LCD can be connected showing the UTC seconds and GPS data.

The configuration is done via the USB port. It is possible to wait for the RFzero to warm up for up to 255 s before starting to transmit.

When transmitting the TX LED will flash at half the symbol rate, i.e. about 0,7 Hz.

When GPS signals are received the PPS LED flashes ones per second and when the status of the GPS signal is valid the Valid LED is lit.

A PA can be controlled on/off on D7, i.e. off during no transmission to save power.


My WSPRmulti 20 x 4 LCD layout and rotary encoders allows me to select a pre-programmed WSPR frequency and multiplication factor on any of the 14 bands from VLF to 23 cm.

This screen contains all the necessary info to make a standalone beacon/signal source. I also integrated the GPS antenna on top.

A very useful package!

Warren’s, WA8TOD, super WSPR multiplied transmitter. Picture courtesy Warren, WA8TOD.

The beacon sequence

When the GPS time is valid the beacon transmits WSPR for 110,6 s then waits for then next even minute to arrive before the sequence repeats again.

If the GPS signal is invalid the beacon suspends the transmission.


The display is a LCD (16×2) that shows the odd/even UTC minutes indicator (o/e), UTC seconds, the GPS status, the number of satellites and the HDOP.

If you want to change what is shown on the display please edit the Display_Update() function and in the // Prepare LCD section in the setup() function in the WSPR.ino file or the WSPRMulti.ino file.


The configuration of the program is done via the USB port, 9600 Baud, 8 bits, no parity and one stop bit, using a terminal program (e.g. Arduino IDE Serial Monitor, Termite Terminal (Windows), CuteCom (Linux) or Terminal (Mac OS)). Please connect the RFzero via a USB B cable to your computer and connect the terminal program to the right COM port in the terminal program. The RFzero identifies itself as an Arduino Zero (Windows Device Manager).

If you don’t see the RFzero> or RFzero config> prompts please press the enter key. When you want to execute a command you don’t have to enter the prompt but only the command and parameters after the >.

All input to the RFzero must be in lowercase.

To enter the configuration mode please enter   config   at the RFzero> prompt, i.e.

RFzero> config

To see the available commands please enter   ?   at the RFzero config> prompt, i.e.

RFzero config> ?

To leave the configuration mode please enter   exit   at the RFzero config> prompt, i.e.

RFzero config> exit

When in configuration mode, i.e. when you see the RFzero config> prompt, the most frequent commands are

rd cfg

to see the configuration that will be used after exiting the configuration mode.

wr defaults

to set most of parameters to their default values. Please see the actual example program for the specific default values.

wr bcn CALL

where CALL is the beacon call sign. The maximum length for WSPR Type 1 messages is six characters and it must include a number. The maximum length for WSPR Type 2 messages is ten characters and it must include a number. Please see the WSPR specification for more details about the message types.

wr pwr POWER

where POWER is the power level in dBm and only these values

  • 0 dBm = 1 mW
  • 3 dBm = 2 mW
  • 7 dBm = 5 mW
  • 10 dBm = 10 mW
  • 13 dBm = 20 mW
  • 17 dBm = 50 mW
  • 20 dBm = 100 mW
  • 23 dBm = 200 mW
  • 27 dBm = 500 mW
  • 30 dBm =  1 W
  • 33 dBm =  2 W
  • 37 dBm =  5 W
  • 40 dBm =  10 W
  • 43 dBm =  20 W
  • 47 dBm =  50 W
  • 50 dBm =  100 W
  • 53 dBm =  200 W
  • 57 dBm =  500 W
  • 60 dBm =  1 kW

wr freq FREQ

where FREQUENCY is the nominal beacon frequency in Hz from 100 kHz and up.


(multiplied beacon only)

where MULTIPLER is the harmonic/multiplication factor. Valid values are from 1 to 255, e.g.if using the fifth harmonic on 902 MHz

wr multi 5

wr warmup SECONDS

where SECONDS is the number of seconds to wait for the RFzero to warm up.

More commands are available so please enter a question mark (?) at the RFzero config> prompt to see them.

Update the WSPRnet locator database

You can use this input form to manually update your locator in the database in case it is incomplete or wrong. Please don’t change another station’s locator.

Your own call sign :   3-10 characters and must be ITU compliant
Your own locator :   format JO65HQ
Call sign of WSPR inventor :   anti spam check and confirmation of intention