Open-source radio ecosystem
SoapySDR, the open hardware and drivers of HackRF, bladeRF and LimeSDR, Open5GS and free5GC cores, and NVIDIA's Sionna simulator. The pieces most SDR projects combine.
| Organisation | Independent projects and companies: Pothosware (SoapySDR), Great Scott Gadgets (HackRF), Nuand (bladeRF), Lime Microsystems (London, LimeSDR), Open5GS, free5GC and NVIDIA (Sionna) |
|---|---|
| Website | github.com/pothosware/SoapySDR |
| Licensing | SoapySDR under Boost Software License 1.0; HackRF under GPL-2.0; libbladeRF under LGPL-2.1 (bladeRF-cli GPL-2.0); LimeSuiteNG under Apache-2.0; Open5GS under AGPL-3.0 (commercial licences from NewPlane); free5GC and Sionna under Apache-2.0 |
| Pricing | Software free; hardware sold by the makers and resellers, and Great Scott Gadgets lists resellers rather than a list price for HackRF One |
| Updated | 15 Nov 2026 |
Products and offerings #
| Name | Kind | Positioning |
|---|---|---|
| SoapySDR | library | Vendor-neutral SDR API in C++, C and Python with modules for UHD, RTL-SDR, HackRF, bladeRF, Pluto and LimeSDR; 0.9.0 released 10 October 2026 |
| HackRF One | sdr | 1 MHz to 6 GHz, 2 to 20 Msps, 8-bit samples, half-duplex, High Speed USB |
| bladeRF 2.0 micro xA4 | sdr | AD9361-based, RX 70 MHz and TX 47 MHz up to 6 GHz, 56 MHz bandwidth, up to 61.44 MSPS, per Nuand's driver source |
| LimeSDR Mini 2.0 | sdr | LMS7002M-based, 10 MHz to 2.6 GHz with gaps, 30.72 MSPS, 12-bit, 1 TX and 1 RX full duplex, USB 3.0 |
| Open5GS | software | 5G core and EPC in C; v2.8.0 (20 June 2026) moved protocol support to 3GPP Release 19 |
| free5GC | software | 5G core network; v4.3.0 released 30 September 2026 |
| Sionna | library | Link-level (PHY), system-level (SYS) and ray-tracing (RT) simulation; v2.2.0 released 29 September 2026, PyTorch-based |
Who they are
This hub collects the open-source pieces that most SDR and private-network projects combine. None of them is a single organisation. SoapySDR comes from Pothosware. The HackRF One comes from Great Scott Gadgets, the bladeRF from Nuand, and the LimeSDR from Lime Microsystems in London. On the network side, Open5GS and free5GC provide 5G cores to pair with srsRAN or OpenAirInterface. NVIDIA’s Sionna is the main open simulator for link- and system-level work. GNU Radio has its own hub.
Tooling and APIs
SoapySDR. SoapySDR is a thin, vendor-neutral API. You write against one interface, and a module for each radio does the rest: SoapyUHD for USRPs, SoapyRTLSDR, SoapyHackRF, SoapyBladeRF, SoapyPlutoSDR, and SoapyLMS for LimeSDR. The core is under the Boost Software License. Modules carry their own licences, from MIT for SoapyHackRF and SoapyRTLSDR to GPL-3.0 for SoapyUHD. There are C++, C and Python APIs, plus community bindings for other languages. GNU Radio reaches all of these through gr-soapy.
The block below opens the first radio SoapySDR finds and reads 4096 samples. It needs a radio connected and the matching Soapy module installed, so it will not run on this page.
# needs-hardware
import numpy as np
import SoapySDR
from SoapySDR import SOAPY_SDR_RX, SOAPY_SDR_CF32
results = SoapySDR.Device.enumerate()
print(f"found {len(results)} device(s)")
sdr = SoapySDR.Device(results[0])
sdr.setSampleRate(SOAPY_SDR_RX, 0, 2e6) # 2 MHz sample rate
sdr.setFrequency(SOAPY_SDR_RX, 0, 100e6) # 100 MHz centre frequency
rx = sdr.setupStream(SOAPY_SDR_RX, SOAPY_SDR_CF32)
sdr.activateStream(rx)
buf = np.zeros(4096, dtype=np.complex64)
sr = sdr.readStream(rx, [buf], buf.size)
sdr.deactivateStream(rx)
sdr.closeStream(rx)
print(f"read {sr.ret} samples, mean power {np.mean(np.abs(buf) ** 2):.3e}")
The radios. According to the HackRF documentation, the HackRF One tunes 1 MHz to 6 GHz at 2 to 20 Msps with 8-bit samples, and it is half-duplex over High Speed USB. The bladeRF 2.0 micro xA4 uses an AD9361. Nuand’s site refused our requests, so its figures here come from Nuand’s driver source: RX from 70 MHz and TX from 47 MHz, both to 6 GHz, 56 MHz bandwidth and up to 61.44 MSPS. The LimeSDR Mini 2.0 uses Lime’s LMS7002M and, according to its project page, covers 10 MHz to 2.6 GHz with gaps, at 30.72 MSPS with 12-bit samples, 1 TX and 1 RX, over USB 3.0. For receive-only work, the RTL-SDR and Airspy R2 also have Soapy modules.
OS support. HackRF documents installs on macOS through Homebrew and MacPorts. The bladeRF host README covers Linux, macOS and Windows. LimeSuiteNG’s install instructions cover Linux and Windows only. conda-forge packages SoapySDR 0.9.0 for Linux, macOS (Intel and Apple Silicon) and Windows, and radioconda bundles it with drivers for most of these radios.
Cores and simulators. Open5GS implements a 5G core and an LTE EPC in C under AGPL-3.0, with commercial licences from NewPlane. Version 2.8.0 moved its protocol support to 3GPP Release 19. Its docs include macOS guides, but they date from macOS Big Sur. free5GC is an Apache-2.0 5G core. Sionna 2.x needs Python 3.11 or later and PyTorch 2.9 or later, and NVIDIA recommends Ubuntu 24.04. It does not mention macOS. For the machine-learning side, see the AI/ML Field Guide.
Migration notes
- Into SoapySDR. Code written to SoapySDR moves between radios by changing the device arguments. Gain names, antenna names and sample-rate limits still differ by module, so query them with
listGainsandgetSampleRateRangerather than hard-coding. - Sample formats. Ask for
CF32and SoapySDR converts. Native formats differ: HackRF delivers 8-bit samples, so its ideal quantisation range is about 48 dB smaller than a 16-bit path (6.02 dB per bit). See IQ samples and ADC. - LimeSuite to LimeSuiteNG. The old LimeSuite stopped at v23.11.0 in January 2024. LimeSuiteNG is the replacement, with its own Soapy plugin.
- Sionna 0.x and 1.x to 2.x. Sionna PHY and SYS moved from TensorFlow to PyTorch in 2.0, and TensorFlow is no longer a dependency. Old notebooks need porting.
- Files. Record with SigMF metadata so captures move between tools. See recording and reading IQ.
Watch for
- AGPL cores. Open5GS under AGPL-3.0 carries source-sharing duties for modified versions offered over a network.
- End-of-life hardware. The RTL-SDR Blog store says the V4 has reached end of life, while the V3 and the V4L Lite are still sold. Check stock before you standardise a lab on one model.
- Half-duplex radios. The HackRF One cannot transmit and receive at once. Protocols that need both need a second radio or a full-duplex SDR.
- Spectrum. Every transmit-capable radio here can break the rules if misused. Transmit only where permitted, or into a cable and attenuator. See spectrum, security and regulation.