Skip to content
Open Signal
OPXEngineering

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.

OFDM · 2.4 kHzSoft-decision FECFountain-coded pictures

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.