Skip to content

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.

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
  • 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?