JT9 + CW + carrier

The JT9 + CW + carrier beacon program makes the RFzero capable of transmitting on any frequency from 100 kHz to 200 MHz and beyond running on the fundamental frequency. The example is made using JT9D.

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

During the JT9 part of the sequence the TX LED will flash at half the symbol rate, i.e. about 0,8 Hz, during the CW part of the sequence the TX LED will flash with the CW and during the carrier part of the sequence the TX LED will be constantly lit.

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

The beacon sequence

When the GPS time is valid and during the even minute the beacon transmits JT9 for the first 49 s, then followed by a short break of 500 ms and a carrier until the next uneven minute begins. Then the call sign and locator is sent in CW followed by a short break of 500 ms and then a carrier until the full even minute. Then the sequence repeats again.

If the GPS signal is invalid the beacon suspends the JT9 and just transmits CW and a fixed length 20 s carrier.


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 seconds, the GPS status, the number of satellites and the HDOP.

Example of an LCD 16×2.

LCD 20×4

The display shows the GPS status, the number of satellites, the HDOP as a bar graph, the UTC, call sign and locator of the beacon and the frequency.

Example of an LCD 20×4.


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 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
  • 2: LCD 20 characters and four lines
  • 3: Graphics display (type pending)

wr bcn CALL

where CALL is the beacon call sign, max 15 characters.

wr loc LOCATOR

where LOCATOR is the locator up to eight characters, i.e. AA00AA00.

wr mgm MESSAGE

where MESSAGE is the JT9 message, max 13 characters where space, ” “, is replaced with an underscore, “_”.


to set the CW DURATION, i.e. duration in ms, 1 ms to 255 ms. 100 ms = 12 WPM/60 LPM.

wr key STYLE

to set keying STYLE where 0: is on-off keying (OOK), or 1: for frequency shift keying (FSK).

wr freq FREQ

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

wr warmup SECONDS

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

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.

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