The Beginner's Tour of the Digital Modes
Every protocol in Rafe, explained from zero — easiest first
A companion to The Mathematics of the Digital Modes (the intermediate guide — the maths behind everything here, with worked examples), Protocol Commonalities (the engineer's tour) and the full specifications (every constant, for implementers).
This is the door marked "start here." You need no radio background and no maths. We will walk through every protocol Rafe can decode, one at a time, starting with things a child could build and ending at satellite television. Each stop adds one or two new ideas, clearly flagged, and every idea is reused later — so by the end, the scary-sounding modes are just familiar pieces stacked higher.
Three ideas before we set off
1. A radio signal is a tone. Strip away everything and a transmitter makes one pure tone — like a whistle — at an agreed spot on the dial. To send information you must change something about that tone over time. There are only three things you can change:
how LOUD it is what PITCH it is WHERE IN ITS WIGGLE it is
(amplitude) (frequency) (phase)
▂▂████▂▂████ ~~~≈≈≈~~~≈≈≈ ~~~~╳~~~~
quiet/loud/quiet low/high/low the wave suddenly starts
wiggling the opposite way
Every protocol in this tour — all thirty-something of them — is built on one or more of those three knobs. That's the whole secret.
2. The waterfall. Radio people look at signals on a waterfall: a picture where left–right is pitch, top–bottom is time scrolling past, and brightness is loudness. A steady tone is a vertical line. A two-tone signal is two dashed lines taking turns. Keep this picture in your head; most of the diagrams below are little waterfalls.
3. Everything becomes bits — eventually. Text, positions, voices, and pictures are all turned into numbers, and numbers into bits (ones and zeroes) before transmission. The interesting differences between protocols are how few bits they need, and how they protect those bits from noise. But our first two stops don't even use bits — which is exactly why they're first.
The route:
| Stage | Theme | Protocols |
|---|---|---|
| 1 | Switching a tone on and off | Feld Hell, NOAA APT, ISM gadgets, ADS-B |
| 2 | Two tones — the teleprinter's grandchildren | RTTY, NAVTEX, POCSAG, APRS, AIS |
| 3 | Many tones — hearing below the noise | MFSK, THROB, DominoEX/Thor, Olivia, WSPR, JT65, FT8/FT4, JS8, JT4/Q65/FST4 |
| 4 | The third knob — phase | PSK31, RDS |
| 5 | Slide whistles — chirps and the IoT | LoRa, Meshtastic |
| 6 | Saying it out loud — digital voice | M17, P25, TETRA, FreeDV, RVQ-Voice |
| 7 | The heavy machinery | ARDOP, Mercury, HamDRM, DAB, Meteor LRPT, DVB-S, DVB-S2 |
| 8 | Not radio at all | RS-BA1 |
Stage 1 — Switching a tone on and off
The simplest thing you can do with a tone is turn it on and off. It sounds too crude to be useful. Four very different systems prove otherwise.
1. Feld Hell — painting letters with dots
Invented by Rudolf Hell in 1929, decades before computers. Here is the trick: don't send letters at all. Send a picture of the letters, one thin column at a time, by switching the tone on for ink and off for blank paper:
column → 1 2 3 4 5
█ . . . █
█ . . . █ each █ = tone ON for an instant
█ █ █ █ █ each . = tone OFF
█ . . . █
█ . . . █ five columns later, an "H" has
appeared on the receiver's screen
The receiver doesn't understand text. It just prints dark wherever the tone was loud — about 17.5 columns per second. If the signal gets noisy, letters don't turn into wrong letters; they get smudgy and freckled, and your eye reads through the noise. A human is the error corrector. That graceful, foggy failure is why people still love it.
New ideas: on-off keying (OOK); sending a picture instead of a code. → Full spec
2. NOAA APT — weather photos by loudness
Some NOAA weather satellites transmit their camera view continuously as they fly over, in a format from the 1960s that you can decode with a TV aerial. There are no bits at all. The satellite hums a steady 2400 Hz tone and makes it louder for bright ground, quieter for dark ground, sweeping out the image two lines per second — a fax machine in orbit. Each line starts with a distinctive tick-tick-tick burst so the receiver knows where the left edge is; stack thousands of lines and a picture of the Earth appears.
The lesson to bank: when there's no error protection, damage is graceful — noise becomes visual "snow," not a crashed download. Digital modes will give us perfection or nothing; analogue gives us always-something.
New ideas: amplitude carries a smooth value, not a bit; a repeating sync mark finds the line edges. → Full spec
3. ISM gadgets — your doorbell is a radio station
Wireless doorbells, weather stations, tyre-pressure sensors, remote thermometers — the cheap gadgets of the world chirp away on shared "ISM" frequencies (433 MHz and friends), and almost all of them use the crudest scheme possible: tone on = 1, tone off = 0, in short bursts. Now we have bits, and two beginner-sized problems appear:
- How loud counts as "on"? The receiver watches the signal and sets a threshold halfway between recent loud and quiet — with a little dead zone so a wobbling signal doesn't flicker between decisions.
- Where does one message end? Silence. A gap longer than anything inside a packet means "that was the whole message."
Each gadget then has its own tiny home-made data format — which is why a decoder like Rafe's carries a catalogue of device recipes rather than one universal parser.
New ideas: bits; thresholds; framing by silence. → Full spec
4. ADS-B — aeroplanes shouting their position
Every airliner overhead broadcasts its identity, position, and altitude about twice a second at 1090 MHz. These messages are just 112 bits long, sent blisteringly fast (one microsecond per bit) — and they use a beautiful refinement of on/off keying. Each bit's time slot is split in half, and a short pulse is placed in the first half for a 1, the second half for a 0:
one bit = 1 microsecond
┌────┬────┐ ┌────┬────┐
│ ██ │ │ │ │ ██ │
└────┴────┘ └────┴────┘
pulse early pulse late
= 1 = 0
Why bother? Because the receiver never needs to know how loud "on" is — it just asks which half is louder, comparing the signal with itself. Clever positioning beats careful measuring.
One more first: with hundreds of planes sharing one channel, the receiver needs to reject mangled overlaps. So every message ends with a checksum — 24 bits computed from all the others, like the till receipt total at the bottom of a shopping list. Recompute it on receive; if it doesn't match, bin the message. Almost every protocol from here on carries one.
New ideas: pulse-position keying; the checksum (CRC). → Full spec
Stage 2 — Two tones: the teleprinter's grandchildren
On/off keying has a weakness: silence is ambiguous. Is that a string of zeroes, or did the signal fade out? The fix that defined a century of radio: use two tones, one for 1 ("mark") and one for 0 ("space"), and never stop transmitting. The receiver only asks "which tone is louder right now?" — a comparison that survives fading beautifully. This is FSK — frequency-shift keying — the workhorse of everything in this stage.
5. RTTY — the mechanical chat room
Radioteletype is a 1930s technology: two typewriters connected by radio. Letters are sent in the 5-bit "Baudot" alphabet (32 combinations — enough for A–Z, with a special shift character to switch into a second page of numbers and punctuation, exactly like a typewriter's shift key). Each character travels in a little self-timing parcel:
idle ──┐ start │ 5 data bits │ stop ──── idle…
mark │ space │ ▂ ▆ ▂ ▆ ▆ │ mark
└───────┴─────────────────────┴──────
the start bit says "wake up, character coming!"
The pace is 45.45 bits per second — about six characters, or sixty words, a minute: the speed of a good typist. No checksum, no error correction: on a rough night, HELLO arrives as HELMO and the operators shrug. It's still everywhere in amateur radio, because two tuned humans are the error correction.
New ideas: FSK; a fixed alphabet; start/stop framing. → Full spec
6. NAVTEX — say everything twice
Ships receive weather forecasts and navigation warnings on 518 kHz via NAVTEX — RTTY's safety-conscious cousin. Broadcasts are one-way (a coast station cannot hear a thousand ships say "pardon?"), so it protects itself two ways:
- A self-checking alphabet. Every character's 7-bit code contains exactly four 1s and three 0s. Flip any single bit and the count is wrong — the receiver instantly knows that character is damaged (though not how to fix it).
- Everything is sent twice, with the repeat delayed by a few characters. A burst of interference may kill a character — but not both copies, because they travel at different moments. The receiver keeps whichever copy passes the four-ones test.
Simple, slightly wasteful (half the airtime is repetition), and very hard to kill. This is your first taste of error correction: not just detecting damage, but surviving it.
New ideas: error-detecting alphabet; repetition with a time offset (diversity). → Full spec
7. POCSAG — the pager's wake-up call
The 1980s pager network still whispers on. Its problem was unique: the receiver lives in a pocket, on a tiny battery, sleeping almost all the time. So every transmission begins with a long, unmistakable ding-dong-ding-dong — 576 alternating bits — giving a dozy pager ample time to wake, lock on, and steady itself. Then comes a fixed 32-bit sync word (a known pattern marking "the message starts HERE"), then the messages in tidy batches.
And here is the tour's first real error correction. Each 32-bit word carries 21 bits of message and 10 check bits woven together so cleverly that the receiver can not only detect errors but work out which two bits flipped, and flip them back. Think of it as a sudoku: the check bits over-constrain the word, so a small amount of damage leaves only one possible original. (The scheme is called a BCH code — the maths is in the engineer's tour; the idea is just "enough well-designed clues to repair small damage.")
New ideas: preamble; sync word; error-correcting codes. → Full spec
8. APRS — packets through a walkie-talkie
Amateur radio's position-and-messaging network. The charming hack: the two tones (1200 and 2200 Hz) are audio tones played into an ordinary voice radio's microphone — so any FM walkie-talkie becomes a data modem. Data rides in packets with a proper structure, our first look at one:
┌──────┬──────────┬──────────┬────────┬─────────────┬───────┬──────┐
│ flag │ to │ from │ via │ the message │ check │ flag │
│ 0x7E │ callsign │ callsign │ relays │ "hi! @ 51N…"│ (CRC) │ 0x7E │
└──────┴──────────┴──────────┴────────┴─────────────┴───────┴──────┘
The flag is a reserved marker byte fencing each packet. But wait — what if the message itself happens to contain that byte? The fix is bit-stuffing: the transmitter never allows six 1s in a row inside a packet (it slips in a 0 after every five), so the flag — which contains six 1s — cannot occur by accident. The receiver removes the stuffed zeroes. A tiny idea you'll find in half the world's networking.
Note the via field: packets ask hilltop relay stations to repeat them, hop by hop. You've just met your first network, not just a link.
New ideas: packets with addresses; bit-stuffing; relaying. → Full spec
9. AIS — ships taking turns
Every large ship broadcasts its name, position, course and speed on two VHF channels, and your harbour webcam map is built from it. Two refinements over APRS:
- Rounded corners. Snapping instantly between two tones splatters noise onto neighbouring channels — like a violinist scratching between notes. AIS glides smoothly from tone to tone (the polished version is called GMSK). Same information, much tidier spectrum, tighter channel packing.
- Taking turns. Thousands of ships share one channel by slicing each minute into 2,250 tiny slots. Each ship announces which slot it will use next, so transmissions interlock like a well-run meeting rather than everyone shouting at once.
The packet framing (flags, bit-stuffing, checksum) is the same family as APRS — ideas carry over, which is rather the point of this tour.
New ideas: smooth tone transitions; sharing a channel by time slots. → Full spec
Stage 3 — Many tones: hearing below the noise
Now the flagship idea of amateur radio's modern era. If two tones are good, why not 4, 8, 16… 65? Each transmitted tone can then carry several bits at once (8 tones = 3 bits per tone, since there are 8 choices). But the real prize is stranger and lovelier:
A narrow ear hears fainter sounds. The receiver checks for tones with what amounts to a bank of tuning forks (the FFT — a mathematical prism that splits sound into pitches). Noise is spread across all pitches; your tone lives at one. So the longer and steadier each tone, the narrower the fork you may use — and the more noise you exclude. Push this far enough and you can reliably read signals quieter than the noise itself — signals you cannot hear at all with your ears.
frequency →
time │ . . █ . . . . .
↓ │ . . . . . █ . . an 8-tone signal on the waterfall:
│ █ . . . . . . . one tone at a time, the hopping
│ . . . . █ . . . pattern IS the data
│ . . █ . . . . .
Everything in this stage trades speed for sensitivity along exactly this line.
10. MFSK16 and THROB — the early many-tone chatters
MFSK16 sends typing-speed text on 16 tones, four bits per tone, with error-correction woven through (a convolutional code — think of it as each bit being smeared across several transmitted bits, so the decoder can vote its way through noise). THROB is the eccentric uncle: nine tones, and each character lights up one or two of them at once as a slow, soft pulse — 9 single-tone plus 36 pair combinations = 45 characters. On a waterfall it pulses hypnotically; on a speaker it throbs. About two characters per second, no error correction, pure charm.
New idea: several bits per tone. → MFSK spec · THROB spec
11. DominoEX and Thor — surviving a drifting dial
Cheap radios drift; ionospheric paths smear. These 18-tone modes sidestep both with one elegant move: the data isn't which tone was sent, but how far this tone is above the last one (wrapping around at the top, always stepping at least 2). If the whole signal drifts, every tone drifts together — and the differences, which carry the data, don't change at all. Self-tuning by design. Thor is DominoEX plus proper error correction for rough paths; DominoEX stays light and quick.
New idea: sending differences instead of absolutes. → DominoEX spec · Thor spec
12. Olivia and Contestia — the conversation that won't die
The mode of last resort: when a band is so poor that everything else has failed, Olivia keeps chatting. Each character is transformed into a long, distinctive pattern 64 flips long — one of 128 patterns chosen to be maximally different from each other, like passwords no two of which share more than half their letters. The receiver doesn't ask "which tones did I hear?" but "which of the known patterns does this whole mess most resemble?" Huge redundancy per character, and it pays: reliable text from signals well below where your ear gives up. Contestia is the same machine tuned for double speed at a small cost in robustness.
New idea: comparing against a small set of very-different codewords. → Full spec
13. WSPR — the whisper heard around the world
Pronounced "whisper," and it is one. WSPR stations transmit a beacon — just callsign, location square, and power level, squeezed into 50 bits — over nearly two full minutes, using four tones spaced 1.5 Hz apart. Everything is spent on redundancy: those 50 bits are stretched to 162 transmitted symbols, and half of every symbol is a fixed timing pattern the receiver hunts for. The result: transmissions of half a watt — a torch bulb — are logged on the other side of the planet, and a public map shows you which paths around the Earth are open right now.
WSPR is where you first feel the deal clearly: two minutes for 50 bits, in exchange for hearing the un-hearable.
New idea: spending everything — time, redundancy, structure — on sensitivity. → Full spec
14. JT65 — bouncing hello off the Moon
Radio amateurs bounce signals off the Moon: a 770,000 km round trip that returns an absurdly faint echo. JT65 (by Joe Taylor, a Nobel-prize-winning physicist) was built for exactly this. It uses 65 tones — one reserved as a timing beacon, 64 for data — with each tone held for over a third of a second.
Its error correction deserves its own sentence. The 72-bit message becomes just 12 symbols, which are expanded to 63 using a Reed–Solomon code. The magic is best said plainly: any 12 clean symbols out of the 63 are enough to recover the message perfectly. Like over-determining a curve: the message pins down a curve, you transmit 63 points along it, and the receiver can redraw the curve from whichever dozen points survive. Bursts of damage that would annihilate RTTY simply don't matter.
New idea: block codes where a fraction of the transmission carries the whole message. → Full spec
15. FT8 and FT4 — the fifteen-second dance
The most popular amateur mode on Earth, by a mile. FT8 makes weak-signal contacts routine by making them rigid: everyone's clock is synchronised, and the world transmits in alternating 15-second slots —
:00 :15 :30 :45
├── you ────┤├─ them ────┤├── you ────┤├─ them ────┤
"CQ …" reply signal rpt "roger 73"
Each transmission is 12.6 seconds of 8 smoothly-shifting tones carrying a 77-bit message (callsigns and a signal report, packed with fanatical efficiency). The frame has three fixed 7-tone signature patterns — start, middle, end:
| SYNC(7) | data(29) | SYNC(7) | data(29) | SYNC(7) |
The receiver slides this known 2-D pattern across the whole waterfall — every possible time offset and every possible frequency at once — and where it clicks into place, both alignments are solved in one stroke. Then a modern LDPC error-correcting code goes to work: think of the 174 transmitted bits as a giant sudoku, where 83 overlapping "rows-must-sum-even" clues let the decoder iteratively nudge uncertain bits until the whole grid is consistent. Finally a 14-bit checksum acts as the exam marker — because a decoder this powerful will occasionally "solve" pure noise into a plausible wrong answer, and the checksum catches the confabulation.
Decodes twenty-plus decibels below the noise — a hundred times fainter than audible. FT4 is the same machine at double speed for contests.
New ideas: synchronised time slots; 2-D pattern search; iterative decoding + a checksum as the final referee. → Full spec · How 77 bits hold a QSO
16. JS8 — FT8, unbolted into a chat room
Take FT8's engine, remove the rigid two-line contact script, and you get JS8Call: free-form keyboard chat, heartbeats, relayed messages, even a directed "query" system — all at FT8-class sensitivity. Long messages simply ride as chains of 15-second frames (with faster and slower gears available). Technically it's a sibling — same tones, same family of sudoku-codes, deliberately incompatible checksum so the two networks ignore each other politely.
New idea: building a messaging network on a weak-signal engine. → Full spec
17. The specialists: JT4, Q65, FST4
Three more from the same laboratory, tuned for extremes. JT4 is a four-tone cousin used on microwave moonbounce, with tone spacings widened to shrug off equipment drift. Q65 is JT65's modern successor — 65 tones again, but the error correction now speaks the same 64-symbol language as the tones themselves, so nothing is lost translating tones into bits before decoding; it owns the toughest scatter paths. FST4/FST4W stretch the FT8 idea to transmissions of up to five minutes with tones a fraction of a hertz apart, for the eerie world of LF/MF — where signals crawl but cross oceans on microwatts. Same ideas you already know; more extreme dials.
Stage 4 — The third knob: phase
Amplitude and frequency are spent. The remaining knob is phase — where in its wiggle the wave is at a given instant. Imagine pushing a child on a swing: same swing, same rhythm, but you can push at the moment it moves away from you, or (rudely) at the exact opposite moment. A receiver that compares the wave against a reference can tell the difference. Flipping the phase by half a cycle is the crispest possible signal:
normal: ~ ~ ~ ~ ~ ~ ╳ ¬ ¬ ¬ ¬ ¬ at ╳ the wave suddenly
wiggles opposite-ways:
no flip = 0 flip = 1 that's one bit
Phase carries more data per hertz of bandwidth than frequency — but there's a catch: the receiver has no idea what "normal" phase is. The two protocols here share the same answer: don't signal absolute phase; signal phase changes.
18. PSK31 — keyboard whispering, 31 Hz wide
The mode that re-lit keyboard chat in 1998. PSK31 sends about 31 phase-symbols per second — deliberately matched to human typing speed — in a signal only ~31 Hz wide (a hair's breadth; a hundred conversations fit where one voice channel sat). A phase flip between symbols means 1; no flip means 0. And its alphabet is a gem: like Morse, common letters get short codes (e is just two bits), and the gap between characters is itself the pattern "00", which no character's code contains — so the text stream self-punctuates with no framing machinery at all.
No error correction — just extreme narrowness and efficient spelling. Watch a waterfall: PSK31 signals are fine bright threads with a characteristic shimmer.
New ideas: differential phase; variable-length alphabets (common = short). → Full spec
19. RDS — the whisper inside FM radio
Why does your car radio show the station's name? Hidden inside every FM broadcast, far above the audible programme, rides a faint phase-keyed data stream at 1187.5 bits per second: station name, programme type, alternative frequencies, the time. Two touches worth admiring:
- The data's carrier is derived from the broadcast's own 19 kHz pilot tone (tripled to 57 kHz), so the receiver reconstructs its phase reference from something it already has.
- There are no frame markers at all. Data comes in 26-bit blocks whose checksums are deliberately "flavoured" — offset by one of five known patterns. The receiver slides along the bit stream computing checksums; when one matches a flavour, it has found the block boundary, learned which block it is, and verified it — three answers from one little sum.
New ideas: hiding data inside another signal; a checksum doing triple duty as framing. → Full spec
Stage 5 — Slide whistles: chirps and the Internet of Things
20. LoRa — the chirp that crosses a city on a coin cell
Your neighbourhood's smart meters and air-quality sensors likely speak LoRa. Its symbol is unlike anything so far: a chirp — a slide-whistle sweep rising across the whole channel — where the data is where in the sweep the symbol starts (it wraps around the top edge, like a barber's pole):
f │ /│ ──╮ / each symbol sweeps the full band;
│ / │ ╳ the STARTING POINT is the data —
│ / │ /│ this one starts mid-band and
│ / │ / ╰── wraps around
└─────┴──────────── t
plain chirp shifted chirp
The receiver multiplies by a matching falling sweep, which — lovely bit of maths — collapses each chirp into a single steady tone whose pitch is the answer. So the mighty spread-out chirp funnels down into one narrow tuning-fork bin, and just like Stage 3, the noise mostly doesn't come along. Result: kilometres of range, milliwatts of power, receivers that cost a dollar — 10–20 dB below the noise floor. A "spreading factor" dial trades speed for reach: each notch doubles the airtime and digs deeper.
You'll recognise the supporting cast by now: a preamble of plain chirps, a little Hamming error-correction, a checksum, and a data shuffle. (Rafe also implements an audio-band cousin of the same idea, squeezed into a voice channel — plus the chirp modem itself.)
New idea: spread the signal wide, then coherently collapse it (processing gain). → Full spec
21. Meshtastic — a text-message mesh with secrets
Strap a LoRa radio to a battery, flash Meshtastic, and you have an off-grid texting network: every node relays for its neighbours (a few hops, flood-style), so a group of hikers or a whole town knits itself together with no infrastructure at all.
The new idea is encryption — and an important distinction. Several protocols in this tour "scramble" their bits, but with a publicly known pattern, purely to keep the signal electrically well-behaved; anyone can unscramble it. Meshtastic instead XORs its messages with a keystream generated from a secret key: without the key the payload is noise; with it, plain text. Same XOR operation, opposite purpose — one is housekeeping, the other is a lock. (One caveat the spec is honest about: messages are encrypted but not signed, so anyone holding the group key can also forge messages.)
New ideas: mesh relaying; encryption vs. scrambling. → Full spec
Stage 6 — Saying it out loud: digital voice
Voice is just sound, and sound digitises into an awful lot of bits — far too many for a narrow radio channel. The trick that makes digital voice possible is the vocoder: don't send the sound; send instructions for rebuilding it. Your throat is a buzzing source shaped by a filter (mouth, tongue, lips). A vocoder measures the buzz's pitch and the filter's shape a few dozen times a second and transmits only those measurements — a few kilobits instead of hundreds. The receiver runs a little talking robot that obeys the instructions. That's why digital voice has its characteristic robotic accent: you're not hearing the voice, you're hearing a model of it.
The systems below all follow one recipe — vocoder for the sound, then the toolkit you already know (sync words, error correction, checksums) around it — with the crucial refinement that the important bits get stronger armour. If a pitch value is damaged, the whole syllable warbles; if a minor texture bit is damaged, nobody notices. So the codes protect them unequally.
22. M17 — digital voice, the open-source way
Built by radio amateurs frustrated that commercial digital-voice formats are patented black boxes. Everything is open: the vocoder (Codec2, free software), the framing, the lot. Four smoothly-shaped tones carry 9600 bits/s; each 40 ms frame holds two vocoder packets plus a slice of the "who's calling whom" information, each slice wrapped in triple-strength armour (a Golay code — repairs 3 bad bits in every 24) so a listener who tunes in mid-sentence collects the slices and reassembles the caller's ID within a second. Callsigns travel in a compact base-40 packing. A tidy, learnable, modern design — if you ever want to read one digital-voice spec end to end, pick this one.
New ideas: the vocoder; unequal protection; late-joiner design. → Full spec
23. P25 — the police radio
North American public-safety radio. Same recipe, professional-grade paranoia. Every frame opens with a long fixed sync pattern, then a network ID protected by an extraordinarily strong code — 16 bits of information wrapped in 48 bits of checkwork, able to survive 11 of its 63 bits being flat wrong — because if you can't read whose network and what kind of frame, nothing else matters. The voice itself (an IMBE vocoder, patented — Rafe hands it to an external codec) is sliced into importance tiers, each tier with proportionate armour. Notice you can now read this design: sync word → armoured header → tiered payload protection. Nothing new; everything applied.
24. TETRA — four conversations, one channel
European emergency and taxi networks. TETRA's headline is efficiency: one 25 kHz channel carries four simultaneous conversations by slicing time —
┌────────┬────────┬────────┬────────┐ repeating…
│ slot 1 │ slot 2 │ slot 3 │ slot 4 │ four calls share the
│ call A │ call B │ call C │ call D │ carrier, taking turns
└────────┴────────┴────────┴────────┘
— AIS's taking-turns idea, industrialised. It keys data as phase changes (a quarter-turn-offset QPSK, gentle on cheap amplifiers), plants its known training pattern in the middle of each burst where channel estimates help both halves, and hides one more elegant trick: the scrambling pattern applied to every burst is seeded by the network's identity, so decoding cleanly and confirming "this is my network" are the same act.
New idea: time-division sharing at scale. → Full spec
25. FreeDV — voice where voice can't go
Digital voice for shortwave, where signals wobble, fade and echo. FreeDV sends a 700-bit/s Codec2 stream over a small choir of parallel phase-keyed carriers with modern LDPC error correction (Rafe wraps the reference library). At its best it delivers intelligible speech from signals where analogue SSB is a roar of static — and when it loses, it loses all at once (the "digital cliff": perfect, perfect, perfect, gone).
26. RVQ-Voice — this project's own experiment
Rafe's native digital-voice codec: a classical talking-robot vocoder front-end, but its measurements are compressed by a stack of learned codebooks (residual vector quantisation — each stage encodes what the previous stage missed), landing at 1.6–3.2 kbit/s. It travels over a self-contained burst modem with the full standard toolkit: preamble, sync word, checksum, error correction, interleaving. By this point on the tour you could sketch that frame yourself — which is precisely the graduation test.
Stage 7 — The heavy machinery
Everything left is systems: HF data links, broadcast radio, weather satellites, satellite TV. Two final ideas power them all.
Idea one: shuffle before you send (interleaving). Real interference comes in bursts — a lightning crackle wipes out a clump of neighbouring bits, and error-correcting codes hate clumps. So: shuffle the bits into a new order before transmission, unshuffle at the receiver — and the burst, unshuffled, lands as isolated single-bit errors sprinkled thinly, exactly what the codes fix best. Shuffle a deck; spill coffee on four adjacent cards; unshuffle — the stains land one per suit.
Idea two: two layers of armour (concatenation). Use a fast inner code to fix everyday noise — but when the inner decoder loses its footing it fails in bursts. So wrap an outer burst-proof code (Reed–Solomon, JT65's curve trick) around it to mop up the inner decoder's mistakes:
sound/picture → [compress] → [OUTER code] → [shuffle] → [INNER code] → [modulate] → 📡
↑ fixes the inner ↑ fixes everyday
decoder's rare bursts random noise
That pipeline flew to the outer planets on Voyager and sits in your satellite dish today.
27. ARDOP — "say again?" — reliable data over HF
The mode behind Winlink (email over shortwave, beloved of sailors). ARDOP's defining feature is the two-way contract: send a batch of frames, then listen; the far end replies "got 1 and 3 — resend 2":
you ── frame 1 ──▶ you ── frame 2 ──▶
you ── frame 2 ──✗ lost ◀── "all good" ── them
you ── frame 3 ──▶
◀── "resend 2" ── them
With a return channel, perfection is negotiated rather than gambled on redundancy — and the two ends continuously renegotiate speed, stepping between rugged four-tone FSK and faster multi-carrier phase/QAM constellations as conditions change. Broadcast modes (NAVTEX!) would kill for this; they simply can't have it.
New ideas: ARQ (ask again); adaptive speed. → Full spec
28. Mercury — a modem with seventeen gears
An open HF data modem, implemented clean-room in this repo. Instead of one fast, fragile carrier it transmits a little choir of 50 slow parallel carriers (a technique called OFDM — hold that thought for DAB, next stop) with modern LDPC error correction and seventeen speed configurations, from "wet string between continents" (heavy redundancy, simplest keying) to "surprisingly brisk" (dense QAM constellations, light redundancy), plus its own ask-again layer. Think of it as this stage's ideas offered as one tidy menu.
29. HamDRM — photographs over shortwave
Hams mail each other pictures across oceans on 2.5 kHz of shortwave, using a shrunk version of the Digital Radio Mondiale broadcast standard. It's OFDM again — dozens of little carriers — with known "pilot" cells sprinkled through the signal so the receiver can continuously map how the ionosphere is currently mangling each frequency, and undo it. Sweetest detail: a tiny, armoured cover page (the FAC) transmitted in the most rugged form possible, which a cold receiver decodes first to learn the settings for everything else. The file itself arrives in numbered chunks; miss some, and your partner sends a compact repair file whose Reed–Solomon parity can regenerate whichever chunks went missing — the curve trick again, used as a band-aid.
New ideas: pilot cells (measuring the channel); a rugged self-describing header. → Full spec
30. DAB — broadcast radio, rebuilt from scratch
Digital radio in your car. The problem it solved: at motorway speed in a city, FM fights echoes — your aerial hears the transmitter and its reflections off every tower block, smeared in time. DAB's answer is OFDM at full scale: chop the data across 1,536 parallel carriers, each so slow that an echo arriving late lands harmlessly inside a guard pause instead of on top of the next symbol. One fast, fragile stream becomes 1,536 slow, tough ones.
Every frame starts with the cheapest sync trick on the tour: the transmitter simply goes silent for a moment. Find the dip in energy — that's the frame boundary; no pattern matching required. Inside rides a whole ensemble of stations, each protected unequally (headers strongest, audio detail lightest), because a damaged header loses the frame while a damaged audio detail is inaudible for one twentieth of a second.
New ideas: OFDM against echoes; silence as a sync mark; one signal carrying many services. → Full spec
31. Meteor LRPT — a weather satellite, decoded like an onion
Russia's Meteor-M satellites photograph the Earth and transmit the pictures digitally at 137 MHz. Decoding is the full Voyager-descended pipeline run backwards, layer by layer:
- Lock the phase-keyed carrier (72,000 symbols/s) and recover soft bits.
- Run the inner decoder (Viterbi) to fix everyday noise.
- Hunt the famous 32-bit space-agency sync marker
1ACFFC1Dto find frame edges. - Undo the standard scrambling (housekeeping, not secrecy — you know this now).
- Unshuffle and run the outer Reed–Solomon decoder to mop up burst damage.
- Reassemble packets → image strips → the cloud picture on your screen.
Nothing in that list is new to you. That's the point: a real space downlink is Stage 1–7 ideas, stacked neatly.
32. DVB-S — satellite television, generation one
The 1990s standard that put thousands of TV channels on dishes. Structurally you already know it: MPEG video in fixed 188-byte packets; each packet gains 16 bytes of Reed–Solomon armour; packets are shuffled; an inner convolutional code with selectable strength is applied; the result keys a phase-modulated carrier (QPSK — two bits per symbol, four "compass point" phases). One puzzle worth savouring: with a continuous firehose of packets, where do frames start? DVB-S sends no sync pattern at all. Every packet begins with the same byte, 0x47 — so the receiver just looks for some byte value recurring at exactly the right spacing, and locks to the rhythm. Sync by cadence, for free.
New idea: synchronising on a repeating structure instead of a dedicated marker. → Full spec
33. DVB-S2 — the summit
The current satellite-TV standard, and this tour's final boss — yet you can now read it at sight. Data rides in big blocks protected by a two-layer shield: a near-perfect iterative LDPC code (FT8's sudoku, scaled up ~100×) plus a thin outer BCH code (POCSAG's algebra, scaled up) to catch the LDPC's rare confabulations. The masterstroke is the frame header: 90 symbols sent in the most rugged keying available, carrying "here is the modulation and code rate for the payload that follows." The header is deliberately tougher than the payload — the receiver learns how to decode from something it can hear even when it can't yet read the programme. Meanwhile the payload can shift, frame by frame, between thrifty QPSK and dense multi-ring constellations as rain fades the link.
Satellite TV, weather satellites, deep-space probes, your Wi-Fi and your phone — all of them are this same stack, with the dials in different places.
Stage 8 — And one that isn't radio at all
34. RS-BA1 — driving the radio from your sofa
The protocol Rafe itself speaks to control an Icom radio over the network: three UDP streams (control, radio commands, audio) between your computer and the rig. No modulation — your Ethernet handles the physics — and yet the tour's ideas reappear intact: a handshake instead of a preamble ("are you there?" / "I am here" / "ready?"), sequence numbers instead of a checksum-per-frame, and "resend number 2" ARQ exactly as in ARDOP. One cautionary exhibit: the login password is "protected" by a fixed letter-substitution table — no secret key, trivially reversible. After Meshtastic you can name that precisely: obfuscation, not encryption. A speed bump, not a lock.
New idea: the same protocol patterns exist above the physical layer — and now you can audit them. → Full spec
The view from the top
Look back down the mountain. Every protocol you met is a stack of the same dozen ideas:
- make the tone mean something — loudness, pitch, phase, chirp-position;
- help the receiver find you — preambles, sync words, patterns, cadence, silence;
- admit damage happens — checksums to detect it, clever redundancy to repair it, shuffling to break up bursts, or simply asking again;
- spend bits wisely — short codes for common things, models instead of raw sound;
- protect unequally — headers and identities first, cosmetic detail last.
Feld Hell uses one of these ideas. DVB-S2 uses all of them. Nothing in between is magic.
Where next:
- Protocol Commonalities — the same territory at engineering depth: the why behind every choice, with the maths named.
- The specifications — every constant and table, per protocol, enough to build your own decoder.
- Or just open Rafe, drop the waterfall onto a band, and watch these signals swim past — you'll recognise them now.