Releases: Nuand/bladeRF
2025.05-rc2
May release
Tagging this release to get Windows installer hosted on Github.
2023.02
2023.02 (2023-02-13)
This release candidate consists of the following versions:
* FPGA bitstream v0.15.0
* FX3 firmware v2.4.0
* libbladeRF v2.5.0
* bladeRF-cli v1.9.0
* MATLAB & Simulink bindings v1.0.5
* Python bindings v1.3.0
API docs: https://www.nuand.com/bladeRF-doc/libbladeRF/
FX3 firmware: https://www.nuand.com/fx3_images/
FPGA bitstreams: https://www.nuand.com/fpga_images/
Ubuntu PPA: https://launchpad.net/~nuandllc/+archive/ubuntu/bladerf
Windows installer: https://www.nuand.com/win_installers/
Summary of changes in 2023.02
-
libbladeRF
- Add 8bit format mode support
- Add AD936x overclocking feature
- Fix bugs, including a locking bug
-
FPGA:
- Add 8bit mode support to FIFO reader and writer
2021.10
2021.10 (2021-10-04)
This release candidate consists of the following versions:
* FPGA bitstream v0.14.0
* FX3 firmware v2.4.0
* libbladeRF v2.4.1
* bladeRF-cli v1.8.0
* MATLAB & Simulink bindings v1.0.5
* Python bindings v1.2.1
API docs: https://www.nuand.com/bladeRF-doc/libbladeRF/
FX3 firmware: https://www.nuand.com/fx3_images/
FPGA bitstreams: https://www.nuand.com/fpga_images/
Ubuntu PPA: https://launchpad.net/~nuandllc/+archive/ubuntu/bladerf
Windows installer: https://www.nuand.com/win_installers/
Summary of changes in 2021.10
-
libbladeRF
- Fix up packet mode bugs
- Add Wishbone master core as NiOS peripheral
-
FPGA:
- Fix several bugs in packet mode buffering mechanism
- Add Wishbone master core as NiOS peripheral
- Add support for bladeRF 2.0 micro xA5
2021.02
This release candidate consists of the following versions:
* FPGA bitstream v0.12.0
* FX3 firmware v2.4.0
* libbladeRF v2.4.0
* bladeRF-cli v1.8.0
* MATLAB & Simulink bindings v1.0.3
* Python bindings v1.2.0
API docs: https://www.nuand.com/bladeRF-doc/libbladeRF/
FX3 firmware: https://www.nuand.com/fx3_images/
FPGA bitstreams: https://www.nuand.com/fpga_images/
Ubuntu PPA: https://launchpad.net/~nuand/+archive/ubuntu/bladerf
Windows installer: https://www.nuand.com/win_installers/
Summary of changes in 2020.12
-
libbladeRF
- Added packet mode format BLADERF_FORMAT_PACKET_META. libbladeRF is able to
exchange variable length packets with the HDL if packet mode is enabled - Added RFIC parameters for burst waveforms
- Ability to query backend for handle and lock
- Added packet mode format BLADERF_FORMAT_PACKET_META. libbladeRF is able to
-
FX3
- Variable length packet support for PACKET_META mode
-
bladeRF-cli:
- Indicate presence of packet cores in FPGA
-
FPGA:
- Add packet mode. The HDL fabric is able to exchange variable length
packets with the host - Added packet_generator as an example for how to send packets to the host
- Added bladeRF 2.0 micro headless example variant "foxhunt"
- Fix metadata related arithmetic and logic
- Add packet mode. The HDL fabric is able to exchange variable length
-
Python
- Update for libbladeRF v2.4.0
2019.07
2019.07 (2019-07-31)
This release candidate consists of the following versions:
* FPGA bitstream v0.11.0
* FX3 firmware v2.3.2
* libbladeRF v2.2.1
* bladeRF-cli v1.8.0
* MATLAB & Simulink bindings v1.0.3
* Python bindings v1.2.0
API docs: https://www.nuand.com/bladeRF-doc/libbladeRF/
FX3 firmware: https://www.nuand.com/fx3_images/
FPGA bitstreams: https://www.nuand.com/fpga_images/
Ubuntu PPA: https://launchpad.net/~nuandllc/+archive/ubuntu/bladerf
Windows installer: https://www.nuand.com/win_installers/
Summary of changes in 2019.07
-
libbladeRF
- Gain mode setting default is now manual
- Tuning mode setting default is now host
- Add OTP command support
- Fix metadata related arithmetic
-
bladeRF-cli:
- Add RFIC fitler selection
- Add tuning_mode
- Display more useful warning and error messages
-
FPGA:
- Increase FIFO buffer sizes for bladeRF 2.0
- Fix underflow and overflow issues in metadata code
- Refactor RFIC code for bladeRF 2.0
- Allow quicktune to control XB gpio register for XB-200
-
Python
- Update for libbladeRF v2.2.1
2018.12-rc2
2018.12-rc2 (2018-12-21)
This release candidate consists of the following versions:
* FPGA bitstream v0.10.2
* FX3 firmware v2.3.1
* libbladeRF v2.2.0
* bladeRF-cli v1.7.1
* MATLAB & Simulink bindings v1.0.3
* Python bindings v1.1.1
API docs: https://www.nuand.com/bladeRF-doc/libbladeRF/
FX3 firmware: https://www.nuand.com/fx3_images/
FPGA bitstreams: https://www.nuand.com/fpga_images/
Ubuntu PPA: https://launchpad.net/~bladerf/+archive/ubuntu/bladerf
Windows installer: https://www.nuand.com/win_installers/
The major new features in this release candidate are:
- FPGA-based RFIC control for the bladeRF 2.0 micro family
- Quick-tuning support for the bladeRF 2.0 micro family
Summary of changes since 2018.10-rc1:
- FPGA
- Add quick tuning for bladerf2 devices
- Add FPGA-based RFIC control for bladerf2 devices
- libbladeRF
- Fix FPGA image flashing on bladerf2 xA9 devices (#571)
- Fix bladerf_set_gain() being off by a few dB on bladerf1 devices
- Add
biastee_rx
andbiastee_tx
config file options - Add support for quick tuning and FPGA-based RFIC control
- bladeRF-cli
- Fix memory leak in CSV-to-SC16Q11 conversion (#694)
- Update for libbladeRF v2.2.0
- MATLAB & Simulink bindings
- Update for libbladeRF v2.2.0
- Python
- Fix warning on
bladerf-tool info
- Update for libbladeRF v2.2.0
- Fix warning on
2018.10-rc1
2018.10-rc1 (2018-10-30)
This release introduces new functionality and bug fixes, generally expanding
support for the bladeRF 2.0 Micro. It consists of the following versions:
* FPGA bitstream v0.9.0
* FX3 firmware v2.3.1
* libbladeRF v2.1.0
* bladeRF-cli v1.7.0
* MATLAB & Simulink bindings v1.0.2
* Python bindings v1.1.0
Note to bladerf1 (x40/x115) users: AGC will not work with FPGA versions
older than v0.8.0, due to a change in the control register mapping. A warning
will be printed during device initialization if you are using an affected
FPGA version.
API docs: https://www.nuand.com/bladeRF-doc/libbladeRF/
FX3 firmware: https://www.nuand.com/fx3_images/
FPGA bitstreams: https://www.nuand.com/fpga_images/
Ubuntu PPA: https://launchpad.net/~bladerf/+archive/ubuntu/bladerf
Windows installer: https://www.nuand.com/win_installers/
Summary of changes since 2018.08:
-
FPGA
- Support for the ADS-B core on bladeRF micro
- Add metadata flags for miniexp{1,2} IO pin status
- Fix race condition during FX3/Nios UART initialization
- Fix bugs in bladeRF AGC control
- Timing closure improvements
- Build system fixes
-
FX3
- Fix USB device reset interrupting SPI flash autoloading of FPGA images
- Add BLADE_USB_CMD_QUERY_FLASH_ID command
- Add BLADE_USB_CMD_QUERY_FPGA_SOURCE command
-
libbladeRF
- API additions:
- Add format macros for bladerf_frequency and bladerf_timestamp
- Add 'manufacturer' and 'product' device description strings to
bladerf_devinfo struct - Add bladerf_get_serial_struct() API function
- Add bladerf_get_flash_size() API function
- Add bladerf_trigger_signal values for J51-1 (bladerf2) and Miniexp-1
(generic) - Add bladerf_get_fpga_source() API function
- Add meta RX hardware flags for underflow, miniexp{1,2}
- Fixes:
- bladerf2: support TX frequencies down to 47 MHz
- bladerf2: support sample rates down to 0.521 Msps
- bladerf1: fix BLADERF_GPIO_AGC_ENABLE
- bladerf2: fix bladerf_trigger_arm implementation
- streaming: extend USB transfer timeout to match the configured stream
timeout
- Misc:
- Install the doxygen docs, if generated
- Adjust RX gain mode lists for clarity
- bladerf1: implement bladerf_{get,set}_rf_port[s]
- bladerf1: skip initialization if BLADERF_FORCE_NO_FPGA_PRESENT is set
- API additions:
-
bladeRF-cli
- Add libedit support
- Ensure device is initialized after deferred open
- info: display manufacturer, product, flash size
- print: show RF routing on bladerf1
- print: display supported ranges for sample rate, bandwidth, frequency
- probe: handle already-open devices
- version: display FPGA configuration source
-
MATLAB & Simulink bindings
- Add missing BB_TXVGA1_RXLPF loopback option
- Fix tx_gain property handling in simulink
-
Python
- Fix rx_channel_count, tx_channel_count
- Update with latest API functions
-
Windows installer
- install-drivers: install a driver for the bootloader VID/PID (04b4:00f3),
allowing easier FX3 bootloader recovery operations - Upgrade to libusb 1.0.22
- install-drivers: install a driver for the bootloader VID/PID (04b4:00f3),
2018.08
This release introduces new functionality and bug fixes, particularly support
for the bladeRF 2.0 Micro product. It consists of the following versions:
* FPGA bitstream v0.7.3
* FX3 firmware v2.2.0
* libbladeRF v2.0.2
* bladeRF-cli v1.6.1
* MATLAB & Simulink bindings v1.0.1
* Python bindings v1.0.1
*****************************************************************************
*** libbladeRF v2.0 introduces a number of breaking changes !! ***
*****************************************************************************
*** Please see relnotes_2_0 in the Doxygen documentation for a full ***
*** discussion of the changes in libbladeRF v2.0. ***
*****************************************************************************
Summary of changes since 2016.06:
-
FPGA
- Added support for Automatic Gain Control
- Redesign build system to support multiple product models
- Initial release with bladeRF Micro support
- Refactoring, bug fixes, and other misc. improvements
-
FX3
- Add support for the bladeRF 2.0 (2cf0:5250).
- Fix loading FPGA bitstreams from flash when there is nothing connected to
the USB connector. - Move USB descriptor consts to .usbdscr section so the linker glomps them.
-
libbladeRF
- Added support for Automatic Gain Control
- Added bladeRF.conf config option file
- Refactor to support for multiple product lines
- Add support for the bladeRF Micro product
- API: replace bladerf_module with bladerf_channel, a reverse-compatible
change to handle products with multiple independent RF paths in the same
direction - API: BREAKING CHANGE - on bladerf_set_frequency, et al, the frequency
parameter is now uint64_t instead of unsigned int - Add typedefs for common param types, e.g. bladerf_frequency -> uint64_t
-
bladeRF-cli
- Added support for Automatic Gain Control
- No longer initializes the bladeRF before loading a new FPGA image, to
avoid potential catch-22 problems - bladeRF 2.0 Micro support
- Support for MIMO RX and TX using "channel=" parameter on rx/tx config
- Various code quality fixups
-
MATLAB & Simulink bindings
- Add support for bladeRF 2.0 (Micro) products
- Change "not supported" (-8) library errors to Matlab warnings
temporarily, to permit some grace while others' scripts are updated. - Update bladeRF_XCVR to use new unified gain control
- Add bladeRF_Misc for misc measurements and controls
- Update bladeRF_rx_gui to support unified gain
- Update Simulink block to match libbladeRF v2.0.0
-
Python
- New in 2018.08
2016.06
This release introduces new functionality and bug fixes. It consists of the
following versions:
Component | Version |
---|---|
FPGA bitstream | v0.6.0 |
FX3 firmware | v2.0.0 |
libbladeRF | v1.7.2 |
bladeRF-cli | v1.4.0 |
MATLAB & Simulink bindings | v0.1.2 |
New Features
- libbladeRF, bladeRF-cli
- Added SMB clock control functionality
- Added synchronization trigger functionality
- Added XB-300 support
- Added detection for v2.0.0 firmware series (new VID/PID)
- FPGA
- Added synchronization trigger functionality using J71 header (pin 4)
- Added ADSB top-level architecture for out-of-tree ADSB core
- FX3
- 2.x.y series of firmware introduces new VID/PID
- libbladeRF API documentation
- Re-organized into more cohesive sections
- Added additional clarifications and corrections
- Miscellaneous:
- Windows builds updated to search for libusb 1.0.20 by default
- Added GNU Radio Companion loopback example
The following issue tracker items have been closed since 2016.01-rc1:
- Bugs:
- #474: [libbladeRF] Clarify required SMB clock port config prior to trigger API usage
- #470: [libbladeRF] VS2012 Build failure (cannot find stdbool.h)
- #468: BLADERF_FORMAT_SC16_Q11_META docs confusing
- #466: [bladeRF-cli] First open fails when device has incompatible FPGA/FW
- #465: [libbladeRF] TX Timeout Regression
- #462: [invalid] cmake build failure on CentOS 7.2
- #460: [libbladeRF] Explain when (not) to use bladerf_get_timestamp()
- #459: [invalid] [libbladeRF] Build failure reported on MS VS2013
- #458: [libbladerf] assertion failed in sync_worker.c, tx_callback after bug 438 fix
- #457: [libbladeRF] bladerf_sync_tx() clears burst regardless of return
- #454: [debian] bladerf-fpga-hostedx40 leaves bad rbf file around if the download fails
- #453: [bladeRF-cli] Automatic DC Calibration does not appear to apply nominal value
- #450: host/common items missing extern "C" { ... }
- #448: Build broken on big-endian targets
- #446: Wrong loopback mode name for Simulink IF
- #354: [hdl] failure to include STP file due to talkback req ought to be fatal
- Enhancements:
- Other:
- #432: Error building on Pi
Outstanding issue tracker items:
- Bugs:
- #475: [libbladeRF] Windows 10 builds fail if CyFX3 SDK is present
- #473: [Windows][libbladeRF][duplicate] Triggered TX Stalls on Cypress Backend
- #472: [libbladeRF, FX3] bladerf_device_reset() does not allow libbladeRF to close device cleanly
- #471: [nios] VCTCXO Trim DAC Readback is implemented incorrectly
- #464: [bladeRF-cli]
probe
can't access already opened devices (libusb, Windows) - #447: Build broken on MSVC2015 (ptheads timespec conflict)
- #443: [libbladeRF] Cypress backend timeouts & receiving NULL buffers upon transfer completion
- #442: [FX3 Firmware] Jump to bootloader after NULL interface is restored
- #427: [libbladeRF] Cannot set some samplerates returned by bladerf_set_rational_rate()
- #408: [libbladeRF] Device hangs after repeated open/stream/close
- #401: libusb detection fails when x-compiling for Android
- #390: Warning after running rx start when loopback=firmware
- #360: [hdl] Older FPGA revisions no longer build
- #352: [libbladeRF] Intermittent out-of-order transfer callbacks with Windows & libusb 1.0.19
- #301: Direct sampling with XB-200 needs additional improvements
- Enhancements:
- #452: [Simulink] Integrate Signal Specification to RX
- #439: [libbladeRF] Move submit_stream_buffer implementations up a layer. (Has pending PR #467)
- #431: Halfband filtering
- #430: Fs/4 Mix
- #428: Low-rate stream formats
- #416: Add CMake project config files
- #395: [hdl] Timing Closure on LMS6 SPI interface
- #382: 'bladerf_get_serial()' fixed buffer size should be ideally handled in the API
- #321: How about a switch for bladeRF-cli to emit calibration in a format bladeRF-cli can later read?
- #319: [bladeRF-cli] Add libedit and libreadline support
- Other: