H-Mode: An Open HF Digital Mode That Turns Errors Into Ionospheric Measurements

H-Mode: An Open HF Digital Mode That Turns Errors Into Ionospheric Measurements

Every digital mode in amateur radio is designed to deliver a message. FT8, Olivia, PSK31, VARA, JS8Call, WSPR: they all share one goal, get the bits through. The better the mode, the more thoroughly it corrects, interleaves, and hides what the ionosphere did to your signal on the way.

A new open-source project from Luke McConoughey N2OSW, announced on r/amateurradio in late July 2026, takes the opposite approach. H-Mode is an HF digital waveform that deliberately omits payload forward error correction so that ionospheric substitutions, erasures, and insertions can be measured character by character rather than corrected away. It is the physical layer for HFEdge, a system that turns an ordinary amateur HF station into an ionospheric research instrument.

The tagline says it all: every error is a measurement.

Last updated: July 2026.


The Problem H-Mode Solves

The ionosphere decides whether your next contact arrives, arrives garbled, or never arrives at all. It changes minute by minute, and almost nobody is measuring how at the resolution that matters.

A DPS-4D-class ionosonde, the professional instrument for this job, costs $250,000 to $500,000 installed. There are tens of them on Earth. GNSS scintillation receivers ($10,000 to $20,000 each) integrate along a satellite line of sight at L-band and never see your HF path. WSPR, the closest amateur tool, collapses a two-minute transmission into a single SNR figure. PSK Reporter gives you a decode or it does not.

What is missing is per-character resolution of what the channel actually did. Which characters survived intact? Which flipped? Which vanished entirely? When did the fades happen, how long did they last, and what was the error pattern? That information is exactly what conventional FEC strips out of the signal before you ever see it.

H-Mode keeps it. The receiver knows what should have arrived (the transmit stream is regenerable from a public seed), compares it to what actually arrived, and scores every character. The pattern of errors is the ionosphere’s signature.


How It Works: The Data-Aided Technique

H-Mode’s distinguishing move is what N2OSW calls the data-aided technique. The sequence:

  1. Acquisition. A preamble, an 18-bit CRC-protected header, and in-band configuration and loading-map descriptors let the receiver learn the exact waveform, grid, and bit-loading over the air.
  2. Warmup. Dedicated pilots run for a few data units (default 4) while the receiver locks on.
  3. Steady state. Pilot density falls to zero. The receiver regenerates the expected stream from a public PCG64 seed and uses the payload itself as the reference, driving continuous channel estimation, residual Doppler tracking, and iterative MMSE equalisation.

The key insight: a shared PCG64 seed lets any receiver regenerate the expected Base36 character stream in full. After warmup, pilot overhead is zero because the payload is the reference. Classical waveforms force you to choose between low pilot overhead and channel observability. H-Mode keeps both.

There is no payload FEC, and that is deliberate. Every decoded character carries a confidence value, six log-likelihood ratios, and per-resource channel state. Correction would erase the data.

The soft metrics contract is explicit:

SoftChar { c, confidence, llr[6], ofdm_index }
ResourceCsi { snr_lin, magnitude, phase }

Confidence feeds the scoring network without schema changes. The physical layer’s observables flow straight into the research dataset.


Five Waveform Families

H-Mode v2 (standard H-Mode TS 2.1, dated 2026-07-25) ships five selectable waveforms sharing one framing, acquisition, in-band signaling, and soft-output architecture:

OTFS (primary). Orthogonal Time Frequency Space. Default grid M=8 x N=64, CP=8, 576 samples per 72 ms frame. Places data on a delay-Doppler grid in the same two dimensions the ionosphere acts in, so dispersion becomes a few clean, measurable taps. 160 core resources at defaults, 53 characters per frame, approximately 736 cps before overhead. The real-audio path places resources on an M x N time-frequency grid as Hermitian OFDM columns; the complex-IQ path runs a true ISFFT delay-Doppler grid with Heisenberg synthesis.

AFDM (alternate). Affine Frequency Division Multiplexing. DAFT transform, N=128, CP=16, with runtime chirp parameters c1 and c2. A chirp-parameterised alternative for strongly doubly selective paths.

OFDM classic. FFT N=128, CP=16, 8 kHz sample rate. Bit-exact H-MODE-1.0 compatibility. 9 QPSK data bins, 4 BPSK pilots, 2 PAPR-reserved. Approximately 166.7 cps throughput, 55.6 cps in robust mode.

OFDM generalized. Configurable nfft and ncp with deterministic pilot, guard, and data plans. The production single-carrier-per-unit waveform family.

Hybrid (layered). OTFS QPSK core with a 16-QAM enhancement overlay. The bulletproof core survives deep fades; the capacity layer engages when the channel allows. The highest-rate layered waveform.

Runtime JSON profiles (classic, robust, balanced, high_speed) retune the modem without recompilation, and a frozen on-air registry negotiates frozen profiles by ID and fingerprint so two stations can interoperate.

Throughput targets of approximately 300 to 500 characters per second in favourable SNR (roughly 8 to 12 times Olivia-class rates) are supported by simulation and loopback testing, including Watterson-channel tests. On-air figures will be published as network data accumulates. The honest status section of the spec is explicit about this: these are design targets, not measured on-air performance yet.


Four Observation Profiles

A single measurement method scales from a ten-second band check to a night-long channel study. All use 64-character frames with ==Fxxxx== markers. Frame F0000 identifies the station (callsign, grid, profile, mode, CRC32) and is excluded from scoring.

  • PING (720 characters). Link check or band probe. Seconds on the air. The right first observation on any path.
  • SHORT (3,200 characters). Path characterisation. Sound error statistics on modest airtime; reveals fades and burst structure.
  • STANDARD (64,000 characters). Disturbance morphology. Resolves travelling ionospheric disturbance (TID) period structure. The campaign workhorse.
  • DEEP (1,000,000 characters). Research statistics. Long-duration collection; converges the full 36 x 36 confusion matrix.

What H-Mode Can See

Because the transmit stream is shared over the internet, the pattern of what actually arrives is the disturbance’s signature. The HFEdge project identifies six classes of ionospheric phenomenon that per-character scoring can resolve:

  1. Travelling ionospheric disturbances (TIDs). Plasma waves set off by geomagnetic storms, large thunderstorm systems, sometimes eruptions. Per-character scoring registers the rhythm as a wave passes; spaced receivers can work out its speed and bearing.
  2. Sporadic E. Dense, short-lived ionisation near 100 km that can throw a signal a continent away or wall off a path outright. Interleaved good and bad segments show how thick and how patchy a given cloud is.
  3. Spread F and scintillation. Turbulent plasma bubbles, mostly equatorial and polar, that make signals flutter and smear. Bursts of scrambled and erased characters, precisely timed, mark the turbulence.
  4. D-region absorption. Flare X-rays can tip the dayside lower ionosphere from reflecting to absorbing within minutes. Erasure rates rising in step across a continent make a clean, distributed flare detector.
  5. Grey-line enhancement. Twilight opens brief, low-absorption corridors along the terminator. Per-character timelines catch the window opening and closing to the second.
  6. Geomagnetic storms. Auroral absorption, depressed frequencies, unexpected openings that run for days. A network of stations turns every storm into a coordinated, multi-continent experiment.

The running prototype accepts reception logs or compact diff-only uploads over a documented REST API and returns scored, geolocated, exportable observations. Its anomaly classifiers (d-region-absorption, sporadic-e, epb-spread-f, tid) are physically reasoned but not yet field-validated. That validation sits on the public roadmap.


How H-Mode Compares

The project’s comparison table is blunt about where H-Mode fits. It is not a replacement for existing modes. It is a missing piece.

  • FT8 is great at weak-signal QSOs at -20 dB. LDPC(174,87), 50 Hz, 12.6 s. One SNR scalar per decode. The channel’s structure is corrected away.
  • WSPR is great at global beacons at -28 dB. 4-FSK, 5.9 Hz, 110.6 s. One SNR number every two minutes. Beautiful map, zero detail.
  • JS8Call is great at keyboard chat in poor conditions. FT8-derived, 50 Hz. Delivery-oriented; FEC removes the error patterns.
  • Olivia is the tank of text modes. 8 to 32 tone MFSK plus FEC. Heavy correction hides exactly the distortions scientists want.
  • VARA is great at fast email over radio. Proprietary, up to 2.3 kHz. Closed source; ARQ retransmission masks the raw channel.
  • H-Mode is the path itself as the measurement. OTFS, AFDM, OFDM, no payload FEC, up to 2.8 kHz. Every character scored, plus confidence, LLRs, and per-resource channel state.

As the project puts it: H-Mode is to WSPR what a spectrum analyser is to a signal-strength meter. Same antenna, same sky, categorically richer measurement.


The VARA Question

In the Reddit thread, N2OSW was asked how H-Mode could replace VARA without FEC. His answer was candid and interesting:

  • Vara uses OFDM. For H-Mode to beat Vara, OTFS should carry the day. In a pinch, AFDM should still provide an improvement.
  • H-Mode is approximately 55.56 baud versus Vara’s average of 37.5. The symbol rate of 18 ms versus Vara’s 26.7 ms is a 33% improvement.
  • FEC will need to be implemented either in the payload or as part of the frame header. A short-block LDPC with a CRC should vastly improve FEC performance over current designs. This is planned for the H-Mode v3 release.
  • The initial v2 design is intended to augment WSPR with not just “can you hear me now?” but error rates over the entire transmission duration. H-Mode with HFEdge tells you exactly which characters survived, which flipped, and which vanished.

The roadmap framing is memorable: think of v2 as UDP and v3 as TCP.


Openness and FCC Compliance

Amateur radio forbids secret codes. HFEdge treats that rule as a design principle rather than a constraint. The waveform specification, stream protocol, test vectors, configuration schema, and scoring mathematics are all public. The seeded payload looks like noise on a waterfall, but it is not a cipher: the seed travels inside the transmission, and any receiver can regenerate the stream and re-score it independently.

  • FCC Part 97.113(a)(4): No obscured meaning. Full regeneration algorithm published; no encryption anywhere in the stack.
  • FCC Part 97.305: Occupied bandwidth up to 2.8 kHz per bonded channel; windowing enforces SSB emission masks.
  • FCC Part 97.119: Frame F0000 carries callsign and six-character grid on every session. Mode ID: H-MODE.

The normative source is the as-built standard, H-Mode TS 2.1 (PDF), which describes the modem as it exists in the HFEdge source tree, not a wish list. The classic carrier plan spans 2,625 Hz between its lowest and highest active carrier centres; actual occupied bandwidth depends on filtering, drive level, hardware, and band settings.


How to Get Involved

Three paths, depending on what hardware you have:

  • You have a transceiver (~15 min). Connect over USB CAT or audio, the same hookup as FT8. Native support for Icom, Yaesu, Kenwood, Elecraft, FlexRadio, and Hamlib. Start with a 720-character PING and watch your first scorecard.
  • You have an SDR dongle (~10 min). RTL-SDR, Airspy, SDRplay, HackRF, LimeSDR, USRP via SoapySDR. Run receive-only. No license needed to listen, and your reception reports still feed the science.
  • You have only a laptop (~5 min). Run the built-in simulated device or hfedge_cli --loopback. A full TX to DSP to RX scoring loop with no hardware. Learn the protocol end-to-end.

The codebase is C++20 with open specs and test vectors. The project invites developers to write a decoder in an afternoon and verify it character for character.


Where It Came From

In the Reddit thread, N2OSW explained the project’s origin with disarming honesty. He got laid off early in 2026 and needed to feel the loving embrace of a passion project. During the day he was playing with Amazon Braket and created a quantum random number generator. He had been curious about ionospheric anomalies related to MH370 and WSPR. He got his Level 2 high pressure rocket certification on a large (J motor) scale model of a Black Brant II sounding rocket. The final curiosity was to see what could be done in HF after the FCC changed the symbol limit to a bandwidth of 2.8 kHz.

This project combines all of that. As he put it, it is just two questions: what if we could see atmospheric anomalies like a weather map, and who else wants to find the limits of HF data transmission?


Honest Assessment

This is a project worth watching, with some caveats worth stating plainly.

The concept is genuinely novel. The idea of a digital mode designed not to deliver messages but to measure the channel, and to do it with zero pilot overhead by using a shared PRNG seed as the reference, is elegant. The choice of OTFS as the primary waveform is well-justified by the literature on HF OTFS evaluations from 2020 to 2024. The soft metrics contract, the four observation profiles, and the network intelligence layer are all well thought out.

The caveats are the ones the project states itself. Throughput figures of 300 to 500 cps are simulation and loopback targets, not on-air measurements. The anomaly classifiers are physically reasoned hypotheses, not field-validated results. The high_speed profile has known end-to-end issues with selective-mapping PAPR and adaptive waterfilling. The balanced profile has a mid-stream map-update boundary bug. The frozen hybrid_v1 registry profile is the interoperable variant. Detection signatures need validation against co-located ionosondes, GNSS TEC maps, flare lists, Es climatology, and TID catalogues.

This is a pre-launch project. The source code is not yet on GitHub (N2OSW says it will be posted once the desktop app polish is complete). The website at n2osw.com went live on July 27, 2026. The technical specification PDF (H-Mode TS 2.1) is available from the site.

If you want to be an early tester, an OTA partner, or a contributor to the spec, now is the time to reach out. The project is explicitly asking for feedback on design choices, the advanced waveforms, soft metrics, and practical considerations before the full as-built specification is published.


Sources and Further Reading

Post Comment