This article presents a technical framework for High Frequency (HF) point-to-point communication using Harris military-grade modems, covering the full stack from ionospheric propagation theory through to working implementation code in both Python and Fortran.
ⓘ Code Disclaimer
The Python and Fortran code in this article and the associated repository is independently developed reference code written to illustrate the technical concepts described. It is not derived from, based on, or representative of any actual software, systems, or source code used by the Hellenic Navy or any other military or government organisation. The operational context describes the author's background and area of expertise — the code itself was written independently for educational and reference purposes.
ⓘ Accuracy Disclaimer
Technical content in this article was researched and compiled with AI assistance under the direct supervision of the author. While every effort has been made to ensure accuracy, errors may still be present. If you spot an inaccuracy or have a correction, the author welcomes feedback — please reach out at github@it-solutionsusa.com or open an issue at github.com/ikonstas70/hf-communications.
The work draws on direct operational experience with HF telemetry systems during service as former Petty Officer Second Class (PO2) with the Hellenic Navy, where HF radio was the primary long-range communication method for missions where satellite and terrestrial infrastructure could not be guaranteed.
Three distinct software components are presented:
Served as a telemetry researcher supporting defence research and operational initiatives within the Hellenic Navy. Performed technical duties related to HF communications, signal monitoring, and data acquisition systems supporting Ministry of Defense operations and naval missions. HF radio was the primary long-range communication method for operations where satellite and terrestrial infrastructure could not be relied upon.
This manual and accompanying code are derived from that operational experience — specifically the use of Harris HF modems for point-to-point data communications over shortwave frequencies, and the signal processing techniques used to assess and optimise link quality.
HF radio remains one of the few globally resilient communication methods that operates entirely independently of satellites, internet, and cellular networks. With simple hardware and open-source software, secure long-distance messaging is achievable in remote operations, maritime environments, emergency scenarios, and situations where conventional infrastructure is unavailable or compromised.
The RF-5710A-MD001 is Harris Corporation's most advanced high-speed HF data modem — the primary hardware used in the HF telemetry operations documented in this manual. It combines adaptive equalization, convolutional error correction, multi-standard waveform compliance, and IP-readiness in a compact 1U rack-mount unit weighing 1.8 kg.
The RF-5710A auto-detects between MIL-STD-188-110B QAM waveforms and MIL-STD-188-110A serial tone waveforms, enabling fully adaptive data rates from 75 bps to 19,200 bps without manual intervention — a critical operational feature when link conditions change rapidly due to ionospheric variation.
| Parameter | Value |
|---|---|
| Size | 1.75H × 8.375W × 12D in (4.5H × 21.3W × 30.5D cm) |
| Weight | 4 lbs (1.8 kg) |
| Primary Power | 85–260 VAC, 47–440 Hz, <15 watts |
| Mounting | Desktop or rack mountable |
| Operating Temperature | 0°C to +50°C |
| Storage Temperature | –40°C to +80°C |
| Shock | MIL-STD-810E Method 516.4, Procedure 1 — 40G, 11ms |
| Vibration | MIL-STD-810E Method 514.4, Category 9, Shipboard |
| Standard | Mode | Data Rates |
|---|---|---|
| MIL-STD-188-110B App.C | Coded PSK/QAM | 3200, 4800, 6400, 8000, 9600 bps |
| MIL-STD-188-110B App.F | Coded PSK/QAM | 9600, 12800, 16000, 19200 bps |
| MIL-STD-188-110B App.B | Coded 39-Tone QDPSK | 75, 150, 200, 600, 1200, 2400 bps |
| MIL-STD-188-110A | Coded PSK Serial Tone | 75, 150, 300, 600, 1200, 2400, 4800 bps |
| STANAG 4539 | Uncoded QAM | 12800 bps |
| STANAG 4285 | Coded / Uncoded PSK | 75–3600 bps |
| STANAG 4529 | Coded / Uncoded PSK | 75–1800 bps |
| STANAG 4415 | Coded PSK | 75 bps — NATO Robust Waveform |
| STANAG 4481 | Coded PSK / FSK | 300 / 75 bps |
| STANAG 5066 Annex G | Coded PSK / Uncoded QAM | 3200–12800 bps |
| FSK | Variable shift | 50–600 bps |
| Interface | Specification |
|---|---|
| Data Input | EIA RS-422 balanced · EIA RS-423/RS-232D unbalanced · MIL-STD-188-114 |
| Synchronous | Selectable polarity, internal/external clock, 75–12,800 bps |
| Asynchronous | 50–19,200 bps · 1 or 2 stop bits · 5/6/7/8-bit character lengths |
| Audio Output | 600Ω balanced · –35 to +10 dBm without adjustment |
| Audio Input (Radio) | Balanced · –40 to +10 dBm adjustable into 600Ω |
| Keyline | Open collector to ground (45V, 50mA) + non-polarized contact closure (45V, 200mA) |
| Remote Control | EIA RS-485/RS-422/RS-232D · 50–115,200 bps · STANAG 5066 Annex E format |
| Mode | Center Freq | Shift | Rates |
|---|---|---|---|
| FSK-NS (Narrow Shift) | 2805 Hz | ±42.5 Hz | 50–600 bps |
| FSK-WS (Wide Shift) | 2000 Hz | ±42.5 Hz | 50–600 bps |
| FSK-A | 2000 Hz | ±85 Hz | 50–600 bps |
| FSK-V (Variable) | Programmable 50–2999 Hz | 1 Hz steps | 50–600 bps |
HF spans 3 to 30 MHz and propagates via skywave — signals reflect off the ionosphere's F2 layer, enabling intercontinental coverage from modest antenna installations.
| Band | Range | Primary Use |
|---|---|---|
| Lower HF | 3–6 MHz | Regional, night propagation, NVIS (Near Vertical Incidence Skywave) |
| Mid HF | 6–10 MHz | Medium range, reliable day and night |
| Upper HF | 10–15 MHz | Long range, daytime optimal — intercontinental standard |
| High HF | 15–20 MHz | Intercontinental at high solar activity |
| Top HF | 20–30 MHz | Short skip, troposcatter, sporadic-E |
| Component | Example | Role |
|---|---|---|
| HF Modem | Harris RF-5800H / RF-7800H / AN/PRC-150 | STANAG waveform generation, modulation/demodulation |
| Serial interface | USB-to-RS232 adapter | Connect modem to laptop or Raspberry Pi |
| Antenna | NVIS dipole or longwire | Signal radiation and reception |
| ATU | Any broadband ATU | Impedance matching |
| Software | hf_comm.py | Message composition, transmission, reception |
| Power | 12V battery / field supply | Portable operation |
| Parameter | Setting |
|---|---|
| Data mode | STANAG 4285 or MIL-STD-188-110A |
| Default baud rate | 2400 bps |
| Interface | RS-232 serial |
| Encryption (military) | Citadel / ANDVT |
| Encryption (civilian) | PGP/AES layer over plaintext serial |
The Python module provides a serial interface to Harris HF modems. It handles packet framing, checksum validation, text messaging, and ASCII-encoded image transfer — optimised for the narrow bandwidth constraints of HF data links.
pip install pyserial pillow
# No hardware? Run simulation mode
python3 hf_comm.py --simulate
# List serial ports
python3 hf_comm.py --list-ports
# Send text
python3 hf_comm.py --port /dev/ttyUSB0 --baud 2400 --send-text "SITREP ALPHA"
# Receive messages
python3 hf_comm.py --port /dev/ttyUSB0 --recv-text
# Send image (ASCII-encoded for HF bandwidth)
python3 hf_comm.py --port /dev/ttyUSB0 --send-image map.png
All transmissions use a structured binary packet with magic number synchronisation and single-byte checksum:
[MAGIC 4B] [TYPE 1B] [LENGTH 4B] [PAYLOAD N bytes] [CHECKSUM 1B]
Magic : 0xAA 0x55 0xAA 0x55 (sync marker)
Type : 0x01 TEXT | 0x02 IMAGE | 0x03 ACK | 0x04 NACK
Checksum : sum(payload bytes) mod 256
| SNR (dB) | Recommended Rate | Conditions |
|---|---|---|
| ≥ 20 dB | 4800 bps | Excellent — full rate |
| 12–20 dB | 2400 bps | Good — standard rate |
| 6–12 dB | 1200 bps | Marginal — reduce rate |
| < 6 dB | 300 bps or voice | Poor — minimum data |
Fortran was the standard language for signal processing, telemetry, and scientific computing in the 1990s defence environment. The Fortran module provides reference implementations of the core HF signal analysis functions used in link quality assessment and frequency planning.
gfortran -o hf_signal fortran/hf_signal.f90 -lm
./hf_signal
| Subroutine | Function |
|---|---|
demo_frequency_bands() | Tabulates the HF spectrum (3–30 MHz) with propagation characteristics per sub-band |
demo_signal_encode() | ASCII-to-bitstream encoding — shows character-level serial bit conversion as used in HF data links |
demo_snr_estimate() | Signal-to-Noise Ratio calculation from sampled waveform — drives adaptive baud rate selection |
demo_propagation() | MUF (Maximum Usable Frequency) estimate from F2 layer parameters and path geometry |
The Maximum Usable Frequency for a given path is calculated from the F2 layer critical frequency and the elevation angle:
! Fortran 90 — MUF from path geometry
elevation_angle = atan(350.0 / (distance_km / 2.0))
MUF = F0F2 / sin(elevation_angle)
! Operating frequency: 50–85% of MUF
f_recommended_low = MUF * 0.50
f_recommended_high = MUF * 0.85
Typical F2 critical frequency: 8 MHz daytime, 4.5 MHz nighttime. For a ~1,120 km path (Athens–Cairo), this gives a daytime MUF of ~14–16 MHz and nighttime MUF of ~8–9 MHz.
For hybrid operations bridging HF radio with internet-connected services:
[HF Modem] ←→ [RS-232 Serial] ←→ [Python Gateway] ←→ [Internet Relay]
The gateway node runs hf_comm.py in receive mode and forwards incoming payloads via TCP socket, SMTP, or WebSocket. This enables:
| Region | Authority | Licence Required |
|---|---|---|
| United States | FCC Part 97 | Amateur licence (Technician/General/Extra) |
| United Kingdom | Ofcom | Foundation / Intermediate / Full |
| European Union | EETT / national NRAs | Harmonised under CEPT/ECC |
| International maritime | ITU Radio Regulations | Maritime Mobile Service |
Note: STANAG military waveforms (4285, 4538, 5066) and encryption systems (Citadel, ANDVT) are not authorised for civilian use unless explicitly permitted by national authority. Always verify local regulations before transmitting.
A high-performance point-to-point communication framework using MPI Fortran 2008 (mpi_f08). Runs over MPI interconnect — shared memory, Ethernet, or InfiniBand. Conceptually, this represents the software-layer P2P protocol that can be bridged over a physical HF link via hf_comm.py.
mpif90 -o hp_p2p fortran/hp_p2p_mpi.f90
mpirun -np 2 ./hp_p2p
| Node | Role | Operations |
|---|---|---|
| Node 0 | Initiator | Sends text, transmits binary files, controls menu |
| Node 1 | Receiver | Responds to text, writes incoming file payload |
Four distinct MPI tags prevent message type cross-contamination over the interconnect:
| Tag | Direction | Content |
|---|---|---|
| 10 | Node 0 → Node 1 | Chat text (256 chars) |
| 20 | Node 1 → Node 0 | Chat text reply |
| 30 | Node 0 → Node 1 | File size metadata (integer) |
| 40 | Node 0 → Node 1 | Binary file payload (byte stream) |
use mpi_f08 — Fortran 2008 MPI interface provides compile-time type safety for MPI handles and procedures, catching type mismatches at compile time rather than runtimeaccess='stream' — bypasses Fortran's record-based file structure, reading raw bytes directly — required for binary formats (BMP, PBM, raw image arrays)allocate(byte_stream(file_size))) before receiving — no fixed buffer limitsSince the RF-5710A era, HF modem technology has advanced significantly across three dimensions: waveform intelligence, software-defined architecture, and automatic link management.
A strong example of where modern HF stands today is the RM10 L — a Wideband Software-Defined Modem (SDM) with integrated Automatic Link Establishment (ALE), produced by RapidM.
| Capability | Harris RF-5710A (1990s) | RM10 L — Modern SDM + ALE |
|---|---|---|
| Architecture | Fixed hardware DSP | Software-defined radio (SDR) — waveforms in firmware |
| Max data rate | 19,200 bps | Wideband — significantly higher throughput |
| Link establishment | Manual frequency selection | ALE — automatic scanning, probing, link setup |
| Frequency agility | Operator-selected presets | Automatic — scans and selects best available channel |
| Waveform updates | Field software upgrade | Over-the-air or remote firmware push |
| Integration | RS-232 serial, Ethernet option | Native IP, TCP/UDP over HF |
| Operator workload | High for link establishment — manual frequency selection, preset configuration; intra-link adaptation (baud rate, equalization, interference excision) was automated | Low — ALE handles channel selection and link establishment autonomously |
The RM10 is a wideband data modem for beyond line-of-sight (BLOS) data communications, operating in wideband channels exceeding 3 kHz in the HF/shortwave band. Used by navies, coast guards, and governmental organisations for strategic and maritime communications — including transcontinental, transoceanic, and satellite-denied environments.
| Parameter | RM10 Specification |
|---|---|
| Waveform standard | MIL-STD-188-110C Appendix D (110D) · STANAG 5069 |
| Bandwidth | 3 kHz to 24 kHz in 3 kHz increments |
| User data rates | 75 bps to 120 kbps |
| 3 kHz mode peak | 16,000 bps (256-QAM) — vs 9,600 bps (64-QAM) in 110B |
| ALE standard | MIL-STD-188-141D Appendices G and H (WALE / 4G ALE) |
| Legacy ALE | 3G and 2G ALE simultaneously scanned at 3G scan rate |
| V/UHF (option) | STANAG 4691 Annex B · 12,800–96,000 bps in 25 kHz |
| Product lifecycle | 10-year product · 20-year spares availability |
| Interface | Specification |
|---|---|
| DTE Port | EIA 530A Synchronous/Asynchronous · RS-232/RS-422 |
| Ethernet CTRL | Management and control LAN |
| Ethernet DATA | Raw data TCP/IP over HF |
| Ethernet AUX | Radio control and split-site ALE control |
| Radio Audio | Balanced 600Ω · RS-232 radio control |
| Remote / GPS | RS-232/RS-422 · external GPS (NMEA + 1 PPS) |
The WALE controller facilitates fast and deep BLOS link setup by dynamically adjusting bandwidth and frequency offset to minimise interference and optimise throughput. The RM10 manages protocols, addresses, and traffic types across ALE generations — enabling networks to transition from 2G to 4G ALE equipment without replacing hardware.
In NATO shore stations where transmitter and receiver sites are separated by tens of kilometres to reduce self-interference, the RM10 operates in split-site mode: transmitting modem co-located with the radio transmitter, receiving modem with the receiver. The two units exchange ALE protocol information cooperatively across 2G, 3G, and 4G generations. Compatible with the RI10 Split-Site Controller and RC10 Wideband STANAG 5066 ARQ/SNR Controller.
In littoral waters with high man-made noise from powerline modems, RapidM's proprietary WB-RDL waveforms operate well below the noise floor — handling SNR values in double-digit negatives. Particularly effective in high-latitude and polar regions where satellite communications are limited. The WB-RDL protocols are integrated with the WALE controller for link setup and dynamic bandwidth negotiation across forward and reverse traffic channels.
| Option | Includes |
|---|---|
| W1 — MIL-STD-188-110D / STANAG 5069 | 75 bps–120 kbps · 3–24 kHz bandwidth · automatically includes M1 and M2 |
| M1 — Narrowband LF/HF (SSB, ISB) | Up to 19,200 bps |
| M2 — Narrowband HF (SSB) | Up to 9,600 bps |
| 4G ALE — WALE | MIL-STD-188-141D App G/H · automatically includes 3G and 2G ALE |
The physics remain identical. Ionospheric propagation, MUF calculations, NVIS geometry, multipath fading — everything documented in this manual's Fortran signal processing routines applies equally to modern SDM hardware. The RF-5710A already automated intra-link adaptation — adaptive equalization, excision filtering, waveform detection, and baud rate selection all ran without operator involvement once a link was established. What remained manual was link establishment itself: selecting the operating frequency, choosing the channel preset, deciding when to abandon and retune. The RM10's ALE closes that remaining loop. It does not change the physics. The sky has not changed.
HF radio occupies a unique position in modern communications: it is the only long-range communication method that requires no satellites, no internet, no cellular towers, and no external infrastructure of any kind. A transmitter, an antenna, and a clear sky are sufficient to reach any point on earth. That combination — resilience, independence, and global reach — is why HF remains operationally relevant decades after the emergence of satellite and digital networks.
The framework presented here bridges two eras. The Fortran signal processing routines reflect the computational methods used in 1990s defence telemetry systems — where Fortran was the standard language for scientific and engineering computation, and where HF was the primary means of long-range data communication for naval operations. The Python serial interface and MPI framework bring the same capability into the modern open-source environment, making it accessible on a Raspberry Pi or a laptop with a $30 USB serial adapter.
The key technical contributions of this work are:
mpi_f08 type safety, stream-mode binary I/O, and dynamic buffer allocation — demonstrating the software protocol layer that sits above the physical radio linkFor emergency preparedness, maritime operations, remote expeditions, or anyone building infrastructure-independent communications — this framework provides an operational starting point. The hardware is standard. The software is open. The sky is the infrastructure.
Full source code, Fortran signal processing modules, MPI P2P framework, and technical manual available at: