agentsclimarketplace

Sdr satellite

Skill broomva/skills/skills/aerospace/sdr-satellite

Software-defined radio (SDR) and satellite reception toolkit — what to install, what you can hear from space, and how to compose the open-source stack (SatDump, SatNOGS, GNU Radio, rustradio, satkit). Covers hardware abstraction (SoapySDR, rtl-sdr-rs), DSP frameworks (GNU Radio, liquid-dsp, rustradio, radiorust), receiver UIs (SDR++, SDRangel, Gqrx, CubicSDR), satellite decoders (SatDump for NOAA APT, Meteor-M LRPT, GOES HRIT, Inmarsat), ground-station orchestration (SatNOGS network, sgoudelis/ground-station, Hamlib), orbit mechanics (SGP4 in Python + Rust, satkit astrodynamics, dSGP4 differentiable). Use when: (1) the user wants to receive satellite signals — weather imagery, ISS SSTV, telemetry, (2) building a ground station or scheduling observations on SatNOGS, (3) decoding TLEs and computing satellite passes, (4) composing SDR tooling into a Rust pipeline (e.g. for Life Agent OS, Opsis world-state events, or arcan/sensorium), (5) explaining what an RTL-SDR or HackRF actually does, (6) deciding between SatDump vs custom GNU Radio flowgraph vs hand-rolled Rust DSP, (7) user mentions 'SDR', 'RTL-SDR', 'HackRF', 'NOAA', 'NOAA APT', 'Meteor-M', 'GOES', 'satellite reception', 'ground station', 'SatNOGS', 'SatDump', 'Gqrx', 'SDR++', 'SDRangel', 'TLE', 'SGP4', 'orbit propagation', 'Hamlib', 'Doppler correction', 'pass prediction', 'CelesTrak', 'amateur radio satellite', 'weather satellite', 'signal decoding'.From its SKILL.md

Install
npx -y skills add broomva/skills --skill sdr-satellite

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 4 commands, including `brew install --cask satdump` and 3 more.

SKILL.md

8.3 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

SDR & Satellite Reception

How to hear satellites with a $30 dongle, decode the bits, predict the next pass, and (if we want) wire it into Life Agent OS or Opsis as a real-world-event source.

What this skill covers

The full open-source satellite reception stack, by layer:

LayerWhat it doesPick
L0 Hardware abstractionOne API across donglesSoapySDR; pure-Rust rtl-sdr-rs
L1 DSP frameworkDemod, filter, syncGNU Radio (standard), liquid-dsp (lean C), rustradio (Rust), radiorust (Tokio)
L2 Receiver UIWatch the spectrum, demod liveSDR++, SDRangel, Gqrx, CubicSDR, SigDigger
L3 Satellite decodersTLE-aware, multi-protocolSatDump (90+ sats)
L4 Ground-station orchestrationSchedule, rotate, DopplerSatNOGS, sgoudelis/ground-station (2026), Hamlib
L5 Orbit mechanicsTLE → pass times → az/elsgp4 (Python), neuromorphicsystems/sgp4 (Rust), satkit (full astro)

Detail: references/tools-by-layer.md.

Quick start — your first weather image

About a 1-afternoon project, $50 total.

# 1. Hardware: RTL-SDR v4 ($30) + V-dipole antenna ($20 wire or 3D-printed QFH)

# 2. Software (macOS)
brew install --cask satdump
brew install gpredict     # pass prediction GUI

# 3. Find next NOAA 18/19 pass overhead
gpredict      # add NOAA 18, NOAA 19 from CelesTrak TLEs; watch for AOS

# 4. Decode (SatDump live mode, frequency 137.9125 MHz for NOAA 19)
satdump live_processing noaa_apt_demod baseband.raw \
  --source rtlsdr --frequency 137912500 --samplerate 2400000

Output: PNG weather imagery of wherever you are, georeferenced. SatDump handles APT, LRPT, HRPT, HRIT, Inmarsat Aero, and ~85 other satellite formats automatically.

Detail: references/recipes.md.

Quick start — no hardware (use someone else's)

# Visit https://network.satnogs.org/observations/new/
# Pick a station that can see the satellite you want
# Schedule an observation; the station records IQ + decodes for you
# Download the resulting waterfall, demod, decoded data via the SatNOGS API

SatNOGS is ~600 crowd-sourced ground stations worldwide. Free to schedule, public results.

Quick start — Rust pipeline (no GUI)

For embedding satellite reception into a Rust service — relevant for Life Agent OS, Opsis world-state events, or arcan sensorium:

# Cargo.toml
[dependencies]
rtl-sdr-rs = "0.x"          # hardware
rustradio = "0.x"           # DSP block graph (or radiorust for Tokio-native)
sgp4 = "1.x"                # neuromorphicsystems/sgp4 — no_std capable
satkit = "0.16"             # full astrodynamics if needed

Shape:

  • rtl-sdr-rs → raw IQ stream
  • rustradio flowgraph → APT/LRPT demod → frames
  • sgp4 / satkit → georeference each frame against TLE
  • Emit as OpsisEvent { kind: "sat_pass", sat_id, lat, lon, alt, timestamp, payload }

Detail: references/composition.md.

What you can actually hear

Satellite classBandWhat you getDifficulty
NOAA 15/18/19 (APT)137 MHzLive weather imagery, ~15-min passes★ easy
Meteor-M N2/N2-2 (LRPT)137 MHzHigher-res digital weather imagery★★
ISS SSTV / APRS145 MHzSlow-scan images, packet radio★★
GOES-16/18 (HRIT)1.7 GHzFull-disk geostationary Earth★★★ (needs small dish)
Inmarsat Aero (STD-C, EGC)L-bandAviation messages, maritime safety★★★
Iridium pager telemetryL-bandPager metadata; voice is encrypted★★★
GPS L1 / Galileo E1L-bandYour own position from raw signals★★★★

Architectural threads (why this lives in the workspace)

Two non-forced connections to existing Broomva work:

SatNOGS ↔ Spaces. SatNOGS's distributed ground-station network has the same pattern as core/life/spaces: global registry of nodes, a scheduler that assigns work to nodes with the right capability, observations flow back to a central DB. If we ever want "Life node, but with antennas," SatNOGS already solved the rotator/Doppler/TLE-sync coordination problem on top of an open scheduling API.

Satellite passes ↔ Opsis. Opsis is already an AI-native world-state engine with OpsisEvent protocol and a CesiumJS globe. Live satellite passes are literally georeferenced world-state events. satkit (Rust SGP4 + ITRF/Geodetic transforms) → OpsisEvent { kind: "sat_pass", ... } → CesiumJS globe already renders it. Zero forced abstraction; the pieces match.

Detail: references/composition.md.

Repository layout (if we build the pipeline)

Speculative — no code shipped yet, this is the skill's compositional seed:

~/broomva/experiments/sdr-satellite/         # (proposed)
├── crates/
│   ├── sat-sdr/             # rtl-sdr-rs wrapper, hardware enumeration
│   ├── sat-decode/          # rustradio flowgraphs for APT / LRPT / SSTV
│   ├── sat-orbit/           # satkit-based pass prediction + Doppler
│   └── sat-opsis-bridge/    # decoded frames → OpsisEvent emitter
└── scripts/
    ├── first-image.sh       # The "your first NOAA image" walkthrough
    └── schedule-satnogs.sh  # Submit observation to SatNOGS network

References

  • tools-by-layer.md — full L0-L5 stack survey with comparison tables
  • recipes.md — concrete recipes: first NOAA APT image, SatNOGS scheduling, GOES dish setup, Meteor-M decode
  • composition.md — Rust pipeline composition for Life / Opsis / arcan; SatNOGS ↔ Spaces pattern analysis

Source list

What ships with it: 3 files

21.9 KB alongside SKILL.md

references/

Gives 0 of the 12 instructions most sales audience skills give in ~2.0k tokens

Counted across 401 of the 401 authors here whose files we hold, read 2026-08-07

  • Read product marketing context before asking questionsin 21 of 401, across 11 files
  • Acknowledge competitor strengths honestlyin 18 of 401, across 7 files
  • Start every page with a summaryin 15 of 401, across 4 files
  • Use a single, low-friction call to actionin 15 of 401, across 7 files
  • Create a single source of truth for each competitorin 14 of 401, across 3 files
  • Make each follow-up email add new valuein 11 of 401, across 5 files
  • Cut any sentence that does not drive a replyin 10 of 401, across 4 files
  • Tie personalization directly to the problemin 10 of 401, across 4 files
  • Write paragraph comparisons for each dimensionin 9 of 401, across 3 files
  • Link between related competitor pagesin 9 of 401, across 3 files
  • Keep subject lines short and lowercasein 9 of 401, across 3 files
  • Define ideal customer profile from top customersin 9 of 401, across 3 files

Said here and by no other author read

  • select tools by matching them to stack layers
  • predict satellite passes using TLEs
  • run satdump live_processing to decode satellite signals
  • use SoapySDR for hardware abstraction
  • schedule observations on the SatNOGS network
  • compose SDR tooling into a Rust pipeline

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.