# gr-sarsat-modern GNU Radio 3.10+ compatible Cospas-Sarsat 406 MHz beacon decoder. Ported from [zleffke/gr-sarsat](https://github.com/zleffke/gr-sarsat) (2018, GNU Radio 3.7). ## Blocks | Block | Description | |-------|-------------| | **Biphase-L Decoder** | Decodes Manchester/Biphase-L encoded bit stream | | **PDS Frame Sync** | Synchronizes and extracts 72-byte PDS frames | | **SARP Message Extractor** | Splits PDS frames into 24-byte SARP messages | ## Installation ```bash # Install Python package cd gr-sarsat-modern pip install -e . # Copy GRC blocks to GNU Radio cp grc/*.yml ~/.local/share/gnuradio/grc/blocks/ ``` ## Signal Chain ``` RF Input (406 MHz) | v [FM Demod] -> [Clock Recovery] -> [Slicer] | v [Correlate Access Code - Tag] (Frame sync: 0x7FF, tag: "pds_sync") | v [Biphase-L Decoder] | v [PDS Frame Sync] | v [SARP Message Extractor] | +---> valid (sync word OK) +---> invalid (sync word mismatch) ``` ## Protocol Background Cospas-Sarsat is the international satellite-based search and rescue system: - **Frequency**: 406.025 MHz - **Modulation**: Phase-modulated carrier, Biphase-L encoded - **Bit rate**: 400 bps - **Frame structure**: - 15-bit frame sync (0x7FF) - 576-bit PDS frame (3 × 24-byte SARP messages) - Each SARP message starts with 0xD60 sync word ## License MIT License - Original work (c) 2018 zleffke