SDR & Ground Control Station¶
Last updated: 2026-04-11
Recent Finds¶
SatNOGS-COMMS: ESA-Backed Open-Source CubeSat Radio Subsystem (Libre Space Foundation / SmallSat Europe 2025)¶
Libre Space Foundation + ESA co-developed SatNOGS-COMMS: a complete open hardware/software communications subsystem for CubeSats, drop-in compatible with the SatNOGS global ground station network. Full-stack integration: the hardware ships with demodulation and decoding that feeds directly into the SatNOGS Network dashboard, with mission control for telecommand and real-time telemetry visualization. Supports AX.25, CSP, and CCSDS framing. For any university CubeSat team, this is now the path-of-least-resistance from radio hardware to fully integrated GCS without building custom decoder chains.
The apex MCC: Blueprint of an Open-Source, Secure, CCSDS-Compatible Ground Segment (MDPI, Sep 2025)¶
The most complete public blueprint for a production-ready Yamcs-based GCS stack, validated on the MAPHEUS-10 sounding rocket (live commanding between Sweden and Germany). Architecture: fully containerized, CCSDS TM/TC handling, broker-based publish-subscribe messaging (separating data producers from consumers), SLE (Space Link Extension) protocol bridging for professional ground network integration, and 2FA-secured VPNs — all open source. Key value: it closes the gap between "we use Yamcs" and an actual production-grade, secure ground segment design. Transfers directly to CubeSat and small lander missions with minimal adaptation. MAPHEUS-10 validation gives it rare real-flight credibility for an open-source GCS design paper.
Software Defined Radio (SDR)¶
What It Is¶
Traditional radio: hardware circuits define the modulation, filtering, and frequency. SDR: all signal processing is done in software — the hardware is just an ADC/DAC + RF front-end.
Antenna → RF front-end (LNA, mixer, bandpass) → ADC → [FPGA/CPU] → Software (GNU Radio / custom DSP)
Key Hardware¶
| Device | Freq Range | ADC bits | Notes |
|---|---|---|---|
| RTL-SDR v4 | 500 kHz – 1.75 GHz | 8-bit | $30, receive only, best entry point |
| HackRF One | 1 MHz – 6 GHz | 8-bit | TX+RX, half-duplex |
| LimeSDR Mini 2 | 10 MHz – 3.5 GHz | 12-bit | TX+RX, full-duplex, open hardware |
| USRP B210 | 70 MHz – 6 GHz | 12-bit | TX+RX, full-duplex, industrial grade |
| PlutoSDR | 325 MHz – 3.8 GHz | 12-bit | Analog Devices, good for learning |
For satellite work: LimeSDR or USRP — 8-bit isn't enough dynamic range for weak signal work.
Software Stack¶
- GNU Radio — visual flowgraph-based DSP. Industry standard for SDR prototyping.
- SatNOGS — open-source global satellite ground station network, runs GNU Radio under the hood.
- GPredict — satellite tracking + Doppler correction integration with GNU Radio.
- gr-satellites — GNU Radio blocks for decoding amateur/CubeSat telemetry frames (AX.25, KISS, CSP).
- OpenSatCom — open framework for satellite communications ground segment.
Key Concepts for Satellite Links¶
Link Budget — calculates if your link closes (received power > noise floor):
EIRP (dBW) - FSPL (dB) + Gr (dBi) - Losses = Received Power (dBW)
Margin = Received Power - Receiver Sensitivity
- EIRP = Tx Power + Tx Antenna Gain
- FSPL = Free Space Path Loss = 20·log₁₀(4πd/λ)
- Gr = Receive antenna gain
- Margin > 3 dB = acceptable; > 6 dB = comfortable
Doppler Shift for LEO satellites (~400–600 km): - Max shift at horizon: ±10 kHz at 437 MHz (UHF) - Must track and correct in real-time — GPredict → Hamlib → radio/SDR
Common Frequencies: | Band | Freq | Usage | |------|------|-------| | VHF | 144–146 MHz | Uplink (command) for amateur sats | | UHF | 430–440 MHz | Downlink (telemetry) for amateur sats | | S-band | 2.0–2.4 GHz | High-rate downlink, imaging satellites | | X-band | 8–10 GHz | High-rate (100 Mbps+), ground station networks |
Ground Control Station (GCS)¶
Architecture¶
[Tracking Antenna] ← AzEl rotator (Hamlib) ← [Rotator Controller]
↓
[SDR / Radio transceiver]
↓
[Modem layer: AX.25 / CCSDS / custom]
↓
[Mission Control Software]
↓
[Mission Database] ← [Telemetry Processing] → [Alerts / Visualization]
← [Telecommand (TC) queue]
Protocols¶
- AX.25 — packet radio protocol, standard for amateur satellites. Simple, mature, 1200/9600 baud.
- CCSDS (Consultative Committee for Space Data Systems) — standard for professional missions. Defines Space Packet Protocol, CFDP (file transfer), TM/TC frames.
- CSP (CubeSat Space Protocol) — lightweight, CAN/I2C/UART/RF agnostic. Like TCP/IP for CubeSats.
- KISS — Keep It Simple Stupid. Thin framing layer between TNC and software.
Open Source GCS Software¶
| Software | Language | Notes |
|---|---|---|
| OpenMCT | JavaScript | NASA open-source mission control framework |
| COSMOS | Ruby | Ball Aerospace, professional grade, complex |
| Yamcs | Java | ESA-backed, production-ready, CCSDS native |
| SatNOGS Network | Python/Django | Crowdsourced, 100+ ground stations globally |
| FlatSat | Python | Lightweight for CubeSat testing |
Yamcs is the best open-source option for a real mission — CCSDS compliant, telemetry archiving, commanding, and has a REST API.
Antenna Considerations¶
- Yagi-Uda: high gain, directional, needs tracking rotator. Best for UHF/VHF LEO.
- Helix: circularly polarized, good match for satellite polarization rotation.
- Dish/Parabolic: high gain, S/X-band, requires precise pointing.
- Turnstile/Eggbeater: omnidirectional, no tracking needed, lower gain — for initial AOS.
For a basic CubeSat ground station: dual-band Yagi (VHF+UHF) + AzEl rotator + RTL-SDR/LimeSDR + GPredict + GNU Radio + gr-satellites.
Core Concepts¶
TM/TC (Telemetry & Telecommand)¶
- Telemetry (TM) — data from satellite to ground: housekeeping (temp, voltage, current), payload data
- Telecommand (TC) — commands from ground to satellite: mode changes, payload activation, orbit maneuvers
- CCSDS TM Space Data Link Protocol — standard framing for TM
- CCSDS TC Synchronization and Channel Coding — standard for TC
Link Security¶
- Authentication: HMAC or ECSS PUS service 11 (time management) + service 3 (housekeeping) have auth fields
- Encryption: rare in amateur class, standard in professional (AES-256)
- Replay protection: sequence counter + timestamp validation
Open Questions¶
- What's the minimum cost hardware setup to receive LEO CubeSat telemetry reliably?
- How does SatNOGS handle scheduling conflicts across the global station network?
- What's the state of optical (laser) ground-to-space links for small satellites?
- DTN (Delay-Tolerant Networking) — is Bundle Protocol (RFC 5050) mature enough for CubeSat missions?
- SatNOGS-COMMS targets CubeSat missions — does it support full-duplex S-band or is it VHF/UHF only? What's the max downlink rate?