hfmodem · four modes

Mode comparison

hfmodem provides PACTOR, VARA, ARDOP and sabir modes. Their waveforms, coding and link control fit different data rates into HF audio channels.

PACTOR · implemented by shrike VARA · implemented by kestrel ARDOP · implemented by besra sabir · protocol and implementation together
off-air · 0 – 3000 Hz
0 Hz → 3 kHz
time ↓
both panels are received audio, not a rendering 7103.5 kHz · KE8LVA · 2026-08-03 and 2026-08-05

Recorded ARDOP frames from KE8LVA: a two-carrier data frame carrying a gateway greeting and a four-tone connection acknowledgement. Captions identify measured audio and calculated geometry.

IMPLEMENTATIONS

Mode implementations

The mode implementations share hfmodem’s audio, station and host infrastructure.

PACTOR

shrike

Shrike provides PACTOR-1 link entry and data exchange, with PACTOR-2/3 waveform and control implementations. ITU-R M.1798 describes the PACTOR-3 carrier grid and timing.

spec
ITU-R M.1798
rungs

VARA

kestrel

Kestrel provides VARA link entry, coded data frames and session control.

spec
implementation tables
rungs

ARDOP

besra

Besra implements ARDOP framing, modulation and link control. Codec tests cross-decode with ardopcf.

spec
published + source
frames

sabir

experimental mode

Sabir is experimental. Its OFDM data, MFSK control and ARQ are implemented, with bidirectional session evidence in simulation. Its protocol and wire format may change.

spec
experimental
rungs

Coding choices

PACTOR-2/3 use convolutional coding, VARA uses turbo coding, ARDOP uses Reed–Solomon blocks, and sabir uses QC-LDPC data codes and convolutional control coding.

OCCUPANCY

Bandwidth and carrier placement

The received-audio view shows measured power spectra. Carrier-placement views show audio frequencies from the implementation tables.

PACTOR-III ARDOP sabir Carrier positions and measured spectra have separate views

Channel occupancy

PACTOR-3 uses up to eighteen independently pulse-shaped carriers. Speed levels select the carrier set, differential modulation and code rate.

ARDOP PSK/QAM frames use one, two, four or eight carriers centered on 1500 Hz. Control frames use four tone choices; the bandwidth in a connection acknowledgement names the negotiated session.

Sabir uses 24 or 56 OFDM carriers by gear, with a separate four-tone control waveform.

VARA’s rate table appears below. This carrier chart covers the PACTOR-3, ARDOP and sabir frequency tables.

THE SYMBOL

Recorded ARDOP constellation

The ARDOP constellation contains 396 differential phase measurements from a received gateway frame. The ideal grid provides a phase reference.

phase error, rms
worst symbol
frame quality, of 100
payload bytes recovered

Decoder quality measured

Decoder quality: . The phase score is 100 − 200 × mean grid error ÷ phase step. Uniform random phase averages 50 on this scale. Payload integrity is established separately by error correction and CRC.

Differential phase counts: . These samples carry scrambled gateway text.

ERROR CORRECTION

Modulation and coding

The coding schemes differ in block size, redundancy and the information used by the decoder.

convolutional

PACTOR-III · punctured

PACTOR-3 uses a rate-½ mother code with puncturing at higher speed levels and soft-decision Viterbi decoding. The constraint length depends on the speed level.

turbo

VARA · two RSC · rate ½

Two recursive convolutional encoders and an interleaver form the turbo code. Decoding exchanges soft information between the constituent decoders.

Reed–Solomon

ARDOP · per sub-block

Byte-oriented block codes protect each ARDOP carrier block. Parity length depends on the frame type.

QC-LDPC

sabir · four rates

Sabir uses a sparse parity-check graph with normalized min-sum decoding. Each OFDM gear selects a code rate; some gears repeat a codeword.

PACTOR-3 pulse shape derived

Shrike evaluates a 31-tap root-raised-cosine pulse with roll-off ⅔ for its PACTOR-3 transmit and matched filters.

The plot is calculated from the same pulse function used by the modulator.

TAKING TURNS

Data, replies and turnaround time

The link layers acknowledge data blocks and coordinate the sending turn. PACTOR uses fixed cycles; VARA and ARDOP use burst exchanges. Sabir’s selective acknowledgements and turn control are tested in simulation.

the calling station's packet the answering station's control signal the residual both ends share

Turnaround budget derived

PACTOR-1 divides its 1.25 s cycle into a data packet, a control signal and 170 ms for switching and propagation. PACTOR-3 uses the same short-cycle duration with a different packet layout.

If the peer uses d of the 170 ms turnaround budget before answering, the remaining local interval is 170 ms − d.

Receiver muting measured

Radio recovery, transmission padding and the receive guard constrain turnaround. The station harness measures transmit-to-receive recovery before a session.

Transmit padding and a 20 ms guard set a lower bound on local reply timing.

PACTOR

PACTOR-III · cycle-locked

Packets and control signals occupy fixed cycle slots. Memory ARQ combines repeated copies of failed blocks.

VARA

VARA · stop-and-wait

A data burst is followed by turnaround and a short acknowledgement. The exchange duration depends on the frame and reply.

ARDOP

ARDOP · leader-anchored

ARDOP frames begin with a leader. The recorded connection acknowledgement reports of leader reception.

sabir

sabir · HARQ + selective ack

A per-codeword acknowledgement bitmap selects the blocks to retransmit. The receiver soft-combines repeated copies.

MODE PARAMETERS

Mode parameters

The implementation tables define modulation and coding at each speed level. Higher levels increase the available data rate.

Rate definitions published

The selected chart plots PACTOR-3 net bit/s, VARA bytes per frame, ARDOP payload bit/s during the coded body or sabir carriers per burst. The axes have different units.

These parameter tables describe mode capacity and geometry. They do not measure link throughput or propagation range.

PACTOR-3 speed levels
SLtonescodenet b/screst dB
VARA wideband levels
LevelRecordBits/cellFrame bytes
ARDOP data frames
framecarriersmodbaudpayloadparityb/s
sabir gears
rungcarriersconstellationband Hz
EVIDENCE

Observed results

The decoded payload below is a received ARDOP gateway frame, with its mode, channel and source recording identified.

One frame, off the air measured

The frame contains bytes of gateway greeting in a 500 Hz four-phase waveform recorded on 7103.5 kHz. Control characters are displayed as escapes.

This record establishes a decoded frame. Completed mail exchanges have separate evidence below.

The repository includes this audio and tests that decode its protected payload.

Demonstrated results

PACTORConfirmed outbound mail delivery through WS8EOC over PACTOR-3. Four messages received through KB5LZK over PACTOR-1, with a normal session close.
VARAMail reception through K0SI at BW2300 and confirmed outbound delivery through KB8AY. Multiple deliveries confirmed by the operator. The documented sessions used a third-party SID.
ARDOPMail fetched and sent through WW2MI, with outbound delivery confirmed. Three messages fetched through W6IDS. Codec tests cross-decode all 59 frame types against ardopcf.
sabirPresence beacons decoded from public receivers 103 and 302 miles away on 40 m. ARQ, turn-taking and hosted bidirectional transfers are exercised in simulation. The protocol and wire format remain experimental.

Session status

See implementation evidence for recording, bench, simulation and RF conditions.