OpenPulseHF v0.4.0
v0.4.0 — 2026-07-12
Collects the work merged to main since v0.3.0.
Headline features
- JS8 station discovery (new, opt-in) — when idle, your station can tune to the band's JS8 calling frequency and discover other OpenPulse stations there, using a native JS8 waveform (8-GFSK, 79 symbols, LDPC(174,87)) that interoperates with JS8Call — no separate JS8Call install. It marks itself with an in-band
@OPULSEcapability hint and lists what it hears (openpulse daemon stations/peers, or a new Discovery tab in the panel). Enable under[discovery]. Off by default, receive-only until you opt into transmitting. - JS8 beacon + rendezvous (new, opt-in transmit) — with a callsign and
[discovery] mode = "beacon"/"full", the station announces itself (heartbeat +@OPULSEhint), and infullmode can negotiate a working frequency with a discovered peer over JS8 (theRendezvousWithcontrol command), QSY both stations there, and start an authenticated OpenPulse session. Every TX path is gated behind an explicit mode + your callsign + a ±2 s clock-sync check; automatic-control behaviour is documented per FCC §97.221 — you remain the control operator. - Direct file transfer (new, opt-in) — send a file to a connected peer over the air with an offer/accept prompt, progress, and optional size-gated auto-accept. Every transfer carries an inline signed
TransferManifest+ SHA-256, verified against the peer's identity key on receipt — a tampered or wrong-sender file is quarantined and flagged UNVERIFIED (verification VarAC's file transfer lacks). Large files split into blocks and resume after a dropped session. Enable under[file_transfer]; drive it from the panel Files tab oropenpulse daemon send-file/files. - Faster, more reliable links — the adaptive rate ladder now climbs into the high-throughput dense modes (it was capped mid-ladder by a waveform-blind signal-quality estimator), the HF ladder switched to OFDM for better performance on fading paths, and repeated retransmissions now combine their soft information instead of retrying cold. Plus a batch of DSP-correctness and channel-model measurement-fidelity fixes from the Phase 11 signal-chain audit.
Full detail: docs/releasenotes.md and docs/dev/project/changelog.md.
🤖 Generated with Claude Code