Releases: Nuand/bladeRF
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:
2016.01-rc1
This release introduces new functionality and bug fixes. It consists of the
following versions:
Component | Version |
---|---|
FPGA bitstream | v0.5.0 |
FX3 firmware | v1.9.0 |
libbladeRF | v1.5.1 |
bladeRF-cli | v1.3.1 |
MATLAB & Simulink bindings | v0.1.1 |
New Features
- MATLAB & Simulink
- An object-oriented MATLAB interface has been introduced. This is implemented as bindings atop of libbladeRF, and will be maintained alongside libbladeRF in the libbladeRF_bindings/matlab directory.
- Simulink support is provided via the above MATLAB interface and the Simulink System Object block.
- libbladeRF, bladeRF-cli:
- XB-100 support added
- FPGA, libbladeRF, bladeRF-cli:
- A 1.8V 1 PPS or 10 MHz input may be supplied to the device to tame the on-board VCTCXO
- FX3 Firmware, libbladeRF, bladeRF-cli:
- A simple logging mechanism has been introduced. This allows the host to retrieve error codes and the source lines at which they occurred.
- FX3 Firmware:
- Updated for Cypress FX3 SDK v1.3.3
- Miscellaneous:
- Revised and MIT-licensed DC calibration routines are now available in
host/common/
.
- Revised and MIT-licensed DC calibration routines are now available in
- The following issue tracker items have been closed since the 2015.07 release:*
- Pull Requests
- #437: debian: firmware to v1.8.1, fpga to v0.4.1
- #433: Add a libbladeRF helper function for setting the
rx_mux
setting in the FPGA - #424: Add support for setting SMB clock output to arbitrary frequency
- #421: bladeRF-cli improvement and xb-200 filter fixes
- #419: Minimal changeset for bladeRF to build on freebsd
- #381: Rpm packaing [CAA Needed]
- #379: Indent [wontfix]
- #267: Adjust nios simulation component so it matches the synthesis version
- Bugs
- #438: [libbladeRF] bladerf_sync_tx() is limited by # xfers, not # buffers
- #436: [bladeRF-cli][libbladeRF]
cal dc tx
crashes when using Cypress backend - #426: XB-200 Reference Clock and MIMO Master clock are mutually exclusive
- #425: [bladeRF-cli] Perform DC Cal with RX/TX frequencies separated by >= 1 MHz
- #423: [bladeRF-cli] Add 'xb_spi', 'xb_gpio', and 'xb_gpio_dir' to print/set help text
- #422: [bladeRF-cli] Make 'help print' and 'help set' formatting match
- #420: libbladeRF_test: Build broken for big endian hosts
- #417: libbladeRF: Tuning warnings and failures
- #416: [libbladeRF] Format specifier typos in nios_access.c
- #415: [libbladeRF] add/data mismatch in nio_access.c verbose log messages
- #412: [bladeRF-cli] Calibration often fails
- #373: "trap divide error" while generating calibration table in CLI: cal table dc rx
- #362: Calibration table generation hangs, performance issues
- Enhancements
- #414: 10 MHz reference clock support
- #410: [libbladeRF] Provide a separate "Access denied" error code
- #409: [bladeRF-cli] Report file access issues prior to DC cal table procedure
- #387: FPGA GPIO Bindings to BladeRF / Osmocom Library
- #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and implementation
- #236: [libbladeRF] API calls for XB-100 required
- #205: [FX3 Firmware] Code cleanup and potential improvements
- Other:
Outstanding issue tracker items
- Bugs:
- #443: [libbladeRF] Cypress backend 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
- #354: [hdl] failure to include STP file due to talkback req ought to be fatal
- #352: [libbladeRF] Intermittent out-of-order transfer callbacks with Windows & libusb 1.0.19
- #301: Direct sampling with XB-200 needs additional improvements
- Enhancements:
- #439: [libbladeRF] Move submit_stream_buffer implementations up a layer
- #431: Halfband filtering
- #430: Fs/4 Mix
- #428: Low-rate stream formats
- #418: Add CMake project config files
- #403: LibbladeRF support for setting MIMO mode
- #395: [hdl] Timing Closure on LMS6 SPI interface
- #388: [FX3 Firmware] Investigate USB3 drive controls
- #382: 'bladerf_get_serial()' fixed buffer size should be ideally handled in the API
- #344: [fx3] Investigate/fix field checksums
- #328: [libbladeRF] Review and evaluate use of stream lock WRT libusb
- #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
- #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini Expansion Header
- #174: Migrate FX3 build to CMake-generated Makefile