Inside the Missileer Receive Station
Every Missileer on every desk reacts to the same live traffic, heard by a real antenna. This page is the honest tour of how that works — including the engineering trade-offs, because the trade-offs are the interesting part.
The chain
wire antenna → 9:1 unun → SDR (direct sampling) → Raspberry Pi → detection → transcription → one canonical message → feed → every device
A Raspberry Pi with a ~$40 software-defined radio sits on the HFGCS voice frequencies — 11175 kHz by day, 8992 kHz by night, following propagation. The channel is silent most of the time; a squelch watches for a transmission, records it with a few seconds of padding on each side, and hands the audio to a speech-recognition model running right on the Pi. Recognized phonetic words — “November four tango…” — map to characters, and the result is pushed to our feed server. Devices poll the feed. The Pi and your device never talk directly.
The insight that makes it work
Here's the honest part: speech recognition on noisy shortwave audio is not very accurate. And it doesn't matter. The message content is ciphertext — unreadable by anyone — so there is no “correct” transcript to be graded against. What the system actually needs is to reliably detect that a transmission happened and produce one stable string for it. Every device sees the same string because the server holds exactly one per message. We tuned the whole pipeline for detection, not word-accuracy — and that reframe is what makes a one-Pi receive station realistic at all.
What one antenna hears
One receiver at one location, subject to HF propagation, misses weak transmissions. We say this plainly: Missileer's event rate is “what our antenna hears,” which is a subset of what the network sends. Strong broadcasts — which are most of them — come through. The upgrade path is more stations, and the fun long-term version is owners contributing reception. But we'd rather ship an honest single station than imply coverage we don't have.
Why we built it this way
We could have leaned on someone else's monitoring infrastructure. We didn't want the product to depend on borrowed hobby endpoints, and we wanted to be able to publish our own archive of received transmissions — audio EAM archives are scarce, and text logs aren't a substitute. Owning the receive chain end to end is what makes both possible.
Go deeper
Missileer is the desk monitor at the end of this chain — when the station hears a message, your device prints it, character by character. See Missileer →