Experimental HF protocol

sabir

Sabir carries data over a half-duplex HF audio channel. It uses coherent OFDM for data and noncoherent four-tone FSK for robust control and narrow data profiles.

Session negotiation, selective retransmission, turn-taking, disconnect and the host interface are implemented and exercised in simulation. Remote reception has been demonstrated for the narrow-tone beacon. Two-way live-radio session integration remains incomplete.

Channel occupancy

The nominal audio center is 1500 Hz for OFDM, its synchronization preamble and MFSK control. An even number of contiguous OFDM carriers places that center halfway between the middle two carriers.

The line shows the emitted burst's Welch power spectrum, relative to its peak; ticks mark carrier centers. The spectrum includes the preamble, windowing and clipping filter. A carrier allocation is not an occupied-power bandwidth or a guaranteed radio passband.

The 24-carrier allocation spans 1125 Hz and the 56-carrier allocation spans 2625 Hz. Both share the same center. Their outer carrier centers are half a spacing inside the allocation edges. Wide profiles require receiver passband qualification: an asymmetric low-cut filter can attenuate the lowest carriers, and a common center is not optimal for every radio filter. The transmit filter and its transition region are symmetric about 1500 Hz; spectral skirts and receiver filtering still affect usable bandwidth.

Link entry

CONNECT explicitly names source and destination. The initiator chooses a fresh nonzero 64-bit session identifier and preserves it across retries. Controls from a different session cannot acknowledge current data or terminate the current link.

CONNECT / CONNECT_ACK · 44 bytes
type + version · 2session · 8reserved + flags · 2capabilities · 4source · 12destination · 12reserved · 2CRC · 2

Each CONNECT or CONNECT_ACK contains a complete 32-bit capability bitmap. Bits 3–7 and 16–21 advertise exact DATA profiles; bits 24–28 advertise fast control, piggyback acknowledgements, loading, compression and beacons. A higher profile does not imply support for a lower one. Unknown bits are ignored. Current profiles need no additional capability exchange. Optional extension blocks support further profile IDs and typed metadata. Unknown optional extensions are ignored; unsupported critical extensions refuse the connection, and every declared extension must arrive before the offer takes effect.

With fast control enabled and no extensions, a wideband caller tries a fast CONNECT first. A compatible listener replies on the same waveform; timeout falls back to floor CONNECT with the same session ID. Narrow profiles and offers with extensions start on the floor. Ten AWGN trials per condition measured 1.921 s setup at +20 dB SNR in 3 kHz, or 21.362 s through fallback at −10 dB, asymmetric +20/−10 dB, or an erased first fast reply. Floor-only setup is 17.940 s with the same 250 ms modeled turnarounds. These are virtual-time results, excluding real audio and host scheduling.

Session identifiers isolate accidental stale traffic. Station identities and records are not authenticated.

Frame structure and synchronization

A DATA transmission consists of a protected control header followed by the described data body. OFDM bodies begin with a paired conjugate chirp preamble; the two correlation peaks separate timing and frequency-offset estimates.

protected DATA headerpaired preamblecoded data + scattered pilotsguard

Schematic, not to scale. Header and body each include their waveform's guards.

The standard OFDM grid uses 48 kHz sampling, a 1024-point FFT and 46.875 Hz carrier spacing. A 256-sample cyclic prefix gives 26.667 ms symbols. A 64-sample overlap window reduces discontinuities; its taper reduces the prefix interval available for multipath and timing error.

The standard pilot rule is (r − 2s) mod 6 = 0, where r is the relative carrier index and s the symbol index. Pilots visit the even-indexed carriers every three symbols; the receiver interpolates to the other carriers. The average pilot overhead is one sixth. The Doppler profile uses a denser lattice and a 512-point FFT; sparse profiles trade pilot density for data capacity.

Modulation and coding

OFDM uses Gray-mapped QPSK, 16-QAM, 64-QAM or explicitly negotiated 256-QAM with QC-LDPC coding. Control and narrow data use rate-½, constraint-length-12 tail-biting convolutional coding and CRC-screened list decoding.

Codewords carry a length and CRC, then undergo PN9 whitening and block interleaving. Lower OFDM profiles distribute each codeword across frequency. Higher profiles localize codewords to carrier groups so a frequency-selective failure can trigger a smaller retransmission.

The receiver estimates channel response from pilots and weights soft bit decisions by channel power and noise variance. Retransmissions add soft evidence only when session, generation, profile, codeword geometry and stream offset agree. Per-profile clipping trades peak-to-average power ratio against constellation distortion; filtering follows clipping.

MFSK data tones are 1359.375, 1453.125, 1546.875 and 1640.625 Hz. Seven-tone Costas synchronization blocks bracket runs of at most 56 data symbols. Frequency smoothing and burst amplitude ramps reduce spectral skirts. Repeat profiles increase airtime and combine received tone energies.

Profiles and airtime

The transmitter selects among the peer's accepted profiles using receiver SNR reports, successful frames and stalls. A gear order is a selection policy, not a universal robustness ranking: multipath and Doppler can change which waveform works best.

ProfilePayload / frameBody airtimeFloor-control cycleFast-control cycle

Calculated error-free rates use each profile's default full frame and the actual emitted sample count. A cycle includes the data body's preamble, pilots, FEC, codeword headers, padding and guards; one 44-byte DATA control; one 44-byte ACK; and two modeled 250 ms turnarounds. The numerator counts link payload bytes. These rates exclude connection setup, teardown, retries, host record framing and CPU scheduling. They are airtime bounds, not measured channel throughput.

Narrow profiles use floor control. A narrow receiver does not need to support the wider fast-control waveform. Fast control is negotiated separately.

Connectionless operation

Presence and DATAGRAM headers use 22-byte protected blocks. DATAGRAM explicitly names the data profile and geometry and binds the body with a 64-bit token. Object fragments carry a message identifier, length and SHA-256; optional XOR parity repairs one missing fragment.

The independent narrow-tone beacon has longer symbols for low-rate reporting. It is distinct from MFSK session control and from a bidirectional data exchange.

Simulation and validation

Deterministic tests cover framing, capability parsing, host messages, complete sessions, stale controls, lost acknowledgements, resegmentation and duplicate suppression. Channel simulations exercise AWGN, frequency offset and drift, multipath and Doppler. Each result depends on its payload, channel, SNR reference bandwidth and control policy.

Reproduce session goodput with python -m hfmodem.sabir.sim.release. The reported virtual duration includes setup, acknowledgements, modeled turnarounds and disconnect. Link payload bytes exclude host record overhead. Spectrum and airtime figures on this page are regenerated from the implementation by python docs/viz/build.py.

Observed results

Narrow-tone beacons transmitted on 40 m were decoded from public receivers 103 and 302 miles away. This demonstrates remote reception of that frame family. DATA profiles, connectionless objects and full sessions do not yet have live-radio exchange evidence.

Masked-carrier re-probing and live two-way audio integration remain incomplete. See implementation evidence and the protocol specification.