The GPSDO program is a GPS Disciplined Oscillator program that turns the RFzero into a reference oscillator. This way you can lock your instruments and radio equipment to a common frequency typically 10 MHz.

The RFzero is capable of generating signals beyond 280 MHz. Real life tests show that a 108 MHz signal from the RFzero GPSDO that has been multiplied 96 times, to reach 10 GHz, has a short term variation of 5 Hz if the Si5351A clock has been covered with non-conductive foam. Please see the modifications page for more details.

A display can be connected showing the time and GPS status. This way you will have a nice and accurate lab or shack clock too.

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 outputting the signal. It is also possible to wait for the GPS to be valid before outputting the signal.

When the RFzero generates a signal the TX LED is lit.

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.



Joel, N6ALT, is using his GPSDO together with a 20 characters x 4 lines LCD.

The GPSDO and LCD. Picture courtesy Joel, N6ALT.


Per, SM0DFP, is using an RFzero for his 24 GHz portable setup running a custom version of the GPSDO program. For portable use it shows the locator, UTC and GPS Status.

Left to right: the RFzero, the classic IC-202, 24 GHz transverter and dish. Picture courtesy Per, SM0DFP.

Inside view of the RFzero rover box. Picture courtesy Per, SM0DFP.

Custom display view the RFzero rover box. Picture courtesy Per, SM0DFP.


To setup the type of display used please use the “wr display” command. If you want to change what is shown on the display please edit the display.cpp file.

Please see the display page for more information.

LCD 16×2

The display shows the UTC, the GPS status, the number of satellites and the HDOP.

Example of an LCD 16×2.

LCD 20×4

The display is a LCD (20×4) that shows the GPS status, the UTC and the local time where D is for daylight saving time and N is for normal time.

Example of an LCD 20×4.

Graphical displays

The graphical displays show the GPS status, the UTC and the local time where DST is for daylight saving time.

Example of a ILI9341 with 320 pixels x 240 pixels.


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 >.

Changes to the configuration does not take effect before leaving the configuration mode.

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 program for the specific default values.

wr t1 MODE

to set the T1 H/W mode where MODE is

  • 0: Transformer (default)
  • 1: Combiner
  • 2: None

wr display MODE

to set the display mode where MODE is

  • 0: None
  • 1: LCD 16 characters and two lines, HD44780 interface
  • 2: LCD 20 characters and four lines, HD44780 interface
  • 3: LCD 16 characters and two lines, HD44780 via I2C PCF8574 interface
  • 4: LCD 20 characters and four lines, HD44780 via I2C PCF8574 interface
  • 5: Graphics display, ILI9341 SPI interface
  • 6: Graphics display, ILI9488 SPI interface

wr freq FREQ

where FREQ is the GPSDO frequency in Hz from 100 kHz and up. The frequency may include decimals if needed, e.g.

wr freq 123456789.012

wr warmup SECONDS

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

wr level LEVEL

where LEVEL is the drive strength current in the output stages. This effectively changes the output power by up to 10 dB, but varies somewhat with frequency. Valid LEVEL values are

  • 0: 2 mA
  • 1: 4 mA
  • 2: 6 mA
  • 3: 8 mA, default level

To read more about the drive strength current please consult the Si5351A datasheet.

wr wait ONOFF

to turn on or off waiting for the GPS to be valid before transmitting where ONOFF is either 0: for off/don’t wait for the GPS to be valid, or 1: for on/wait for the GPS to be valid.


where HOURS is the number of hours the local time is offset relative to UTC and where west is negative and where MINUTES is the number of minutes relative to UTC, e.g.

wr offset 8 15

wr dst ONOFF

to turn on/off local daylight saving time where ONOFF is 0: normal, 1: daylight saving time (DST).

wr ampm ONOFF

to turn on/off local AM/PM time where ONOFF is 0: normal, 1: AM/PM.

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

Output low pass filter

Since the output signal from the RFzero is a square wave, it is a good idea to filter the output signal with a low pass filter, say 25% above the wanted frequency. This will make the output signal sinusoidal. Otherwise you may experience ringing or reflections on the distributed signal. This may cause problems for the devices connected and locking to the reference may become problematic.

You may connect an external low pass filter or mount one on the RFzero Z1 to Z10 pads just next to the RF SMA connector.

The Z1 to Z10 pads for a custom on-board filter.

You can see much more about how to design a filter at the Modifications page.