Under the hood — how Open Signal moves a picture
For the technically curious — accurate but non-exhaustive. What follows is the actual engineering: the waveform, the coding layers, the picture codec, and the architecture that let all of it be built and regression-tested before any hardware existed.
The digital waveform
- OFDM in a 2.4 kHz SSB channel: ~76 subcarriers, a cyclic prefix sized for worst-case HF multipath, and pilot subcarriers for channel estimation.
- Adaptive modulation — BPSK, QPSK, 16-QAM or 64-QAM per conditions; a probe measures SNR and the link negotiates the fastest mode that will decode.
- Soft-decision FEC — a convolutional inner code with a soft-output Viterbi decoder (LDPC is a planned upgrade behind the same interface).
- Fountain outer code — pictures are broadcast as an endless stream of coded blocks; any receiver that collects slightly more than it needs rebuilds the whole picture, and late-joiners catch up. No per-receiver retransmission.
- Synchronisation — a Schmidl & Cox preamble for frame detection, carrier and clock recovery; the equalizer soft-erases faded subcarriers rather than feeding the decoder confident garbage.
The colour picture codec
Pictures use a reversible integer-wavelet transform producing a progressive bitstream — coarse thumbnail first, refining to full detail — so a receiver can stop early and still have a usable picture. Colour is YCbCr with half-resolution chroma, each plane wavelet-coded then Deflate-compressed. A 320×240 colour picture is roughly 4–5 kB, well under a minute on air, and error-corrected — where an analog SSTV frame of lower fidelity takes ~110 seconds.
SSTV
Implemented from the published mode specifications: a shared timing table drives both transmit and receive for every supported mode across the six families, VIS headers auto-select the mode, and the line clock re-locks on each sync pulse to defeat sound-card drift. Robot and PD modes carry colour as YCbCr with the family's chroma-sharing; transmit appends an FSK callsign ID. See the SSTV mode reference for the mode-by-mode details.
Software architecture
- C# / .NET 8, single self-contained executable. Hot audio/DSP paths are allocation-free.
- Layered so hardware is mockable: the modem was built and regression-tested entirely against a simulated HF channel (Watterson two-path fading, calibrated noise, carrier and sample-clock error) before any UI existed.
- An automated test suite runs on every change, including full picture transfers through simulated fading and byte-exact file transfers through 15–20% burst loss. Integrations are tested against real in-process HTTP/UDP/TCP servers.
- The only OS interfaces are audio, serial and sockets — everything else (SQLite, image codecs, the UI toolkit) is compiled in.
Roadmap
Colour digital and the first live on-air sessions (done), then: wider field validation, internet relay (the same packets over TCP so stations bridge when the band is dead), an in-app log viewer, an LDPC coding-gain upgrade, and — for true EasyPal interop — a HamDRM modem. Short video clips are the final milestone.
More about Open Signal
Prefer to see it working?
The docs walk through every feature the engineering above powers — from the first install to sending your first error-corrected picture.