Who Built This

Developer Background

Phoenix Nest Modem was built by a software developer with 35 years of programming experience and 15+ years of hands-on HF operations in the Military Auxiliary Radio System (MARS).

This isn't a theoretical implementation of a spec document — it's built by someone who has actually passed military-affiliate HF traffic and knows what the waveform needs to do in real-world conditions.

Credentials

Navy MARS NNN0VOC
Army MARS Member since 2009
Amateur Radio KY4OLB
MARS Service 15+ years
Software Development 35 years

Why free? MARS exists to provide emergency communications when commercial infrastructure fails. The amateur and emergency comms community needs access to interoperable, standards-compliant tools — not paywalls. This is my contribution to that mission.

MIL-STD-188-110A APPENDIX C

Phoenix Nest HF Modem

v1.2.0 • Released 08 DEC 2025 • Windows x64

Software implementation of the MIL-STD-188-110A Appendix C waveform. Free for amateur, emergency, marine, and personal use. Interoperable with compliant military and commercial systems.

75–4800 bps Data Rates
8PSK Modulation
2400 Symbol Rate
1800 Hz Center Freq
≤3 kHz Bandwidth

Waveform Specifications

MODULATION

  • Type8PSK
  • Symbol Rate2400 baud
  • Bits/Symbol3
  • Raw Rate7200 bps
  • Carrier1800 Hz
  • Bandwidth2400–3000 Hz

FORWARD ERROR CORRECTION

  • CodingConvolutional
  • Constraint LengthK=7
  • Code Rate1/2
  • PolynomialsG1=171, G2=133
  • DecoderSoft Viterbi
  • Coding Gain~5 dB

INTERLEAVING

  • Short0.6 sec
  • Long4.8 sec
  • TypeBlock
  • Rows (Short)40
  • Rows (Long)320
  • Columns36

SYNCHRONIZATION

  • PreambleDoppler/Sync
  • Known Data16 symbols/frame
  • Sync PatternPer MIL-STD
  • Acquisition<2 sec typ.
  • Doppler Tol.±37.5 Hz
  • Timing Tol.±100 ppm

Data Modes

MODE DATA RATE BPS/SYMBOL REPEAT Eb/N0 REQ SHORT INTLV LONG INTLV RECOMMENDED USE
1 75 bps 0.0625 16× −3 dB Extreme conditions, maximum reliability
2 150 bps 0.125 0 dB Poor conditions, short messages
3 300 bps 0.25 3 dB General purpose, most common
4 600 bps 0.5 6 dB Fair conditions, file transfer
5 1200 bps 1 9 dB Good conditions, larger files
6 2400 bps 2 12 dB Very good conditions
7 4800 bps 4 15 dB Excellent conditions, max throughput

Note: Eb/N0 requirements are approximate for BER < 10⁻³ in AWGN. Real HF channels with fading may require 3–10 dB additional margin. Long interleave provides ~3 dB improvement in fading channels.

Frame Structure

SYNC
287 sym
DATA + KNOWN
256 sym
DATA + KNOWN
256 sym
...
EOM
20 sym
FLUSH
K-1
Sync/Preamble
Data + Known Symbols
End of Message
Encoder Flush

Preamble (287 symbols)

Doppler estimation and symbol timing acquisition. Contains alternating tones for coarse frequency offset detection followed by sync pattern for frame alignment.

Data Frame (256 symbols)

240 data symbols + 16 known symbols for channel estimation. Known symbols enable adaptive equalization and coherent demodulation in fading channels.

TCP/IP Integration (MS-DMT Protocol)

Data Port: TCP 4998

Raw data transfer. Send bytes to transmit, receive decoded bytes. Buffered operation with flow control.

telnet localhost 4998

Control Port: TCP 4999

Command interface for modem control. Text-based protocol, CR/LF terminated.

telnet localhost 4999

Control Commands

COMMAND PARAMETERS RESPONSE DESCRIPTION
MODE 1–7 OK / ERROR Set data rate mode
INTERLEAVE SHORT / LONG OK / ERROR Set interleaver depth
PTT ON / OFF OK Key/unkey transmitter
STATUS JSON Current state, SNR, sync status
ABORT OK Abort current transmission
RESET OK Reset modem to idle state

Example: Python Integration

import socket

# Connect to control port
ctrl = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ctrl.connect(('127.0.0.1', 4999))

# Configure modem
ctrl.send(b'MODE 3\r\n')           # 300 bps
print(ctrl.recv(64).decode())      # OK

ctrl.send(b'INTERLEAVE LONG\r\n')  # 4.8 sec interleaver
print(ctrl.recv(64).decode())      # OK

ctrl.send(b'STATUS\r\n')
print(ctrl.recv(1024).decode())    # {"state":"IDLE","mode":3,"snr":null,...}

# Connect to data port for TX/RX
data = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
data.connect(('127.0.0.1', 4998))
data.send(b'DE W1XYZ TEST MESSAGE 73')

# PTT handled automatically when data sent, or manually:
ctrl.send(b'PTT ON\r\n')

System Requirements

Operating System Windows 10/11 (64-bit)
Processor 1 GHz+ (SSE2 required)
Memory 512 MB RAM minimum
Audio 48 kHz soundcard or USB interface
Interface SignaLink, RigBlaster, Digirig, etc.
Radio Any SSB transceiver with audio I/O

Interoperability

Phoenix Nest Modem implements MIL-STD-188-110A Appendix C and is designed to interoperate with:

  • Harris AN/PRC-150, AN/PRC-152, RF-7800 series
  • Rockwell Collins AN/ARC-210, AN/PRC-117G
  • Thales AN/PRC-148
  • Rohde & Schwarz M3SR series
  • Other MIL-STD-188-110A Appendix C compliant modems
  • STANAG 4539 compatible systems (extended waveform overlap)

Note: This software is not DoD-affiliated or certified. Interoperability is based on standard compliance, not formal testing with specific military hardware. Community testing results welcome—submit your results.

Download

CURRENT RELEASE

  • Version1.0.0
  • Released2025-01-15
  • Size4.2 MB
  • PlatformWindows x64
  • LicenseFreeware

VERIFICATION

  • SHA-256 [CHECKSUM_PLACEHOLDER]

Verify download integrity before installation. See verification instructions.

🚧

Active Development — Your Support Helps

Phoenix Nest Modem is under active development. The test results below show exactly where we are—what's working, what's not, and where we need to focus. This transparency helps you understand what you're getting and where your donations go.

Support Development

Test Results — Build 65

VERSION
v1.2.0-turbo
COMMIT
4e81f6c
TEST DATE
2025-12-08
TESTS RUN
924
DURATION
~15 min
OVERALL
65.6% PASS

What's Working

  • Clean/AWGN channels: 83% pass rate
  • 150–1200 bps modes: 73–91% in good conditions
  • MLSE equalizers: Best performers (L2, L3)
  • Long interleave: Consistent improvement
  • Low frequency offset (±1 Hz): 79% pass
  • Multipath (48 sample): 77% pass

Known Issues — Work Needed

  • 75 bps mode: 0% — Completely broken
  • Poor HF channel: 0% — Critical gap
  • 5 Hz freq offset: 17% — AFC needs work
  • 2400 bps modes: 45–73% — Unstable
  • Moderate HF: 65% — Needs improvement
  • Multipath (24 samp): 67% — EQ tuning

Performance by Channel Condition

Tests run across 11 simulated channel conditions. Pass = BER < threshold for the mode.

CHANNEL DESCRIPTION PASSED FAILED PASS RATE STATUS
clean No impairments, ideal conditions 70 14 83.3% GOOD
awgn_15db AWGN, 15 dB SNR 70 14 83.3% GOOD
awgn_20db AWGN, 20 dB SNR 70 14 83.3% GOOD
awgn_25db AWGN, 25 dB SNR 70 14 83.3% GOOD
awgn_30db AWGN, 30 dB SNR 70 14 83.3% GOOD
foff_1hz Frequency offset ±1 Hz 66 18 78.6% OK
mp_48samp Multipath, 48 sample delay 65 19 77.4% OK
mp_24samp Multipath, 24 sample delay 56 28 66.7% FAIR
moderate_hf Simulated moderate HF fading 55 29 65.5% FAIR
foff_5hz Frequency offset ±5 Hz 14 70 16.7% FAILING
poor_hf Simulated poor HF (deep fading) 0 84 0.0% BROKEN

Performance by Data Mode

Aggregated across all equalizers. Best equalizer shown for each mode.

MODE RATE SHORT INTLV LONG INTLV BEST EQUALIZER AVG BER STATUS
1 75 bps 0% 0% 1.00 BROKEN
2 150 bps 82–91% 82–91% DFE, MLSE_L2 9.09e-02 GOOD
3 300 bps 82% 82–91% MLSE_L3 9.09e-02 GOOD
4 600 bps 73–91% 82–91% MLSE_L3, NONE 9.09e-02 GOOD
5 1200 bps 73–91% 82–91% MLSE_L2, MLSE_L3 9.09e-02 GOOD
6 2400 bps 45–73% 55–82% DFE, MLSE_L3 1.50e-01 UNSTABLE
7 4800 bps Not yet implemented in test suite

Equalizer Performance Comparison

7 equalizer implementations tested. MLSE variants showing best overall results.

MLSE_L3 BEST
Max Likelihood Sequence Est.
~85% avg
MLSE_L2 GOOD
MLSE Length 2 trellis
~80% avg
DFE GOOD
Decision Feedback EQ
~75% avg
DFE_RLS FAIR
DFE with RLS adaptation
~72% avg
TURBO FAIR
Turbo equalization
~70% avg
NONE BASE
No equalization
~70% avg

Development Roadmap

Fix 75 bps Mode

Symbol timing recovery failing at lowest data rate. Likely sync acquisition issue.

CRITICAL

Poor HF Channel Support

0% pass rate in severe fading. Need improved channel estimation and long interleave effectiveness.

CRITICAL

Improve AFC (Frequency Tracking)

5 Hz offset causes 83% failure. AFC loop needs tuning for real-world Doppler.

HIGH

Stabilize 2400 bps Mode

Pass rates vary 45–82% depending on conditions. Equalizer selection logic needs work.

HIGH

Implement 4800 bps Mode

Highest throughput mode not yet in test suite. Requires 16-QAM support.

PLANNED

Real HF On-Air Testing

Move beyond simulation to actual HF propagation tests with partner stations.

PLANNED

Help Us Get to 100%

Every donation goes directly toward development time, test equipment, and the AI coding tools that accelerate this work. You're not just supporting software—you're helping build free infrastructure for emergency and amateur communications.

© 2025 Phoenix Nest LLC • Greenup, KY • AboutContactSupport Development
MIL-STD-188-110A is a U.S. DoD standard. This software is not DoD-affiliated.