BladeRF

What is BladeRF?

The BladeRF xA4 by Nuand is a USB 3.0 Software Defined Radio platform based on an Altera Cyclone V FPGA and an Analog Devices AD9361 RF transceiver.

Key Specifications

FeatureSpecification
Frequency range47 MHz - 6 GHz
BandwidthUp to 56 MHz
Channels2x2 MIMO (dual TX, dual RX)
ADC/DAC resolution12-bit
Sample rateUp to 61.44 MSPS
InterfaceUSB 3.0 SuperSpeed
FPGAAltera Cyclone V (49K logic elements - xA4)

Installation

Dependencies

Install required packages on Fedora:

sudo dnf install @development-tools
sudo dnf install libusbx libusbx-devel cmake wget gcc-c++ libedit libedit-devel curl-devel ncurses-devel awk

Build from Source

git clone https://github.com/Nuand/bladeRF.git ./bladeRF
cd ./bladeRF/host
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_UDEV_RULES=ON ../
make
sudo make install

Library Path (Fedora)

On Fedora, libraries are installed in /usr/local/lib64 which is not in the default library search path:

echo "/usr/local/lib64" | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig

USB Permissions

Add the current user to the plugdev group:

sudo groupadd -f plugdev
sudo usermod -aG plugdev $USER

Log out and log back in for the group change to take effect.

Firmware and FPGA

Download and flash the latest firmware and FPGA image:

wget https://www.nuand.com/fx3/bladeRF_fw_latest.img
wget https://www.nuand.com/fpga/hostedxA4-latest.rbf
bladeRF-cli --flash-firmware bladeRF_fw_latest.img

Important: Unplug and replug the BladeRF after flashing the firmware (power cycle required).

Flash the FPGA persistently so it auto-loads on boot:

bladeRF-cli -L hostedxA4-latest.rbf

Usage

CLI

bladeRF-cli -i

Available commands:

  • info — display board information (serial, FPGA size, USB speed, etc.)
  • version — show firmware and FPGA versions
  • print frequency — show current frequency for all channels
  • print samplerate — show current sample rate for all channels
  • print bandwidth — show current bandwidth for all channels
  • set frequency rx1 433M — tune RX1 to 433 MHz
  • set samplerate rx1 2M — set RX1 sample rate to 2 MSPS
  • set bandwidth rx1 1.5M — set RX1 bandwidth to 1.5 MHz
  • help — list all available commands

FPGA Loading

  • -l (lowercase): loads FPGA into RAM, must be redone after each power cycle
  • -L (uppercase): flashes FPGA persistently, auto-loads on boot

References