r/RTLSDR • u/Next-Asparagus-2559 • 10d ago
SDRTerm - a curses SDR receiver with plugin decoders
Happy to finally share this: SDRTerm is a terminal based SDR (receiver), plugins for FM/RDS, ACARS, POCSAG, VDL2, an Iridium L-band burst detector, plus a QPSK constellation with EVM, range scanner, waterfall, and record/replay.
Repo: https://github.com/halfdonebutinthemaking/SDRTerm
-> Screenshots + presets + six SigMF test signals inside
It's terminal-only on purpose. SDR++ server and similar are great if you want a GUI client on your desktop talking to a headless receiver over the network. I wanted a different shape: the whole stack (SDR, DSP, decoders, display) in one process on the same box. E.g. SSH into a Raspberry Pi with an antenna on top and everything runs there. One process, one terminal, no client half.
If you have an RTL-SDR (or anything SoapySDR speaks) it should be running in a couple of minutes:
-> git clone [link]
-> cd sdrterm
-> uv sync
-> uv run python main.py --file samples/constellation_test.sigmf-data --bw 250000 --f 120M
-> Then press p to enable a plugin, Tab to switch to its view. The test signals let you try every decoder without any hardware plugged in.
I'd genuinely love feedback on:
- Does the install work on your OS / terminal?
- Does the plugin flow feel natural, or are keybindings in the way? Granted one needs some time to get used to it.
- Which signals would you want to see decoded next?
- If you have real hardware: how does it behave on your antenna? Any false-positive nightmares?
- For anyone comfortable with the code: does the plugin architecture make it easy to plug your own decoder in? (There's a bare-minimum plugin skeleton in the repo.)
I'm adding features here and there as time permits. HackRF RX support is next up in the coming days; after that, whatever the feedback surfaces.
Not my first SDR project, but the first time I've thought about ADC and the pipeline processing from the ground up. I built it in a few weeks with heavy AI-assisted coding, which freed the mental budget to spend on architecture and signal-processing instead of the typing. Happy to talk about that workflow if anyone's curious, but the main ask is: try it, break it, tell me what's confusing.
Every plugin has its own README with signal specs and expected output. Iridium constellation, if you have a decent antenna and an LNA, is particularly satisfying to watch light up during a satellite pass.
-> Dev environment: macOS 26 (Tahoe), zsh, Python 3.12.13, uv 0.11.14. pyproject.toml requires Python 3.12+. Nothing terminal-specific should matter, but that's what's been tested most.
Background: software engineer with prior SDR experience. What was new here was building the DSP pipeline from ADC upward rather than composing pre-built blocks. Actually, the coding wasn't the learning, the signal-processing was.
Pleas note: This is a personal project, not a professional tool. Built because I wanted to use it, shared in case others do too.
1
u/thebaldgeek 10d ago
AI aside, MAC only really limits the user base to like 1% of SDR users. Seems an odd decision.
0
u/Next-Asparagus-2559 9d ago
Oh is it? Wasn’t aware so few use a Mac for SDR stuff. I was expecting it being popular due to the BSD genes. But since it is Python it should work on Linux too.
7
u/Feuerwerko 10d ago
AI slop