This release candidate build has a number of fixes since 2018.08. You can check out the CHANGELOG for the full list, but some of the highlights from the past few months are below.
New with FPGA v0.9.0,
- Support for the ADS-B core on the bladeRF 2.0 Micro.
- New bladerf_metadata flags for communicating RX status: BLADERF_META_FLAG_RX_HW_UNDERFLOW (asserted when an underflow is detected in the sample buffering system) and _MINIEXP1 and _MINIEXP2 (indicating the logic level of the miniexp and miniexp pins).
- Improvements to timing closure on the FPGA images.
- Fixes an apparent race condition causing corrupted command response data from the Nios to the FX3 under some circumstances (notably USB 2.0 on the bladeRF micro)
- 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
- Added bladerf_get_serial_struct(), which is a safer alternative to the bladerf_get_serial() function.
- Added bladerf_get_flash_size(), to return the size of the FPGA on a device
- Added bladerf_get_fpga_source(), to determine how the running FPGA was loaded (either via USB host or SPI flash)
- Added the manufacturer and product device descriptions from the USB enumeration into the bladerf_devinfo struct
- bladerf2: now supports TX center frequencies down to 47 MHz. With a 56 MHz bandwidth, this gets the lowest edge of the transmit band down to 19 MHz (or just below the 15-meter ham band). Anyone doing WSPR? This adds the 15, 12, and 10-meter amateur radio bands...! (Note: minimum RX center frequency is still 70 MHz. I tried.)
- bladerf2: also supports sample rates down to 0.521 Msps. This is done using the RFIC's built-in decimating/interpolating programmable FIR filter, which will probably be explained in its own blog post soon.
- streaming: previously, there was no way to set the USB transfer timeout, just the stream timeout. This made things like triggered RX very difficult, since the pending USB transfers would time out long before any human could issue a pulse to trigger RX. So, now the USB transfer timeout is increased to match the stream timeout.
- Doygen docs now get installed to the usual place for your system, if built.
- Support for libedit, as an alternative to libtecla
- Fixes for handling deferred opens (e.g. when loading an FPGA bitstream from the command line, then going into interactive mode)
- More display of useful (?) information on print, including the acceptable ranges of the sample rate, bandwidth, and frequency.
- Installs a driver on the bootloader VID/PID (04b4:00f3), allowing easier FX3 bootloader recovery (no more zadig, now it's just like Linux!)
- Upgrade to libusb 1.0.22
For bugs and other code defects, please open an issue at https://github.com/Nuand/bladeRF/issues so that we can ensure it gets triaged quickly. For anything else, feel free to post here in the forums, or e-mail us at the "bladeRF" address at nuand dot com.