MOSAIC Alpha

Amateur experimental · Alpha 0.1.0a7

MOSAIC

An asynchronous multi-user digital mode for shared HF and UHF passbands. Everyone sets the same dial frequency. Transmit when you have something to say. One receiver pulls the overlapping stations apart.

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.

HackRF waterfall showing a real Mosaic UHF transmission near 100 kilohertz above the 431.2 MHz centre frequency
Three-radio UHF observer waterfall. This is raw HackRF receive data rendered as a waterfall: time runs left to right and frequency offset runs bottom to top. The bright activity at +100 kHz is where the UHF Mosaic signal lives; the centre line is the receiver tuning frequency, not the MOSAIC channel.

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

CapabilityStatusEvidence
UHF multi-user on air (two independent transmitters)Proven12/12 logical stations recovered on radiated capture
Adaptive mixed-rate UHF shared channelProvenBasic/Fast/Turbo 3/3 CRC-valid, 100% measured occupancy, two TX radios + HackRF observer
UHF keyboard / procedural QSOProvenBidirectional lab QSO (bladeRF/HackRF ↔ B210) at 431.200 MHz
UHF continuous live demod keep-upProvenOperator path keeps up with continuous stream (offline keep-up check <1× wall)
Realtime operator consoleRF provenBrowser-controlled bidirectional QSO, live spectrum/waterfall, decoder state, and fail-closed TX
HF audio path (DAC → analogue → ADC)ProvenByte-exact single-user loopback through real converters
HF browser/KISS sound-card stationImplementation provenContinuous receive and fail-closed TX through the packaged operator console; on-air HF QSO not yet demonstrated
HF continuous realtime decodeProven~0.10× realtime, zero backlog on audio profile
HF ITU-R F.1487 single-userProvenSimulated channels to measured Eb/N0 cliff
HF multi-user under fadingSim improved4/4 and 6/6 Watterson seeds with congested stack; 8-user partial (sim only; not on-air HF)
HF bounded CW QRM + impulsive QRNBounded simFour users: robust 48/48 vs baseline 30/48 across clean, persistent, keyed, drifting, impulsive, and combined cells; zero false deliveries.
On-air HF contactNot yetNo 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.

MOSAIC operator console during an active bidirectional UHF QSO
Active QSO. VE6SLP-1 has decoded VA6GA-2 CRC-valid, opened a directed QSO, armed TX, and completed a browser-queued RF reply. The display is backed by live HackRF IQ, not synthetic demo data.
MOSAIC operator console after sending 73 and returning TX to inhibited
Closed safely. Two bladeRF bursts have completed, 73 closed the QSO, and TX is inhibited while receive remains live.

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

On-air MOSAIC UHF spectrogram
On-air UHF spectrogram (lab path).
HF ITU sensitivity waterfall
MOSAIC-HF audio profile sensitivity on ITU-R F.1487-style channels (simulated).
Multi-user recovery chart
Multi-user recovery: on-air UHF proof vs HF fade ceiling.
Three-radio mixed-rate RF occupancy, waterfalls, and SIC cancellation evidence
Basic, middle, and fastest MCS recovered 3/3 at 100% measured occupancy. The HF-family panel is waveform-over-UHF, not an HF propagation claim.
HF QRM and QRN recovery simulation evidence
Bounded HF front end: 48/48 versus 30/48 baseline under synthetic persistent, keyed, and drifting CW plus impulsive QRN. Simulation only.
MOSAIC adaptive-MCS operator console with link-rate and realtime receiver controls
Adaptive operator view: Auto/Basic/Fast/Turbo per-QSO control, promotion reason, bounded decode queue, and fail-closed TX.

Documentation

Everything linked below is inside this site tree — safe to host as a static URL.