OpenPulseHF v0.3.0
v0.3.0 — 2026-06-29
Collects the work merged to main since v0.2.2. (This release's notes were corrected to list only post-v0.2.2 changes; earlier items now live under their proper v0.2.0–v0.2.2 sections in docs/releasenotes.md.)
Headline features
- Authenticated connections — the daemon now exchanges a signed Ed25519 handshake over the air on connect (
ConReq/ConAck, SAR-fragmented), verifying the peer's identity and Maidenhead grid. The verified grid is written to your ADIF logbook. Set the station signing key via[station] identity_key_path(auto-generated on first run). - ARDOP adaptive ARQ (opt-in) —
[ardop] enable_adaptive_arq = truelets the rate ladder adapt over the link and makes the hostARQBW(bandwidth cap) andARQTIMEOUT(idle disconnect) hints take effect. Off by default (fixed-mode, unchanged). - Generic serial CAT — drive a transceiver Hamlib/rigctld doesn't support via
[radio] cat_backend = "generic"with a serial port + rig-definition TOML (build--features generic-serial, Unix). - Automatic ADIF logbook (opt-in) — one record per contact; worked grid from the verified handshake or a
[logbook.peer_grids]map; runtimeSetLogbooktoggle. - Receiver auto-notch + auto-QSY — auto-notch productionized into the engine (multicarrier-aware, persistence, user controls); automatic QSY on a confirmed in-band interferer a notch can't remove.
- Operator panel rework — controls in a resizable right side-panel with a full-width waterfall and status below it; new AGC on/off toggle; full control-surface parity across daemon / CLI / panel.
- linksim — I/Q constellation views (symbol-spaced crisp dots) flanking a QR-branded band, regrouped Station B views with toggles, CE-SSB toggle, SNR plot, LDPC/Turbo/RS-Strong/Concatenated FEC modes, and a
--servemode so the operator panel attaches with no radio. - CLI —
openpulse daemon set-tx-attenuation <db> [--band]. - Fix — CE-SSB gated off for dense OFDM higher-order modes (8PSK+), which had a ~6 dB decode regression.
Full detail: docs/releasenotes.md and docs/dev/steering/changelog.md.
🤖 Generated with Claude Code