M
Update SDR guides and fix Sphinx warnings for release
Fix Sphinx build errors:
- Add missing blank lines in rtlsdr.rst code-block directives
- Rename duplicate label in examples/sdr/index.rst
- Fix field list indentation in usrp.py and hackrf.py docstrings
Update SDR setup guides (all guides now cover both pip/venv and Radioconda):
- rtlsdr: switch to rtl-sdr-blog fork (required for rtlsdr_set_dithering
symbol), add pyrtlsdr==0.3.0 and setuptools==69.5.1 version pinning,
preserve Radioconda blacklist and udev symlink paths alongside new steps
- pluto: simplify primary path to apt install libiio, add Avahi network
discovery note, preserve Radioconda udev symlink as alternative
- hackrf: note out-of-box support, preserve Radioconda udev symlink
- blade: note no extra Python packages needed, preserve Radioconda udev symlinks
- usrp: add build-from-source path for pip/venv users with cmake flags,
Python binding copy step, and version mismatch warning; keep conda install
as primary option; preserve Radioconda udev symlink
- thinkrf: add lib2to3 install step, Python <=3.12 restriction, and full
Python 3 patching command to replace internal script reference
Update copyright year to 2026 in conf.py
2026-04-21 12:29:18 -04:00
|
|
|
.. _blade:
|
|
|
|
|
|
|
|
|
|
BladeRF
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
The BladeRF is a versatile software-defined radio (SDR) platform developed by Nuand. It is designed for a wide
|
|
|
|
|
range of applications, from wireless communication research to field deployments. BladeRF devices are known
|
|
|
|
|
for their high performance, flexibility, and extensive open-source support, making them suitable for both
|
|
|
|
|
hobbyists and professionals. The BladeRF is based on the Analog Devices AD9361 RF transceiver, which provides
|
|
|
|
|
wide frequency coverage and high bandwidth.
|
|
|
|
|
|
|
|
|
|
Supported Models
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
- **BladeRF 2.0 Micro xA4:** A compact model with a 49 kLE FPGA, ideal for portable applications.
|
|
|
|
|
- **BladeRF 2.0 Micro xA9:** A higher-end version of the Micro with a 115 kLE FPGA, offering more processing power in a small form factor.
|
|
|
|
|
|
|
|
|
|
Key Features
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
- **Frequency Range:** Typically from 47 MHz to 6 GHz, covering a wide range of wireless communication bands.
|
|
|
|
|
- **Bandwidth:** Up to 56 MHz, allowing for wideband signal processing.
|
|
|
|
|
- **FPGA:** Integrated FPGA (varies by model) for real-time processing and custom logic development.
|
|
|
|
|
- **Connectivity:** USB 3.0 interface for high-speed data transfer, with options for GPIO, SPI, and other I/O.
|
|
|
|
|
|
|
|
|
|
Hackability
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
- **Expansion:** The BladeRF features GPIO, expansion headers, and add-on boards, allowing users to extend the
|
|
|
|
|
functionality of the device for specific applications, such as additional RF front ends.
|
|
|
|
|
- **Frequency and Bandwidth Modification:** Advanced users can modify the BladeRF's settings and firmware to
|
|
|
|
|
explore different frequency bands and optimize the bandwidth for their specific use cases.
|
|
|
|
|
|
|
|
|
|
Limitations
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
- The complexity of FPGA development may present a steep learning curve for users unfamiliar with hardware
|
|
|
|
|
description languages (HDL).
|
|
|
|
|
- Bandwidth is capped at 56 MHz, which might not be sufficient for ultra-wideband applications.
|
|
|
|
|
- USB 3.0 connectivity is required for optimal performance; using USB 2.0 will significantly limit data
|
|
|
|
|
transfer rates.
|
|
|
|
|
|
|
|
|
|
Set up instructions (Linux)
|
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
|
|
No additional Python packages are required for BladeRF beyond the base RIA Toolkit OSS installation.
|
|
|
|
|
|
|
|
|
|
1. Install the system library:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo apt install libbladerf-dev
|
|
|
|
|
|
|
|
|
|
For a more complete installation including CLI tools and FPGA images, use the Nuand PPA:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo add-apt-repository ppa:nuandllc/bladerf
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
sudo apt-get install bladerf libbladerf-dev
|
|
|
|
|
sudo apt-get install bladerf-fpga-hostedxa4 # Necessary for BladeRF 2.0 Micro xA4
|
|
|
|
|
|
|
|
|
|
2. Install udev rules:
|
|
|
|
|
|
|
|
|
|
For most users:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo udevadm control --reload
|
|
|
|
|
sudo udevadm trigger
|
|
|
|
|
|
|
|
|
|
For **Radioconda** users, create symlinks from your conda environment instead:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/88-nuand-bladerf1.rules /etc/udev/rules.d/88-radioconda-nuand-bladerf1.rules
|
|
|
|
|
sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/88-nuand-bladerf2.rules /etc/udev/rules.d/88-radioconda-nuand-bladerf2.rules
|
|
|
|
|
sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/88-nuand-bootloader.rules /etc/udev/rules.d/88-radioconda-nuand-bootloader.rules
|
|
|
|
|
sudo udevadm control --reload
|
|
|
|
|
sudo udevadm trigger
|
|
|
|
|
|
|
|
|
|
Further Information
|
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
|
|
- `Official BladeRF Website <https://www.nuand.com/>`_
|
|
|
|
|
- `BladeRF GitHub Repository <https://github.com/Nuand/bladeRF>`_
|
|
|
|
|
- `BladeRF Setup with Radioconda <https://github.com/radioconda/radioconda-installer?tab=readme-ov-file#bladerf>`_
|