Skip to content

Alex-Pennington/mars-suite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Phoenix Nest MARS Communications Suite

Open-source HF digital communications tools for Military Auxiliary Radio System (MARS) operations.

Developer: Alex Pennington (KY4OLB, formerly AAR4TE / NNN0VO)
Project Site: www.organicengineer.com/projects
Contact: [email protected]


Current Status (December 2025)

Component Status Notes
MIL-STD-188-110A Modem βœ… v1.6.1 Build 325, cross-modem interop validated
Phoenix SDR Suite βœ… v0.3.0 7-repo modular architecture
WWV Time Detection βœ… Working Tick/marker/BCD decoding operational
Beta Testing 🟑 Open Looking for testers with SDRplay hardware

Next Milestone: Real-world OTA signal capture and decode validation


Overview

The Phoenix Nest MARS Suite is an open-source implementation of MIL-STD-188-110A HF modem with MELP-e voice codec support. This project provides amateur radio operators and MARS members with professional-grade digital communications tools without licensing costs.


Phoenix SDR Repositories

The Phoenix SDR system has been split into focused, modular repositories:

Repository Description Status
phoenix-kiss-fft FFT library for signal processing βœ… v0.1.0
phoenix-reference-library Technical documentation (WWV specs, NTP driver36) βœ… v0.1.0
phoenix-sdr-core SDRplay RSP2 Pro hardware interface, decimation, TCP control βœ… v0.1.0
phoenix-waterfall SDL2 waterfall display with WWV detection βœ… v0.1.0
phoenix-wwv WWV detection library (tick, marker, BCD decoding) βœ… v0.1.0
phoenix-sdr-net Network streaming (sdr_server, signal_relay, splitter) βœ… v0.1.0
phoenix-sdr-utils Utilities (iqr_play, wwv_analyze, telem_logger) βœ… v0.1.0

Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Phoenix Nest MARS Suite                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                       β”‚
β”‚   β”‚  phoenix-kiss-  β”‚  FFT library (dependency for all signal processing)  β”‚
β”‚   β”‚      fft        β”‚                                                       β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                       β”‚
β”‚            β”‚                                                                β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”                                                       β”‚
β”‚   β”‚ phoenix-sdr-    β”‚  SDRplay hardware interface                          β”‚
β”‚   β”‚     core        β”‚  └─ Decimation, TCP control, I/Q streaming           β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                       β”‚
β”‚            β”‚                                                                β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                              β”‚
β”‚   β”‚        β”‚                                β”‚                              β”‚
β”‚   β–Ό        β–Ό                                β–Ό                              β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”‚
β”‚ β”‚   phoenix-   β”‚  β”‚   phoenix-   β”‚  β”‚   phoenix-   β”‚                      β”‚
β”‚ β”‚  waterfall   β”‚  β”‚     wwv      β”‚  β”‚   sdr-net    β”‚                      β”‚
β”‚ β”‚              β”‚  β”‚              β”‚  β”‚              β”‚                      β”‚
β”‚ β”‚ SDL2 display β”‚  β”‚ Detection    β”‚  β”‚ TCP/UDP      β”‚                      β”‚
β”‚ β”‚ + WWV detect β”‚  β”‚ library      β”‚  β”‚ streaming    β”‚                      β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚
β”‚                                                                             β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”‚
β”‚   β”‚              phoenix-sdr-utils                    β”‚                     β”‚
β”‚   β”‚  iqr_play, wwv_analyze, telem_logger, gps_time   β”‚                     β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β”‚
β”‚                                                                             β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”‚
β”‚   β”‚          phoenix-reference-library               β”‚                     β”‚
β”‚   β”‚  Technical documentation, WWV specs, references  β”‚                     β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Other MARS Repositories

Repository Description Status
pennington_m110a_demod MIL-STD-188-110A HF modem - all 12 modes (75-4800 bps), turbo EQ, SDR I/Q input, cross-modem validated βœ… v1.6.1 b325
phoenix_sdr πŸ—„οΈ ARCHIVED - Monolith split into 7 modular repos (see phoenix-* above) πŸ“¦ v0.3.0
hf-modem-rpi4 Raspberry Pi 4 HF modem implementation πŸ”¨ In Progress
brain_core Charles Brain (G4GUO) modem TCP server (ports 3998/3999) - headless wrapper for cross-modem testing βœ… v1.0.5
phoenix_nest_mars MARS ops suite: CP, Station Mapper Linux, Crypto (KIK/TEK), VOACAP propagation πŸ”¨ Building
MARS_GIS QGIS project + Python scripts for FEMA region map generation βœ… Active
MARS-History-Project SME Interview System - AI-powered knowledge capture (Flask/Claude/Google TTS) βœ… v1.0.0

Features

  • Full MIL-STD-188-110A implementation β€” All 12 waveform modes (75-4800 bps) with turbo equalization
  • Direct SDR receive β€” SDRplay RSP2 Pro I/Q input at 2 MSPS with multi-stage decimation
  • WWV time signal detection β€” Tick, marker, and BCD time code decoding validates SDR chain
  • Cross-modem interoperability β€” 9/12 modes validated with brain_core (G4GUO) reference
  • MELP-e voice codec support β€” Codec2 open-source alternative included
  • MARS operations tools β€” CP (Communications Processor), Station Mapper, VOACAP propagation
  • Advanced equalization β€” 7 equalizers (DFE, MLSE, RLS, Turbo) for varying channel conditions
  • Modular architecture β€” 7 focused Phoenix SDR repos for reusability
  • Knowledge capture β€” AI-powered SME interview system for institutional history
  • GIS mapping β€” QGIS integration for FEMA region visualization

I/Q Pipeline Status

The SDR receive chain is validated and ready:

SDRplay RSP2 Pro β†’ phoenix-sdr-core β†’ phoenix-waterfall β†’ WWV Detection
     (2 MSPS)        (decimation)       (display)         (phoenix-wwv)
                          β”‚
                          └──→ phoenix-sdr-net β†’ Remote clients

Test Results:

Test Suite Pass Total
IQSource format conversion 10 10
IQFileSource .iqr loading 11 11
I/Q pipeline loopback 10 10
Total 31 31

Beta Testing

Want to help test? See the Beta Testing Guide for instructions.

Current Focus: WWV tick detection β€” validates SDR capture chain before modem integration.

What you need:

  • SDRplay RSP2 Pro (or compatible)
  • Windows 10/11 PC
  • SDRplay API v3.x installed
  • HF antenna (any antenna that can receive 5-15 MHz)

What validates success:

  • Ticks detected every ~1000ms (950-1050ms acceptable)
  • Purple flash on bar 5 (1000 Hz) with each tick
  • Average interval converging to 1000ms
  • Note: Seconds 29 and 59 have NO tick (intentional WWV gap)

Quick Links

Document Description
Modem README Main modem documentation
SDR Core README SDRplay integration docs
WWV Detection WWV detection library
Reference Library Technical documentation

Development Cost Tracking

This project was developed using AI-assisted coding tools. In the interest of transparency, here's the running cost breakdown:

Subscription Costs (3 months: Oct-Dec 2025)

Subscription Monthly 3 Months
Claude Max $100 $300
GitHub Copilot $50 $150
Subtotal $450

API/Usage Costs by Component

Component Repository Cost Notes
Pennington Modem Core pennington_m110a_demod $150 Full 110A implementation, 12 modes
Phoenix SDR Suite phoenix-* repos $75 SDR interface, WWV detection, waterfall
Brain Core Wrapper brain_core $20 TCP/IP wrapper for reference modem
HF Channel Simulator (in modem repo) $5 Watterson model, CCIR presets
Subtotal $250

Total Investment

Category Amount
Subscriptions (3 months) $450
API/Usage Costs $250
Grand Total $700+

What AI Does vs. Human Expertise

AI accelerates:

  • Boilerplate code generation
  • Documentation drafting
  • Algorithm implementation from specifications
  • Code refactoring and test generation

Human expertise required:

  • MIL-STD-188-110A domain knowledge (AI doesn't know this standard)
  • Architecture decisions and design choices
  • Validation against real RF signals
  • Integration with existing MARS infrastructure
  • 35 years of programming experience directing the work

Getting Started

  1. Clone the repositories you need
  2. Install SDRplay API v3.x (for hardware support)
  3. Build using the provided build scripts
  4. See individual repository READMEs for detailed instructions

License

AGPL-3.0 for Phoenix SDR components. See LICENSE file in each repository for specific terms.

Acknowledgments

  • Steve Hajducek (N2CKH) β€” MS-DMT, MARS-ALE, Chief Navy MARS staff for ALE/MIL-STD development, introduction to this project space
  • Charles Brain (G4GUO) β€” brain_core reference implementation, PC-ALE, cross-modem interoperability validation
  • David Mills β€” NTP driver36 architecture that inspired WWV detection design
  • The MARS community

Last updated: December 21, 2025

About

Phoenix Nest MARS Communications Suite - index linking all MARS repos

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published