«No prefixes or suffixes in FT8, otherwise FT8 gets confused because of the bit length.» You read that sentence in forums again and again. I had to deal with it when I built the FT8 module in Ham-Tools. What should the sequencer send when the POTA log runs as HB9HJI/P? I had seen problems and wasn’t sure where they came from. So I read up: in the developers’ QEX article, in the WSJT-X User Guide and finally in the source code. I compiled the part of WSJT-X that packs messages into bits myself and fed it my callsign in every variant.
The result up front: the «confusion» is a myth. The restrictions are real, though, and they don’t hit /P, but prefixes and every other add-on.

77 bits, nothing more fits
An FT8 transmission carries 77 bits of payload. Add 14 bits of checksum and 83 bits of error correction, 174 bits in total on 58 data symbols of eight tones each. The whole message has to fit into those 77 bits: two callsigns, locator or report, and three bits that say which message type it is. The developers call this field i3. That is why text isn’t sent letter by letter but packed, and each message type splits the 77 bits differently.

What a «standard callsign» is
A standard callsign consists of a prefix of one or two characters, at least one of them a letter, then a digit and then up to three letters. HB9HJI fits: HB, 9, HJI. So do DL1ABC, K1ABC and OE3XYZ. 28 bits are enough for every possible combination: there are 262,177,560 callsigns, and 28 bits offer 268,435,456 values. The rest is reserved for CQ, QRZ, DE, directed CQs and so-called hash codes, more on those shortly.
Calls that don’t fit this pattern include 3DA0XY with three characters before the digit, long special event calls such as YW18FIFA (the example from the User Guide) and anything extended with a slash at the front or back. With one exception.
/P and /R: one bit, no problem
For /R and /P there is a dedicated bit per callsign. The standard message (i3=1) uses it for /R, its sibling (i3=2) for /P. Nothing else changes: two full callsigns, locator or report. The User Guide only describes /P for the EU VHF contest, but the code makes no distinction. «CQ POTA HB9HJI/P JN47» goes through just like «CQ POTA HB9HJI JN47»; I checked that with the packer.
There are small catches all the same. /P and /R can’t be mixed in the same message. And as soon as the other station has a nonstandard callsign, HB9HJI/P no longer counts as standard either. More on that below.
Prefixes and other suffixes: plain text and hash
Everything else doesn’t fit into 28 bits: DL/HB9HJI, HB9HJI/M, /MM, /QRP or /3. That is what message type 4 is for. It carries the long callsign in plain text, up to 11 characters in 58 bits, and the other callsign only as a 12-bit hash. There is no room left for locator or report, only two bits for RRR, RR73 or 73 and one bit for CQ.
A hash is a kind of shorthand. It is calculated from the callsign but can’t be reversed. So the receiving software remembers the full callsigns it has recently decoded and puts them back in angle brackets: <DL/HB9HJI>. If it has never seen the callsign in plain text, all you get is <…>. A standard message can also carry a hash instead of a callsign, there with 22 bits. Two callsigns with the same hash are possible, but according to the developers rare in practice.
What this means in a QSO
- No locator in the CQ. «CQ DL/HB9HJI» works, «CQ DL/HB9HJI JN47» doesn’t. In my test, the packer silently encoded a hand-typed CQ with locator as «CQ HB9HJI JN47». The prefix was gone.
- No directed CQ. «CQ POTA DL/HB9HJI» doesn’t fit any message type. WSJT-X turns it into free text, which is limited to 13 characters: what goes out is «CQ POTA DL/HB».
- Reports exist, but only with a hash. In the report messages the compound callsign appears in brackets. It is sent in full only in the CQ and with RRR or 73.
- <…> at first. Anyone who has never received you in plain text sees <…> until your CQ or RRR gets through once.
- Only one nonstandard callsign per message. According to the User Guide, two nonstandard callsigns can’t work each other at all. This is where /P comes back in: if a station with a nonstandard callsign calls HB9HJI/P, the /P call slips into the special type as well, and the report drops out of the message. Without /P the same QSO runs normally.
- PSK Reporter loses the position. Without a locator in the CQ, maps and spotting services lack the location. The User Guide points this out itself.
- More room for logging errors. What only arrives as a hash is easily copied wrongly.
Two QSOs side by side
Both sequences come from the WSJT-X User Guide. On the left a standard QSO, on the right the same with a compound callsign:
| Standard | With a nonstandard callsign |
|---|---|
| CQ K1ABC FN42 | CQ PJ4/K1ABC |
| K1ABC G0XYZ IO91 | <PJ4/K1ABC> W9XYZ |
| G0XYZ K1ABC –19 | W9XYZ <PJ4/K1ABC> +03 |
| K1ABC G0XYZ R-22 | <PJ4/K1ABC> W9XYZ R-08 |
| G0XYZ K1ABC RRR | <W9XYZ> PJ4/K1ABC RRR |
| K1ABC G0XYZ 73 | PJ4/K1ABC <W9XYZ> 73 |
On the right both locators are missing, the caller’s too, and PJ4/K1ABC is spelled out in only three of six lines.
The overview
| Callsign | Message type | Locator in CQ | CQ POTA | Restrictions |
|---|---|---|---|---|
| HB9HJI | Standard (i3=1) | yes | yes | none |
| HB9HJI/P | Standard with /P bit (i3=2) | yes | yes | can’t be mixed with /R, problems with nonstandard partners |
| HB9HJI/R | Standard with /R bit (i3=1) | yes | yes | same as /P |
| HB9HJI/QRP | Type 4 | no | no | hash, <…> at the partner |
| HB9HJI/MM, HB9HJI/M | Type 4 | no | no | as above |
| HB9HJI/3 | Type 4 | no | no | as above |
| DL/HB9HJI | Type 4 | no | no | as above, but mandatory abroad |
Examples: what actually goes out
I ran these messages through the packer from the WSJT-X source code. On the left what you type, in the middle what the other station decodes.
| Typed | Decoded as | Message type | Result |
|---|---|---|---|
| CQ POTA HB9HJI JN47 | CQ POTA HB9HJI JN47 | standard | works |
| CQ POTA HB9HJI/P JN47 | CQ POTA HB9HJI/P JN47 | standard with /P | works |
| CQ POTA HB9HJI/M JN47 | CQ POTA HB9HJI JN47 | standard | /M silently dropped |
| CQ HB9HJI/M | CQ HB9HJI/M | type 4 | works, no locator |
| CQ POTA HB9HJI/QRP JN47 | CQ POTA HB9HJI JN47 | standard | /QRP silently dropped |
| CQ HB9HJI/QRP | CQ HB9HJI/QRP | type 4 | works, no locator |
| CQ POTA DL/HB9HJI JN47 | CQ POTA HB9HJI JN47 | standard | prefix silently dropped |
| CQ POTA DL/HB9HJI | CQ POTA DL/HB | free text | mangled |
| CQ POTA DL/HB9HJI/P | CQ POTA DL/HB | free text | mangled |
| CQ DL/HB9HJI JN47 | CQ HB9HJI JN47 | standard | prefix silently dropped |
| CQ DL/HB9HJI | CQ DL/HB9HJI | type 4 | works |
| CQ DL/HB9HJI/P | CQ DL/HB9HJI/P | type 4 | works, but /P is unnecessary |
| CQ POTA HB0/HB9HJI | CQ POTA HB0/H | free text | mangled |
| CQ HB0/HB9HJI | CQ HB0/HB9HJI | type 4 | works |
| DL1ABC DL/HB9HJI -10 | DL1ABC HB9HJI -10 | standard | prefix silently dropped |
| DL1ABC <DL/HB9HJI> -10 | DL1ABC <DL/HB9HJI> -10 | standard with hash | works, this is what WSJT-X generates |
The dangerous rows are the ones marked «silently dropped». The packer reports no error, it simply packs what fits the standard format, and the add-on is missing. Abroad that means operating without the mandatory prefix without noticing.
What the rules say
In Switzerland /P is optional. The OFCOM (BAKOM) regulations say the licensee «may» add /P, /M, /MM or /AM to the callsign. The Swiss national society USKA writes that a suffix is generally optional but mandatory in certain contest situations.
Abroad it is the other way round. Under CEPT Recommendation T/R 61-01 you transmit your own callsign preceded by the prefix of the host country, separated by a slash. A Swiss licensee operating in Liechtenstein must put HB0/ in front. The law comes before convenience. DL/HB9HJI with all its restrictions is correct, a bare HB9HJI in Germany is not.
Your own country’s rules on /P may differ from the Swiss ones, so check them before you drop it.
Practical tips
- POTA at home: operate without /P where your rules allow it. With standard partners /P does no harm, with nonstandard calls it does, and it isn’t needed.
- POTA abroad: put the country prefix in front, leave out optional suffixes unless the host country requires them. CQ without locator and without «POTA», and patience, because hunters first see you as <…>. They learn that it’s an activation from the POTA spot.
- Don’t type anything by hand. The messages Tx1 to Tx6 generated by the software follow the rules. Hand-typed text can be rebuilt silently, see the vanished prefix above.
- Check your log: before uploading, verify callsigns that only appeared in angle brackets or as <…>.
This isn’t only about WSJT-X. JTDX, MSHV and other programs speak the same 77-bit protocol, otherwise they couldn’t work each other at all.
Conclusion
FT8 doesn’t get confused by a slash. It simply has fixed compartments, and a prefix doesn’t fit into the standard one. My rule of thumb: a /P doesn’t bother FT8, a prefix does. Leave out optional add-ons, send the mandatory ones.
Sources
- Steven Franke K9AN, Bill Somerville G4WJS, Joe Taylor K1JT: The FT4 and FT8 Communication Protocols, QEX July/August 2020
- WSJT-X User Guide 2.7.0, sections 7.1 «Standard Exchange» and 7.5 «Nonstandard Callsigns»
- WSJT-X source code,
lib/77bit/packjt77.f90and77bit.txt(repository mirror, as of March 2024), compiled and tested myself - CEPT Recommendation T/R 61-01, section 2.3
- OFCOM (BAKOM): Amateurfunkdienst – Vorschriften, edition 22.01.2019, Art. 7 VFKV (in German)
- USKA: Rufzeichen & CEPT (in German)
73 de Chris, HB9HJI
Leave a Reply