USB link tester for bladeRF using FX3 firmware loopback
Posted: Sat Jun 06, 2026 6:47 am
Is your bladeRF's USB link actually healthy? Now you can measure it.
I just open-sourced bladerf-usb-tester, a small command-line tool that stress-tests the USB link between your host and a Nuand bladeRF SDR.
When SDR captures drop samples or throughput sags, it is often not the radio. It is the USB path: the cable, the host controller, the port. This tool isolates exactly that.
How it works: it puts the bladeRF into FX3 firmware loopback, so data is echoed back entirely inside the USB microcontroller. No RF, no FPGA DSP in the way. Every number you get reflects the USB transport and nothing else. It runs six focused tests:
- usb-speed: is the link tier fast enough for a full-rate stream
- throughput: sustained TX and RX, in Msps and MB/s
- integrity: bit-perfect delivery of a known pattern
- overruns: RX overrun / TX underrun counts under load
- jitter: throughput stability over time
- latency: USB round-trip time of tagged probe bursts

Results come out as a human-readable report or as JSON for your dashboards and CI. It is C11, builds with Meson, ships as .deb and .rpm, and is GPL-2.0-or-later.
I would love your help:
- Testers: run it against your bladeRF and tell me what you see, especially on odd hubs, cables, and USB 2.0 vs 3.0 setups.
- Users: if you do SDR work, add it to your bring-up checklist.
- Contributors: issues and PRs are very welcome.
Repo: https://github.com/MrCry0/bladeRF-usb-test
#SDR #bladeRF #RF #OpenSource #USB #Linux #Cpp #SoftwareDefinedRadio #Nuand
I just open-sourced bladerf-usb-tester, a small command-line tool that stress-tests the USB link between your host and a Nuand bladeRF SDR.
When SDR captures drop samples or throughput sags, it is often not the radio. It is the USB path: the cable, the host controller, the port. This tool isolates exactly that.
How it works: it puts the bladeRF into FX3 firmware loopback, so data is echoed back entirely inside the USB microcontroller. No RF, no FPGA DSP in the way. Every number you get reflects the USB transport and nothing else. It runs six focused tests:
- usb-speed: is the link tier fast enough for a full-rate stream
- throughput: sustained TX and RX, in Msps and MB/s
- integrity: bit-perfect delivery of a known pattern
- overruns: RX overrun / TX underrun counts under load
- jitter: throughput stability over time
- latency: USB round-trip time of tagged probe bursts
Results come out as a human-readable report or as JSON for your dashboards and CI. It is C11, builds with Meson, ships as .deb and .rpm, and is GPL-2.0-or-later.
I would love your help:
- Testers: run it against your bladeRF and tell me what you see, especially on odd hubs, cables, and USB 2.0 vs 3.0 setups.
- Users: if you do SDR work, add it to your bring-up checklist.
- Contributors: issues and PRs are very welcome.
Repo: https://github.com/MrCry0/bladeRF-usb-test
#SDR #bladeRF #RF #OpenSource #USB #Linux #Cpp #SoftwareDefinedRadio #Nuand