Posted by & filed under bladeRF.


If you have accidentally erased your VCTCXO calibration after running kalibrate-bladeRF you can now automatically retrieve your unit’s factory calibration value through our online tool. The tool and instructions can be found at . To retrieve your calibration value you will need your serial number. The simplest way to retrieve your bladeRF’s serial number is to probe the device from the command line by running bladeRF-cli -p.

$ bladeRF-cli -p
 Backend: libusb
 Serial: f12ce1037830a1b27f3ceeba1f521413
 USB Bus: 4
 USB Address: 8


Once the system retrieves your calibration value, you will have to write it back to your bladeRF using bladeRF-cli. The flash_init_cal command takes two arguments, the variant of your bladeRF (x40 or x115) and the calibration value.

The calibration retrieval tool will automatically prepare the flash_init_cal command for your device. For example, serial number f12ce1037830a1b27f3ceeba1f521413 corresponds to a bladeRF x40 with a factory VCTCXO calibration value of 0x7a69. The tool automatically prepared the commands to calibrate the device:

$ bladeRF-cli -i
 bladeRF> flash_init_cal 40 0x7a69

Please see the the sample serial number calibration retrieval for more information,





Posted by & filed under bladeRF.

The 2015.02 release is available on GitHub.

This release mainly fixed up a few build/configuration items remaining after the 2015.01-rc2 update. Thanks go out to mambrus for his CLI help text generator fixes, and to everyone on IRC and the GitHub tracker for providing lots of helpful insight about reported issues. We love it when we see nicely organized and detailed bug reports, so some helpful bug reporting guidelines are provided here.

The Windows installer, its guide and the complete list of installers have been updated accordingly. Windows users will now find that they have the option of using either a Cypress CyUSB3 driver or a libusb-based driver. If you have any trouble with one, it’s definitely worth trying the other (and then keeping us in the loop via the issue tracker). The libbladeRF shipped with the installer supports both drivers.

Just to recap from an earlier blog post, a packaging guide has been added to the bladeRF repository to help out package maintainers. This explains some recommended configuration flags (e.g., -DVERSION_INFO_EXTRA="" -DVERSION_INFO_OVERRIDE=Package-version-here) as well as our versioning and tagging scheme.

If you’re hacking on the codebase, be sure to check out the patch submission guidelines and code conventions to help us expedite the process of getting changes merged upstream.

Admittedly this blog post is a bit belated, so be sure to check out latest developments on our GitHub page. There will be some upcoming fixes and changes for an RC1, either at the end of March or April. The gears are turning on catching up on more documentation and introducing some official examples, so hopefully within the next post or two we’ll have some more updates on that.

As always, all are welcome and encouraged to join us on the forums and the #bladeRF channel on Freenode. Thank you all for making this such an enjoyable project to work on!

Jon (jynik)

Posted by & filed under bladeRF.

A 2015.01-rc2 release candidate has been posted to GitHub.

This update includes a number of libbladeRF fixes and improvements, as well as a few minor bladeRF-cli fixes. Next week we’ll post an updated beta Windows installer and update the Ubuntu PPA.

Thanks to the efforts and suggestions by Cosmin from Null Team and YateBTS, the issue of devices requiring power-on-resets (on some USB 3.0 controllers) after an application exits without closing a bladeRF device handle has been resolved! To GNU Radio Companion users affected by this issue, this means the bladeRF should now happily re-open and continue to operate if you use the (red X) “Kill the flowgraph” button.

To aid those debugging applications which may suppress libbladeRF’s log output to stderr, mambrus provided patches to introduce syslog support to libbladeRF, as well as to control the default verbosity level via a BLADERF_LOG_LEVEL environment variable. As noted by the libbladeRF, syslog can be enabled at compile-time by passing DENABLE_LIBBLADERF_SYSLOG=ON to CMake. This functionaliy is not enabled by default, as to remain consistent with previous versions.

Some additional libbladeRF fixes have resolved some unintended attenuation in the bladeRF’s normal tuning range when using the XB-200 (i.e., with the XB-200 mixer in bypass mode). Another libbladeRF fix addresses some noticeable spectral images that could be observed prior to running any of the LMS6002D DC calibration routines.

While working on his Haskell bindings, victoredwardocallaghan identified and provided a fix for some bladeRF-cli documentation build issues on NixOS. Arch Linux users may have also experienced this when building the bladeRF-cli interactive help and manual page. Should anyone continue to see issues here, please let us know via the issue tracker.

As always, thank you to everyone on #bladeRF (Freenode), the Nuand forums, GitHub, etc., (and whomever I inevitably forgot to thank above) who has kindly offered suggestions/fixes, advice, and reported issues. It’s a huge help, and we really appreciate it!

– Jon (jynik)

Posted by & filed under bladeRF.

A 2014.12-rc1 release candidate has been posted to GitHub.

This update just ties up some loose ends pertaining to the Cypress driver backend (for Windows), and adds a couple libbladeRF API calls for identifying devices in bootloader mode and downloading firmware to them.

A corresponding beta Windows installer has been posted here and linked to from the installers page. This includes the option to use either the libusb (WinUSB) driver or CyUSB3 driver.

Have a wonderful and safe holiday season folks!

– Jon (jynik)

Posted by & filed under bladeRF.

The 2014.11 release has been posted to GitHub.

This release is intended to be a relatively stable point for package maintainers and application developers to base their work upon.

As noted on the aforementioned release page, some important fixes have been included:

  • libbladeRF now waits for SPI flash autoloading to complete when opening a device. This requires FX3 Firmware v1.8.0. If you’re using flash-based FPGA autoloading, you may be interested in trying out host-based FPGA autoloading.
  • FPGA v0.1.2 includes fixes in timestamp functionality.
  • An issue causing SPI flash corruption when using libusb with the WinUSB driver has been addressed. Some users encountered this with the 2014.11-RC3 installer and had to recover from the bootloader.

As denoted by the libbladeRF version bump to v1.0.0, the API is now being treated as “stable,” meaning that its users can operate under the assumption that no further reverse-incompatible changes will be made within the 1.x.x series. There are no plans to introduce any changes that would warrant a version bump to 2.x.x in forseeable future.

libbladeRF 1.0.0 API documentation has been uploaded to the Nuand website, and is linked from the Support page. This Support page link will be updated with each successive libbladeRF update, but older documentation will remain on the site for reference.

The Windows installer and its associated instructions have been updated. The Ubuntu PPA has also been updated, thanks to Ryan!

For those looking to contribute, a few helpful documents have been added to the source tree:

As always, thank you so much to everyone who has contributed bug reports, fixes, feedback, and suggestions. It is greatly appreciated!

– Jon (jynik)