PACTOR
shrikeMail sent over PACTOR-3 and received over PACTOR-1
Confirmed outbound delivery through WS8EOC over PACTOR-3. Four messages received through KB5LZK over PACTOR-1, with a normal session close.
W9SSJ / hfmodem
hfmodem supports PACTOR, VARA, ARDOP and experimental sabir modes with shared audio, rig control and host connections.
Run a recordingModes
Interactive diagrams describe carrier placement, frame structure, coding and link control.
Carrier placement, timing and mode parameters
PACTOR-1, PACTOR-2 and PACTOR-3 link entry, waveforms and control signals
02 / kestrelConnection frames, modulation and bandwidth selection
03 / besraFrame types, error correction and acknowledged transfers
04 / sabirAn experimental mode using OFDM and adaptive coding; its protocol and wire format are subject to change.
Results
Evidence records document radio transfers, remote reception and codec checks.
Mail sent over PACTOR-3 and received over PACTOR-1
Confirmed outbound delivery through WS8EOC over PACTOR-3. Four messages received through KB5LZK over PACTOR-1, with a normal session close.
Mail received and delivered
Mail reception through K0SI at BW2300 and confirmed outbound delivery through KB8AY. Multiple deliveries confirmed by the operator. The KB8AY delivery used a registered third-party client SID.
Mail sent and received
hfmodem received messages through WW2MI and W6IDS. An outbound message through WW2MI reached its destination. Codec checks against ardopcf cover all 59 frame types in both directions.
Beacon decoded at remote receivers
The hfmodem decoder recovered 40 m beacons from recordings at public receivers 103 and 302 miles away. Two transmitted gears decoded at both receivers.
Run
Install with Python 3.11 or later. The replay example runs a station from an audio file with transmission disabled.
git clone https://github.com/sstjohn/hfmodem
cd hfmodem
python -m venv .venv
./.venv/bin/pip install -e packages/hfhost -e "packages/hfmodem[dev]" -e packages/creance
./.venv/bin/python -m pytest -rs
./.venv/bin/hfmodem station examples/replay.tomlSome tests require a local corpus or an ardopcf binary; -rs lists skipped tests. This example checks station startup: it feeds an ARDOP recording to a VARA lane.