Try the complete operator flow without a radio: install the wheel, run mosaic-modem demo, then use the simulated station to call CQ, open a QSO, exchange text, send 73, and close. Practice mode cannot transmit RF.
What the receiver sees
Here is a real 2 MHz UHF receive capture from the three-radio bench. The HackRF listens at 431.200 MHz; MOSAIC is placed about 100 kHz above the centre line. At three seconds, the bright occupied strip is a MOSAIC transmission while other activity overlaps in the same receiver capture.
Why MOSAIC
Most digital modes assume one transmitter at a time, or a scheduler that coordinates the rest. MOSAIC is built for the opposite case: uncoordinated stations sharing one bandpass, the way a real pile-up or a busy calling frequency actually behaves.
- Shared channelNo time slots. No master station. Access signatures separate users.
- CRC-gated cancellationA receiver only subtracts a station after a CRC-valid decode. Mistakes do not poison the residual.
- Two band familiesMOSAIC-UHF for wide SDR channels; MOSAIC-HF for ordinary 2.8 kHz SSB audio paths.
Alpha status at a glance
| Capability | Status | Evidence |
|---|---|---|
| UHF multi-user on air (two independent transmitters) | Proven | 12/12 logical stations recovered on radiated capture |
| Adaptive mixed-rate UHF shared channel | Proven | Basic/Fast/Turbo 3/3 CRC-valid, 100% measured occupancy, two TX radios + HackRF observer |
| UHF keyboard / procedural QSO | Proven | Bidirectional lab QSO (bladeRF/HackRF ↔ B210) at 431.200 MHz |
| UHF continuous live demod keep-up | Proven | Operator path keeps up with continuous stream (offline keep-up check <1× wall) |
| Realtime operator console | RF proven | Browser-controlled bidirectional QSO, live spectrum/waterfall, decoder state, and fail-closed TX |
| HF audio path (DAC → analogue → ADC) | Proven | Byte-exact single-user loopback through real converters |
| HF browser/KISS sound-card station | Implementation proven | Continuous receive and fail-closed TX through the packaged operator console; on-air HF QSO not yet demonstrated |
| HF continuous realtime decode | Proven | ~0.10× realtime, zero backlog on audio profile |
| HF ITU-R F.1487 single-user | Proven | Simulated channels to measured Eb/N0 cliff |
| HF multi-user under fading | Sim improved | 4/4 and 6/6 Watterson seeds with congested stack; 8-user partial (sim only; not on-air HF) |
| HF bounded CW QRM + impulsive QRN | Bounded sim | Four users: robust 48/48 vs baseline 30/48 across clean, persistent, keyed, drifting, impulsive, and combined cells; zero false deliveries. |
| On-air HF contact | Not yet | No HF rig path closed on this programme |
Simulation and UHF lab results do not establish ionospheric HF performance. Licensed operators remain responsible for emissions. Packet airtime (not UI latency) sets the QSO floor: ~2.6 s on UHF, ~40 s on HF.
Operate the radio, not a log file
The Linux-first console turns the existing modem service into a guided contact workspace. Receive is continuous; transmission remains inhibited until the operator explicitly arms it. Decoded callsigns become selectable contacts, and the four-step flow keeps CQ, directed exchange, 73, and local close visible without hiding the underlying receiver state.
Measured 2026-08-14 at 431.200 MHz: VA6GA-2 on a B210 transmitted the inbound call; VE6SLP-1 decoded it through a HackRF, replied from the browser through a bladeRF, and the B210 decoded that reply CRC-valid. This is a UHF lab antenna-path result, not an on-air HF claim.
Measured snapshots
Documentation
Everything linked below is inside this site tree — safe to host as a static URL.