Software-defined radio · Link test bench · CCSDS · CSP

Fly the pass on the bench.

Stellar Link is a software-defined radio test bench for satellite links. It speaks CCSDS and CSP over BPSK, QPSK and GMSK, plays a LEO pass with its Doppler, path loss, AOS and LOS, measures the link, asserts on it and writes the report. Profiles, scenarios and campaigns are YAML, versioned with the rest of your tests.

leo_doppler_pass_v1 · UHF 437.2 MHz GMSK · 19.5 kbaud · CSP
LOS AOS TCA LOS
t+0.5 s traffic CSP downlink 10 → 1, 200 B every 200 ms started
t+15 s set channel.link_state up AOS
t+15 s curve channel.path_loss_db 11.2 → 0.0 → 11.2 slant range
t+45 s inject CSP telecommand 1 → 10 uplink
t+289 s curve channel.doppler_hz −686 TCA
t+562 s assert rx.lock.max ≥ 1.0 PASS · verified
Pass 547 s
Doppler at TCA −686 Hz
LO offset +350 Hz
Who it is for

For the people who connect satellites to the ground

Integrators and flatsat labs

Exercise the RF link of your flatsat on a repeatable bench, long before a ground station is booked.

Transceiver manufacturers

Check your radio against known modulations, framings and impairments, and keep the report of every campaign.

Ground segment teams

Inject and capture frames from your own software, and develop your control centre against a real modem.

NewSpace startups

A link test capability that fits on the bench, driven by an API, a command line and a web console.

A pass as code

From orbit geometry to verdict

A scenario is a YAML timeline. The pass is derived from its geometry, the bench plays it in the FPGA, and the run ends with measured assertions and a report.

  1. Profile

    Modulation, symbol rate, framing and packets of your link, in one file.

  2. Geometry

    Altitude, maximum elevation, mask and carrier turned into path loss and Doppler curves.

  3. Timeline

    Traffic, ramps, curves and injected telecommands at their time in the pass.

  4. Measure

    Lock, CFO, BER, AGC and frame counters sampled live, with Prometheus metrics.

  5. Report

    Assertions passed and verified, in a JSON report kept with the run.

# leo_doppler_pass_v1 — LEO pass, 500 km, 60° max elevation, UHF 437.2 MHz
version: "satlink.scenario/v1"
profile_ref: "spaceinventor_uhf_csp_loopback"
channel:
  initial: { link_state: "down", path_loss_db: 11.2, freq_offset_hz: 350 }
timeline:
  - id: "aos"
    at: "15s"
    set: { channel.link_state: "up" }
  - id: "doppler_residual"
    from: "15s"
    to: "562s"
    curve:
      channel.doppler_hz:
        points: [{ t: "15s", value: -10 }, …, { t: "289s", value: -686 }, …]
Capabilities and status

What it does today, and what comes next

Stellar Link is in development. Implemented features are validated on the reference board, byte for byte on the loopback path; over-the-air links have been exercised against our own transmitter and a third-party SDR.

ImplementedIn validationRoadmap

Radio and protocols

  • BPSK, QPSK and GMSK modem Implemented

    A modem in the FPGA, from 19.5 kbaud to 2.5 Mbaud. QPSK is the reference; GMSK is a non-coherent approximation whose interoperability with third-party radios is still to be shown.

  • CCSDS framing Implemented

    Attached sync marker, CCSDS randomiser, preamble and fill; TM, AOS and USLP transfer frames with their frame error control.

  • CSP and space packets Implemented

    CubeSat Space Protocol (v1) headers and CCSDS space packets, built and decoded on the board.

  • Forward error correction In validation

    Convolutional K=7 rate 1/2 with Viterbi decoding, Reed-Solomon (255,223) and their concatenation; decoding of the coded path is being fixed.

The pass on the bench

  • Channel emulation Implemented

    Doppler and frequency offset, attenuation, noise, burst errors and link cuts, applied in the FPGA on the loopback path.

  • Pass scenarios Implemented

    A LEO pass derived from its geometry: AOS and LOS at the elevation mask, path loss following the slant range, residual Doppler after station tracking.

  • Channel on the RF path Roadmap

    The same impairments between the bench and your transceiver over cable or air; today they apply to the loopback path only.

  • Fading, delay, orbits from TLE Roadmap

    Fading and propagation delay models, and pass geometry propagated from TLEs.

Test and evidence

  • Scenarios and campaigns as code Implemented

    YAML profiles, scenarios and campaigns: a timeline of settings, ramps, curves, traffic and injected packets, campaigns with gates and schedules.

  • Assertions on measurements Implemented

    Thresholds on lock, CFO, BER, AGC, frame counters and registers, and expected packets; each result says whether it passed and whether it was verified.

  • Reports and metrics Implemented

    A JSON report for every run, telemetry at 5 Hz, Prometheus metrics for your dashboards.

  • Second board In validation

    The production board is being validated to the level of the reference board.

Interfaces

  • Control API, CLI and console Implemented

    REST and WebSocket API with OpenAPI, the satlinkctl command line, and a web console: monitor, radio, protocol, scenarios, IQ, reports.

  • Frame injection and capture Implemented

    Inject frames to transmit and receive decoded frames over ZeroMQ or WebSocket, from your own ground software.

  • Satellite responder Roadmap

    The bench answers telecommands and sends telemetry like the spacecraft would, to test a ground segment without it.

  • IQ replay and avionics buses Roadmap

    Replay of recorded IQ; CAN, RS-485, UART and Ethernet links to the on-board side.

  • Stellar Control gateway Roadmap

    Stellar Link as a gateway of Stellar Control: telecommands and telemetry of the flatsat carried over the RF link, passes and impairments driven by procedures.

With Stellar Control · Roadmap

The RF link as part of the procedure

Stellar Link is designed to join the Stellar Control chain: the procedure that commands the flatsat goes through a real modem and a played pass, and the verdict carries the link measurements with it.

  1. Declare

    In the topology, the RF link of the flatsat names Stellar Link as its gateway, with its profile per environment.

  2. Carry

    Telecommands and telemetry of Stellar Control go through the modem, framed as on the flight link.

  3. Play

    A procedure starts the pass at AOS, ramps the impairments and cuts the link at LOS.

  4. Check

    Steps expect telemetry through the degraded link, and lock, CFO and frame counters within limits.

  5. Report

    The link measurements end up in the AIT and IVV evidence of the run, next to the procedure verdict.

Current specification

Under the hood

Hardware AMD Zynq-7020 and Analog Devices AD9361 transceiver, one transmit and one receive channel
Validated band UHF, around 437 MHz
Modulations BPSK, QPSK, GMSK (non-coherent approximation)
Symbol rates 19.53, 39.06, 78.13, 156.25, 312.5, 625 kbaud, 1.25 and 2.5 Mbaud
Framing CCSDS sync marker and randomiser; TM, AOS and USLP transfer frames; CSP v1 and CCSDS space packets
Channel Doppler and frequency offset, attenuation, noise, burst errors, link cuts (loopback path)
Control REST and WebSocket API with OpenAPI, ZeroMQ frame streams, satlinkctl CLI, web console
Outputs JSON reports, 5 Hz telemetry, Prometheus metrics, IQ capture
Get started

Bring your radio. Fly your first pass.

We help you describe your link, play your first pass and read the report.

  1. Describe your link in a profile: modulation, rate, framing, packets.
  2. Run the loopback health check on the bench.
  3. Play a LEO pass and read its assertions.
  4. Connect your transceiver and run your campaign.