Loading...
Searching...
No Matches
libbladeRF

# Introduction

This library supports the Nuand bladeRF and bladeRF Micro USB 3.0 Software Defined Radio (SDR). It is intended to support developers looking to:

- Build both generic SDR software and domain-specific applications atop of the bladeRF.
- Evaluate and experiment with the hardware, using routines that provide low-level access to device settings and registers.

The libbladeRF source code is hosted on our GitHub project page, and the latest release of this documentation may be found here.

A few avenues for support are available, including the Nuand forums, the #bladeRF IRC channel on Freenode, or email. The forums are generally preferred over email because they allow a publicly accessible knowledge base of common questions and answers to be developed.

Bugs, both in libbladeRF and this documentation, may be reported on the GitHub issue tracker

Attention
  libbladeRF 2.0 introduces breaking changes to the parameter lists for bladerf_get_frequency(), bladerf_stream(), and bladerf_sync_config().
  Existing code using these functions must be updated to be compatible with this version. See the RF frequencies are now uint64_t and Streaming API changes for MIMO sections of the libbladeRF 2.0 Release Notes document for guidance.

# The libbladeRF API

libbladeRF provides the ability to:

- Query and connect to bladeRF devices connected to a system
- Configure device properties, such as:
  - Frequency tuning
  - Bandwidth
  - Sample rate
  - Gain stages
  - Expansion board settings
  - Synchronization trigger signals
  - SMB clock port mode (for MIMO applications on bladeRF1)
- Read device attributes, including:
  - Serial number and calibration values
  - Firmware and FPGA version numbers
- Steam sample data through either a simple synchronous interface, or a callback-based asynchronous interface.
- Access and manipulate low-level parameters and device registers.
- Load FPGA images
- Update FX3 firmware

- Recover from FX3 bootloader mode

The API Sections page presents a complete list of of the libbladeRF API sections, including the aforementioned items.

The libbladeRF 2.0 Release Notes page summarizes the new features and changes in the second major release of libbladeRF.

The following pages provide examples and more detailed usage information:

- Device configuration boilerplate
- RX and TX via the Synchronous Interface
  - Basic usage without metadata
  - RX with metadata
  - TX with metadata
- Frequency tuning (bladeRF1)
- Environment variables
- Configuration file