FT8 and FT4

The FT8/FT4 screen (the Digital tab, then FT8/FT4 in its switch; on the all-in-one desktop layout the FT8/FT4 button in the bar under the title) lets you listen to, call and work FT8 and FT4 stations from the browser. The Pi decodes the radio's audio in the UTC time slots (15 s for FT8, 7.5 s for FT4) and makes the transmit tones; the page shows the stations, follows the standard QSO sequence, keeps a log and can upload it.

The codec is ft8_lib (MIT licence). FT2 is not supported.

Time

Every FT8/FT4 slot starts on the UTC second, so the clock is the most important setting of all. The top bar of the tab shows the UTC time of the Pi and two indicators (hover over them for the explanation):

Before the first use

  1. The Pi's clock must be right. FT8 and FT4 are timed to the second: a clock that is more than about a second off decodes nothing and transmits in the wrong place. A Pi with internet access keeps its clock by itself; the tab shows Clock not synchronised when the Pi says it does not.
  2. Set your callsign and grid square (FT settings at the bottom of the tab; administrators only).
  3. The radio must be in a data mode (DATA-USB: DATA-U on the FT-991A). Choosing a band in the tab sets it. The radio's USB audio and data-port menus must be set as described in Radio connection (an FT-991A needs the data port menus on USB).
  4. Switch the speech processor off and keep the radio's ALC at zero when you transmit: FT8 is a constant-envelope signal and compression only spreads it.

The screen

Calling and answering

Each slot is decoded twice: an early pass about 1.5 s before the slot ends, so the CQ calls appear while you can still answer them in the next slot, and a final pass that adds the late and weak ones (shown as "more decoded"). Double-click a CQ and message 1 goes out in the next slot of the other parity, or still in the current one if you were quick enough (up to about 1.3 s after it started: the signal is then that much late, which receivers accept). Later than that it waits for the next slot of that parity, which for FT8 can be 30 s away; the line under the controls says how many seconds are left.

  1. Press Enable TX. Nothing is transmitted until it is on, and it switches itself off when the page is reloaded.
  2. Call CQ sends CQ <callsign> <grid> in the slots you choose (TX even or odd) and repeats it. When a station answers, the page follows the standard sequence by itself:
You call CQ You answer a CQ
they <you> <them> <grid> you <them> <you> <grid>
you <them> <you> -12 (their SNR) they <you> <them> -07
they <you> <them> R-08 you <them> <you> R-09
you <them> <you> RR73 they <you> <them> RR73
they <you> <them> 73 you <them> <you> 73
  1. The contact is logged when it is complete for you (you send RR73 or 73, or the last message arrives). Halt TX stops everything at once and switches Enable TX off.

The Pi repeats the current message in every slot of the chosen parity until the next one replaces it, the contact ends, you press Halt, or it has been sent Repeats times (default 6) without progress. Log QSO logs the current DX station by hand and Erase forgets it.

Transmit safety

Transmitting goes through the same protection as the PTT button: the transmit permission in the administration page, the control of the radio (only the operator who has control can transmit), the owner heartbeat (the Pi stops transmitting at once if that page disconnects) and the transmit time limit. The tones are sent at the TX level of the settings (default -6 dB); the radio's ALC must stay at zero.

The log, ADIF and uploading

Every logged contact is kept on the Pi (ftx_log.jsonl in the data folder). Export ADIF downloads all of it as a standard .adi file that any logging program imports (FT8 is its own ADIF mode; FT4 is the submode FT4 of MFSK). Under Log each contact shows what has been uploaded; Upload to QRZ / eQSL sends everything not yet sent to that service, one contact at a time. Tick Upload ... as soon as a contact is logged to do it automatically. There is no LoTW upload (it needs your signing certificate: export the ADIF and sign it with TQSL).

The accounts are entered under FT settings by an administrator and stay in the Pi's configuration file; they are never sent back to the page, and the settings backup never contains them.

Service What it needs
QRZ.com the logbook's API key (QRZ logbook settings); the logbook owner needs an XML (or higher) subscription
eQSL your eQSL user name and password

These uploads were written from the services' published interfaces and tested only against stand-ins, not against the live services: the first real upload may need a small correction, so look at the message the page shows.

What it does not do (yet)

If nothing is decoded