gr-sarsat-modern/README.md
Ryan Malloy 5867c54de3 feat: port gr-sarsat to GNU Radio 3.10+
Ported from zleffke/gr-sarsat (2018, GNU Radio 3.7):
- Updated Python 2 → Python 3
- Converted XML block definitions to YAML
- Added pyproject.toml for modern packaging
- Preserved original MIT license

Blocks:
- biphase_l_decode_bb: Manchester decoder (decim_block)
- pds_frame_sync: Frame synchronizer with PDU output
- sarp_msg_extract: SARP message splitter/validator
2026-02-11 02:22:28 -07:00

65 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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