{"id":"d3f84472-bb70-4456-8f3a-f57713ee4d86","slug":"sdr-skills","kind":"skill","name":"sdr-skills","summary":"In-depth Software Defined Radio (SDR) agent skill: DSP, modulation, hardware, GNU Radio, protocol decoding, signal identification, IQ/SigMF, antennas, regulations, and 8 runnable Python tools.","owner":"briannasywa","repoUrl":"https://github.com/briannasywa/sdr-skills","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-09-16T06:11:11.000Z","addedAt":"2026-10-21T11:37:59.253Z","logoUrl":"https://avatars.githubusercontent.com/u/147382376?u=661c9889fd4801f35514db9b9a6022e418f03c65&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["communication","developer-tools"],"tags":["claude-code","dsp","gnuradio","hackrf","radio-frequency","rtl-sdr","sdr","signal-processing"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T05:11:11.328Z","sample":false,"url":"https://conduits.dev/tools/sdr-skills","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# SDR Skills\n\nAn in-depth [Agent Skill](https://agentskills.io) for **Software Defined Radio (SDR)**. It gives\nan AI coding agent (Claude Code, and other Agent-Skills-compatible tools) deep, practical\nknowledge of receiving, analyzing, decoding, and lawfully transmitting radio signals with SDR\nhardware such as RTL-SDR, HackRF, Airspy, SDRplay, ADALM-Pluto, LimeSDR, BladeRF, and USRP.\n\n## What is in it\n\nOne skill, `software-defined-radio`, built for progressive disclosure: a compact `SKILL.md`\nrouter plus fourteen deep reference files, eight runnable Python tools, and GNU Radio templates.\n\n| Area | File |\n|---|---|\n| DSP fundamentals (sampling, IQ, FFT, filters, decimation, sync, SNR) | `references/dsp-fundamentals.md` |\n| Modulation and demodulation (AM/FM/SSB/FSK/PSK/QAM/OFDM/LoRa/DSSS) | `references/modulation.md` |\n| Hardware (every common SDR, specs, quirks, front-end accessories) | `references/hardware.md` |\n| Software toolchain (drivers, receivers, decoders, install recipes) | `references/software-toolchain.md` |\n| GNU Radio 3.10 (blocks, flowgraphs, parameters, debugging) | `references/gnuradio.md` |\n| Python DSP (numpy/scipy, SoapySDR, pyrtlsdr, pyadi-iio, UHD, SigMF) | `references/python-sdr.md` |\n| Protocol decoding catalog (ADS-B, AIS, ACARS, POCSAG, DMR, satellites, LoRa, rtl_433, GSM...) | `references/protocols.md` |\n| Signal identification (procedure + shape/band lookup tables) | `references/signal-identification.md` |\n| Antennas and RF front-end (link budget, LNA, coax, noise) | `references/antennas-rf-frontend.md` |\n| IQ formats and SigMF (cu8/cs8/cs16/cf32, metadata) | `references/iq-formats.md` |\n| Spectrum regulations (ITU, FCC, Ofcom, ETSI, Indonesia Komdigi) | `references/regulations.md` |\n| Troubleshooting (device, overruns, ppm, DC, overload) | `references/troubleshooting.md` |\n| Transmission and lab safety (authorized TX, cabled replay) | `references/transmission-lab-safety.md` |\n| Advanced topics (DF, passive radar, GNSS, RFML, RFNoC) | `references/advanced-topics.md` |\n\n### Bundled tools (`scripts/`, Python 3.9+, numpy)\n\n| Script | Purpose |\n|---|---|\n| `sdr_calc.py` | Wavelength, dipole, dBm/W/uV, noise floor, FSPL, link budget, Friis NF, Carson BW, FFT resolution, Doppler, file size, symbol-rate/BW |\n| `iq_info.py` | Detect format, DC offset, clipping, level, occupied bandwidth, peak frequency |\n| `iq_spectrum.py` | PSD + waterfall PNG (ASCII fallback when matplotlib is absent) |\n| `iq_convert.py` | Convert cu8/cs8/cs16/cf32/cf64, with optional shift/decimate/trim |\n| `sigmf_write.py` | Write a `.sigmf-meta` sidecar for an existing capture (no dependencies) |\n| `fm_demod.py` | WBFM/NBFM/AM demodulation from IQ to WAV |\n| `symbol_rate.py` | Blind symbol-rate and modulation hints for digital bursts |\n| `probe_devices.py` | Enumerate attached SDRs via rtl_test/hackrf_info/SoapySDRUtil/uhd/iio |\n\nscipy and matplotlib are optional; every script degrades gracefully with numpy alone.\n\n## Install\n\nWith the [skills CLI](https://skills.sh):\n\n```bash\nnpx skills add briannasywa/sdr-skills --skill software-defined-radio\n```\n\nOr copy the skill folder into your agent's skills directory:\n\n```bash\n# Claude Code (project-local)\ncp -r skills/software-defined-radio .claude/skills/\n# or user-global\ncp -r skills/software-defined-radio ~/.claude/skills/\n```\n\nThe skill activates automatically when you mention SDR, RTL-SDR, HackRF, GNU Radio, IQ samples,\na waterfall, demodulation, a radio protocol, or an RF capture.\n\n## Use the tools directly\n\n```bash\ncd skills/software-defined-radio\npython scripts/sdr_calc.py dipole --f-mhz 137.5\npython scripts/sdr_calc.py noise --bw 2e6 --nf 6 --snr 12\npython scripts/iq_info.py capture.cu8 --fs 2.4e6 --fc 433.92e6\npython scripts/iq_spectrum.py capture.cu8 --fs 2.4e6 --fc 100e6 -o spec.png\npython scripts/probe_devices.py\n```\n\n## Scope and safety\n\nThis skill is receive-first. It helps with listening, signal identification, decoding open\nbroadcasts (aviation, maritime, weather satellites, amateur, unencrypted telemetry), DSP, and\nlawful transmission (licensed amateur, unlicensed bands with certified devices, or cabled lab\nsetups on your own equipment). It will not help defeat access control, spoof or jam, intercept\nprivate or cellular communications, or transmit where doing so is illegal. See\n`references/regulations.md` and `references/transmission-lab-safety.md`.\n\n## Requirements\n\n- **Skill knowledge**: none; it is Markdown plus Python.\n- **Tools**: Python 3.9+ with numpy. scipy and matplotlib recommended. SDR command-line tools\n  (rtl_sdr, hackrf, SoapySDR, GNU Radio) only for live hardware work; install recipes are in\n  `references/software-toolchain.md`.\n\n## Contributing\n\nIssues and pull requests welcome: corrections, new protocol entries, additional hardware,\nregulation updates for more countries. Keep reference files focused and under ~250 lines, keep\n`SKILL.md` under 500 lines, and validate with `skills-ref validate skills/software-defined-radio`.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n"}