Software Defined Radio (SDR)
Est. read time: 4 minutes | Last updated: July 17, 2026 by John Gentile
Contents
Waveforms
Communications
Wi-Fi (IEEE 802.11)
- How a Wifi chip works internally
- gr-ieee802-11 - IEEE 802.11 a/g/p Transceiver in GNU Radio
- open-sdr manages open-source WiFI baseband stacks that use FPGAs and plug into Linux like openwifi
- Nuand/bladeRF-wiphy: bladeRF-wiphy is an open-source IEEE 802.11 compatible software defined radio VHDL modem with more details on their blog about the modem design
- Marsrocky/Awesome-WiFi-CSI-Sensing: a list of awesome papers and cool resources on WiFi CSI sensing.
Cellular (LTE/3GPP, 4G/5G)
- srsRAN - Open Source 4G/5G software
- open5G_phy: A resource efficient, customizable, synthesizable 5G NR lower PHY written in Verilog
- free5GRAN: free5GRAN is an open-source 5G RAN stack. The current version includes a receiver which decodes MIB & SIB1 data. It also acts as a cell scanner. free5GRAN works in SA mode.
- OpenBTS: GSM (2G) SDR implementation.
- SysSec-KAIST/LTESniffer: An Open-source LTE Downlink/Uplink Eavesdropper
- Private LTE with Analog ADALM-PLUTO
- LTE-Cell-Scanner: OpenCL, SDR, TDD/FDD LTE cell scanner, full stack from A/D samples to SIB ASN1 messages decoded in PDSCH, (optimized for RTL-SDR HACKRF and BladeRF board)
- Evrytania/Matlab-Library: Miscellaneous Matlab functions that are useful for wireless communications. Primarily focused on LTE / 3GPP.
DVB-S2
- igorauad/gr-dvbs2rx: DVB-S2 receiver blocks for GNU Radio
- csdvb/dvbs2_tx: Nexø DVB-S2 transmitter application
- mattzgto/bladerf-dvbs2: 16-APSK DVB-S2 Transmitter for BladeRF
- OpenResearchInstitute/dvb_fpga: RTL implementation of components for DVB-S2
- freecores/dvb_s2_ldpc_decoder: DVB-S2 LDPC Decoder
- phase4ground/dvb_fpga: RTL implementation of components for DVB-S2
- CCSDS Protocols over DVB-S2—Summary of Definition, Implementation, and Performance
- aff3ct/dvbs2: DVB-S2 SDR Transceiver.
- A Flexible and Portable Real-time DVB-S2 Transceiver using Multicore and SIMD CPUs
Bluetooth
- DEF CON 30 RF Village - Mike Ryan - Building a Modern Bluetooth Sniffer for SDRs - YouTube
- JiaoXianjun/BTLE: Bluetooth Low Energy (BLE) packet sniffer and transmitter for both standard and non standard (raw bit) based on Software Defined Radio (SDR).
- OpenHaystack: track personal Bluetooth devices via Apple’s Find My network.
- GitHub - newhouseb/onebitbt: A Bluetooth Low Energy Radio using FPGA SERDES: No ADC, AGC, filters, mixers, or amplifiers required.
LoRaWAN
- tapparelj/gr-lora_sdr: fully-functional GNU Radio software-defined radio (SDR) implementation of a LoRa transceiver with all the necessary receiver components to operate correctly even at very low SNRs.
- Meshtastic: open source mesh network software running on low-power, affordable devices.
- Meshtastic SDR: This GnuRadio project aims at being a full transceiver stack (RX and TX) for a software defined radio to communicate with the Meshtastic LoRa network.
- LoRaWAN On Helium Network
ZigBee
Orthogonal Time Frequency Space (OTFS) Modulation
- OTFS Modulation- Mathworks
- OTFS − A Mathematical Foundation for Communication and Radar Sensing in the Delay-Doppler Domain
Datasources & Recordings
Software Defined Radio (SDR)
SDR Software/Frameworks
NOTE: almost all SDR frameworks trade abstraction/ease-of-prototyping with absolute performance; if you need to hit ultimate performance, it’s almost always more performant to handcode kernels for a variety of software performance reasons, mostly to optimize (or remove unnecessary) data movement and exploit cache locality. For instance in GNU Radio 4’s fused execution pipelines multiple stages (e.x. timing correction -> carrier recovery) can occur together, instead of separating every DSP stage into separate tasks/threads that perform batch processing between interconnected queues. Said another way, simple sample-by-sample, direct DSP chain implementation may yield more performance than all of these DAG abstraction layers.
GNU Radio
GNU Radio is an open-source SDR framework for prototyping communications systems.
To install, it’s suggested to:
- Install the latest releast of Conda Miniforge
- Source the environment via
$ source <path/to/miniforge3>/bin/activate - Install radioconda bundle (which includes GNU Radio graphical install and many drivers) with
$ conda create -n radioconda -c conda-forge -c ryanvolz --only-deps radioconda - Activate SDR environment with
$ conda activate radioconda - Launch GNU Radio graphical IDE via
$ gnuradio-companion
Other GNU Radio links:
- Comprehensive GNU Radio Archive Network (CGRAN): list of GNU Radio blocks and repos.
- gnuradio/volk: The Vector Optimized Library of Kernels
- Tutorials - GNU Radio
- SuggestedReading - GNU Radio
Other SDR Frameworks
- LiquidSDR: home to liquid-dsp, a free and open-source signal processing library for software-defined radios written in C. Its purpose is to provide a set of extensible DSP modules that do not rely on external dependencies or cumbersome frameworks. The project is now hosted on github.
- SoapySDR: vendor and platform neutral SDR library.
- FutureSDR: experimental asynchronous SDR runtime for heterogeneous architectures.
- Sionna - NVIDIA Labs: Sionna is a hardware-accelerated differentiable open-source library for research on communication systems.
SDR Frontends
SDR Hardware
RTL-SDR
RTL-SDRs are cheap and omnipresent, RX-only SDRs.
- RTL-SDR Quick Start Guide: general guides to RTL-SDR features and dipole antenna usage.
- RTL-SDR for Linux Quick Start Guide: installation instructions for necessary drivers and libraries to get up and running.
- osmocom rtl-sdr wiki
ADI ADALM PLUTO
- macOS interfacing and FW upgrade steps
- Need to change USB ethernet mode to
ncmand can then verifysshto static192.168.2.1IP.
- Need to change USB ethernet mode to
Ettus Research SDRs
Ettus has been a long time maker of high-quality SDR HW. They also open-source nearly all schematics, software, and FPGA firmware/HDL. They also maintain the USRP Hardware Driver (UHD), an open-source driver library across their devices, and well supported by other open-source frameworks, like GNU Radio.
Other SDR Hardware
- A comprehensive list of SDR hardware supported by GNU Radio.
- LimeSDR Mini 2.0: open-source, small form factor USB 3.0 SDR, utilizing the Lime LMS7002M RF ASIC.
- There’s also the original, slightly larger LimeSDR
- LimeRFE RF Front End
- AntSDR E200 small form factor with AD936x front end, similar to PlutoSDR and compatible with both UHD and ADI IIO driver stacks.
- ADI CN0417 2.4GHz small amplifier eval board
- greatscottgadgets/hackrf: low cost software radio platform
- YARD Stick One - Great Scott Gadgets: half-duplex sub-1GHz SDR.
- rpitx - RF transmitter for Raspberry Pi
- osmo-fl2k VGA adapter transmitter
- RFNM
References
- Learn SDR with Prof Jason - YouTube Playlist
- veeresht/CommPy
- Wireless Pi
- MathWorks Communications, SATCOM and Wireless HDL Toolboxes