================================================================================
bladeRF Project Change Log Summary

For more detailed information, please see the git change log and issue tracker
hosted on GitHub: https://github.com/nuand/bladeRF
================================================================================

--------------------------------------------------------------------------------
 2016.06 (2016-06-29)
--------------------------------------------------------------------------------

This release introduces new functionality and bug fixes. It consists of the
following versions:

    * 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
        + https://github.com/nuand/bladeRF-adsb

* 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 2015.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

    * Enhancement:
        - #463: Adding SignalTap in scripted build
        - #403: LibbladeRF support for setting MIMO mode
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #174: Migrate FX3 build to CMake-generated Makefile

    * 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:
        - #388: [FX3 Firmware] Investigate USB3 drive controls
        - #344: [fx3] Investigate/fix field checksums
        - #328: [libbladeRF] Review and evaluate use of stream lock WRT libusb

--------------------------------------------------------------------------------
 2016.01-rc1 (2016-01-07)
--------------------------------------------------------------------------------

This release introduces new functionality and bug fixes. It consists of the
following versions:

    * 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/.


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:
        - #399: Update libbladeRF and FX3 FIrmware for Cypress FX3 SDK 1.3.3
                support
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB
                support [wontfix]
        - #240: [libbladeRF] Prefer static assertion over assert() when
                possible

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

--------------------------------------------------------------------------------
 2015.07 (2015-07-25)
--------------------------------------------------------------------------------

This release introduces minor feature additions and bug fixes.  It consists of
the following versions:

    * FPGA bitstream v0.3.4
    * FX3 firmware   v1.8.0
    * libbladeRF     v1.4.3
    * bladeRF-cli    v1.2.1


New Features:

    * libbladeRF:
         - bladerf_open() and bladerf_open_with_devinfo() support matching a
           device via a subset of its serial number.

           For example, the bladeRF-cli uses bladerf_open() to open a specifed
           device, so the following can now be used to open a device with the
           serial number, f12ce1037830a1b27f3ceeba1f521413:

                bladeRF-cli -i -d "*:serial=f12"

    * Miscellaneous
        - Added Octave/MATLAB routines to import/export data from files
          containing complex samples from GNU Radio.


The following tracker items have been closed since the 2015.06-rc1 release:

    * Pull Requests:
        - #402: fixup debian/changelog

    * Bugs:
        - #413: [libbladeRF] Bursts must end with 3 zero samples, not 2.
        - #411: [libbladeRF] File search uses hardcoded /usr/share and /etc,
                should use install prefix
        - #405: lms.c: Fail to correctly exit loopback mode for f >= 1.5 GHz
        - #404: [libbladeRF] XB-200 filter bank selection regression in 41476cb
        - #400: [hdl] ATSC FPGA build broken

    * Enhancements:
        - #396: [libbladeRF] Match a subset of serial number

    * Other:
        - #407: Setting Loopback resets/changes Rx module frequency [duplicate]
        - #406: Persistent timeouts after using API [invalid]
        - #397: [libbladeRF] API call to reset timestamps [wontfix]


Outstanding issue tracker items:

    * Pull Requests:
        - #381: RPM packaging
        - #379: Indent
        - #267: Adjust nios simulation component so it matches the
                synthesis version

    * Bugs:
        - #412: [bladeRF-cli] Calibration often fails
        - #408: [libbladeRF] Device hangs after repeated open/stream/close
        - #401: libusb detection fails when x-compiling for Android
        - #400: [hdl] ATSC FPGA build broken
        - #399: Update libbladeRF and FX3 Firmware for Cypress FX3 SDK 1.3.3
                support
        - #395: [hdl] Timing Closure on LMS6 SPI interface
        - #390: Warning after running rx start when loopback=firmware
        - #373: "trap divide error" while generating calibration table in
                CLI: cal table dc rx
        - #362: Calibration table generation hangs, performance issues
        - #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
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB support
        - #321: How about a switch for bladeRF-cli to emit calibration in a
                format bladeRF-cli can later read?
        - #301: Direct sampling with XB-200 needs additional improvements

    * Enhancements:
        - #410: [libbladeRF] Provide a separate "Access denied" error code
        - #409: [bladeRF-cli] Report file access issues prior to DC cal table
                procedure
        - #403: LibbladeRF support for setting MIMO mode
        - #387: FPGA GPIO Bindings to BladeRF / Osmocom Library
        - #382: 'bladerf_get_serial()' fixed buffer size should be ideally
                handled in the API
        - #386: android usb bindings
        - #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and
                implementation
        - #344: [fx3] Investigate/fix field checksums
        - #328: [libbladeRF] Review and evaluate use of stream lock WRT libusb
        - #319: [bladeRF-cli] Add libedit and libreadline support
        - #240: [libbladeRF] Prefer static assertion over assert() when possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #174: Migrate FX3 build to CMake-generated Makefile

    * Other:
        - #388: [FX3 Firmware] Investigate USB3 drive controls

--------------------------------------------------------------------------------
 2015.06-rc1 (2015-06-30)
--------------------------------------------------------------------------------

This release introduces new features and bug fixes.  It consists of the
following versions:

    * FPGA bitstream v0.3.3
    * FX3 firmware   v1.8.0
    * libbladeRF     v1.4.0
    * bladeRF-cli    v1.2.0

New Features:

    * FPGA & libbladeRF:
        - Configurable tuning modes: host and fpga
        - Scheduled retune: retune module at specified sample timestamp
        - Quick retune: retune using previously identified tuning parameters
        - Readback of current VCTCXO trim DAC setting

    * bladeRF-cli:
        - Semicolon command separators
        - Added 'print trimdac' implementation


The following tracker items have been closed since the 2015.02 release:

    * Pull Requests:
        - #383: rm dead code from xb.c
        - #358: bladeRF-cli: Can now specify multiple commands separated by
                semicolon
        - #313: merge dev-quartus14 branch

    * Bugs:
        - #394: Cannot switch from XB-200 "auto" back to a specific band
        - #385: libbladeRF: TX PLL Instability @ 1.8602 GHz
        - #384: Documentation bug
        - #380: bladerf_set_tx_gain() is a deprecated symbol

    * Enhancements:
        - #398: [libbladeRF] VCTCXO readback support
        - #393; [libbladeRF] Migrate to new NIOS packet handler formats
        - #392: [nios] Implement pkt_<addr width>x<data width> handlers.
        - #391: [FPGA] Custom LMS6002D SPI controller
        - #380: bladerf_set_tx_gain() is a deprecated symbol
        - #378: [libbladeRF] Support zero-padding within a timestamped burst
        - #345: [bladeRF-cli] Accept semi-colon command delimeters
        - #282: [libbladeRF] Move get/set_lms_correction() and
                 get/set_fpga_correction() logic
        - #213: CLI should show sample file information for TX [wontfix]
        - #200: Reserved addresses for firmware customization

    * Other:
        - #389: libbladeRF: Investigate LMS6002D OFFUP/OFFDOWN values
        - #377: Timeout trying to update from firmware 1.5.3


Outstanding issue tracker items:

    * Pull Requests:
        - #381: RPM packaging
        - #379: Indent
        - #267: Adjust nios simulation component so it matches the
                synthesis version

    * Bugs:
        - #401: libusb detection fails when x-compiling for Android
        - #400: [hdl] ATSC FPGA build broken
        - #399: Update libbladeRF and FX3 FIrmware for Cypress FX3 SDK 1.3.3
                support
        - #395: [hdl] Timing Closure on LMS6 SPI interface
        - #390: Warning after running rx start when loopback=firmware
        - #373: "trap divide error" while generating calibration table in
                CLI: cal table dc rx
        - #362: Calibration table generation hangs, performance issues
        - #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
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB support
        - #321: How about a switch for bladeRF-cli to emit calibration in a
                format bladeRF-cli can later read?
        - #301: Direct sampling with XB-200 needs additional improvements

    * Enhancements:
        - #397: [libbladeRF] API call to reset timestamps
        - #396: [libbladeRF] Match a subset of serial number
        - #387: FPGA GPIO Bindings to BladeRF / Osmocom Library
        - #382: 'bladerf_get_serial()' fixed buffer size should be ideally
                handled in the API
        - #386: android usb bindings
        - #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and
                implementation
        - #344: [fx3] Investigate/fix field checksums
        - #328: [libbladeRF] Review and evaluate use of stream lock WRT libusb
        - #319: [bladeRF-cli] Add libedit and libreadline support
        - #240: [libbladeRF] Prefer static assertion over assert() when possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #174: Migrate FX3 build to CMake-generated Makefile

    * Other:
        - #388: [FX3 Firmware] Investigate USB3 drive controls

--------------------------------------------------------------------------------
 2015.02 (2015-02-28)
--------------------------------------------------------------------------------

This release introduces build fixes. It consists the following versions:
    * FPGA bitstream v0.1.2
    * FX3 firmware v1.8.0
    * libbladeRF v1.2.1
    * bladeRF-cli v1.1.2

The following tracker items have been closed since the 2015.01-rc2 release:
    * Pull Requests:
        - #376: Code-generator for bladeRF-CLI made more robust

    * Bugs:
        - #375: Build error - missing defines
        - #374: Several issues when cross compiling host tools and libs for
                windows on a linux system via MinGW
        - #369: Interactive documentation fails to compile

    * Other:
        - #377: Timeout trying to update from firmware 1.5.3 (invalid)


Outstanding issue tracker items:

    * Pull Requests:
        - #358: bladeRF-cli: Can now specify multiple commands separated by
                semicolon
        - #313: merge dev-quartus14 branch
        - #267: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #373: "trap divide error" while generating calibration table in
                CLI: cal table dc rx
        - #372: Calibration table generation hangs, performance issues
        - #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
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB support
        - #301: Direct sampling with XB-200 needs additional improvements

    * Enhancements:
        - #378: [libbladeRF] Support zero-padding within a timestamped burst
        - #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and
                implementation
        - #345: [bladeRF-cli] Accept semi-colon command delimeters
        - #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
        - #282: [libbladeRF] Move get/set_lms_correction() and
                 get/set_fpga_correction() logic
        - #240: [libbladeRF] Prefer static assertion over assert() when
                possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using
                MiniExpansion Header
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #174: Task: Migrate FX3 build to CMake-generated Makefile

--------------------------------------------------------------------------------
 2015.01-rc2 (2015-01-31)
--------------------------------------------------------------------------------

This release candidate introduces a number of libbladeRF fixes and
improvements, as well as some minor bladeRF-cli fixes. See the CHANGELOG files
associated with these items for more details.

This release consists of the following versions:
    * FPGA bitstream v0.1.2
    * FX3 firmware v1.8.0
    * libbladeRF v1.2.0
    * bladeRF-cli v1.1.1

Major changes include:
    * libbladeRF fix for issue #95, in which device required power-on reset
      after an application crashed without properly closing the device handle.
    * libbladeRF changes to initial LMS state address signal quality issues
    * BLADERF_LOG_LEVEL environment variable and optional syslog support have
      been added to libbladeRF.
    * Documentation build fix for bladeRF-cli.

The following tracker items have been closed since the 2014.12-rc1 release:
    * Pull Requests:
        - #371: NixOS distro build fixes
        - #340: On non-Windows systems, send logs to syslog & stderr.

    * Bugs:
        - #372: [libbladeRF] Signal attenuation with XB-200
        - #370: [libbladeRF] LMS DC calibration settings stored in calibration
                tables only gets loaded once
        - #366: [libbladeRF] Power down DC calibration comparators to improve
                signal quality
        - #365: host: Don't redefine inline unless __cplusplus is defined
        - #364: libbladeRF: Can't probe for already opened device when using
                CyUSB backend
        - #95: linux kernel/FX3: Not enough bandwidth for altsetting

    * Enhancements:
        - #343: [libbladeRF] Name worker threads (wontfix)

    * Other:
        - #368: Make BLADERF_ERR_* a enum type (wontfix)
        - #367: Make FPGA Autoloading fault tolerant (invalid)
        - #363: FPGA bitstream autoload fails occasionally (invalid)

Outstanding pull requests, tasks, enhancement requests, and known issues are
listed below. Please see the issue tracker for up-to-date information on
these and their associated schedules.

    * Pull Requests:
        - #358: bladeRF-cli: Can now specify multiple commands separated by
                semicolon
        - #313: merge dev-quartus14 branch
        - #267: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #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
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB support
        - #301: Direct sampling with XB-200 needs additional improvements

    * Enhancements:
        - #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and
                implementation
        - #345: [bladeRF-cli] Accept semi-colon command delimeters
        - #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
        - #282: [libbladeRF] Move get/set_lms_correction() and
                 get/set_fpga_correction() logic
        - #240: [libbladeRF] Prefer static assertion over assert() when
                possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using
                MiniExpansion Header
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #174: Task: Migrate FX3 build to CMake-generated Makefile

--------------------------------------------------------------------------------
 2014.12-rc1 (2014-12-23)
--------------------------------------------------------------------------------

This release candidate introduces some minor additions to libbladeRF and the
bladeRF-cli program. See the CHANGELOG items associated with these items for
more details.

This release consists of the following versions:
    * FPGA bitstream v0.1.2
    * FX3 firmware v1.8.0
    * libbladeRF v1.1.0
    * bladeRF-cli v1.1.0

Major changes include:
    * Introduction of libbladeRF support for bootloader detection and recovery.
      With this change, the Cypress backend should now be fully-functional.
    * Added libbladeRF file search path options (e.g., for host-based FPGA
      autoloading).
    * Moved message about detecting devices in bootloader mode to bladeRF-cli.
      This was original printed by some lower-level libbladeRF code, and deemed
      more appropriately located in the bladeRF-cli program.

The following tracker items have been closed since the 2014.11 release:

    * Enhancement requests:
        - #361: Make bladeRF-cli --probe vary its exit status based on whether
                a device was found or not
        - #359: [libbladeRF] Migrate bootloader recovery support to libbladeRF
        - #349: [libbladeRF] Add current directory and env vars to file search
                path


Outstanding pull requests, tasks, enhancement requests, and known issues are
listed below. Please see the issue tracker for up-to-date information on
these and their associated schedules.

    * Pull Requests:
        - #358: bladeRF-cli: Can now specify multiple commands separated by
                semicolon
        - #340: On non-Windows systems, send logs to syslog & stderr.
        - #313: merge dev-quartus14 branch
        - #267: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #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
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB
                support
        - #301: Direct sampling with XB-200 needs additional improvements
        - #95:  linux kernel/FX3: Not enough bandwidth for altsetting

    * Enhancements:
        - #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and
                implementation
        - #345: [bladeRF-cli] Accept semi-colon command delimeters
        - #344: [fx3] Investigate/fix field checksums
        - #343: [libbladeRF] Name worker threads
        - #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
        - #282: [libbladeRF] Move get/set_lms_correction() and
                 get/set_fpga_correction() logic
        - #240: [libbladeRF] Prefer static assertion over assert() when
                possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using
                MiniExpansion Header
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #174: Task: Migrate FX3 build to CMake-generated Makefile



--------------------------------------------------------------------------------
 2014.11 (2014-11-30)
--------------------------------------------------------------------------------

This release introduces a stable libbladeRF API and various fixes.

No further reverse-incompatible API changes are currently scheduled. Should such
changes be required in the future, they will be denoted through a major version
number increment.

This release consists of the following versions:
    * FPGA bitstream v0.1.2
    * FX3 firmware v1.8.0
    * libbladeRF v1.0.0
    * bladeRF-cli v1.0.0


Major fixes include:
    * libbladeRF now waits for SPI flash autoloading to complete when
      opening a device. This requires FX3 Firmware v1.8.0.
    * 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.


The following issue tracker items have been closed since the 2014.11-rc3
release:

    * Pull requests:
        - #357: debian: split udev rule into its own package
        - #356: debian package updates for libbladerf1
        - #350: debian: fw 1.8.0, fpga 0.1.2, HTTPS
        - #338: debian: allow libtecla-dev to satisfy build deps

    * Bugs:
        - #355: [libbladeRF] Windows firmware flashing fails with WinUSB
        - #351: [libbladeRF] Device locks up when simultaneously tuning freq
                and RX'ing
        - #348: [Windows] Cypress backend causes build failures in VS2010
        - #347: [libbladeRF] Header issue in Windows
        - #341: LMS Failures persist after FPGA v0.1.1
        - #339: [libbladeRF] file_ops.c should use $HOME before getpwuid()
        - #337: host: Windows builds should copy license files into output
                directory
        - #336: [libbladeRF] Loading calibration tables does not set LMS DC cal
                registers
        - #335: [hdl] Initial bursts with TX_NOW corrupted
        - #334: [hdl] Bursts corrupted when switching between TX_NOW and
                scheduled bursts
        - #333: [Cygwin] libusb and libc version checks fail to compile
        - #332: Build fails in Cygwin
        - #325: Calibration issue: "cal: Invalid module provided (lms)"
                [Invalid]
        - #320: BladeRF USB crashes on Beaglebone Black, Ubuntu 14.04
                [Invalid]
        - #318: Board occasionally fails to boot on computer power up [Invalid]
        - #317: FPGA autoload fails when USB device is open before FPGA is
                fully configured
        - #307: [hdl] RX and TX timestamp offset variation
        - #304: [bladeRF-cli] TX DC autocalibration/correction fails
        - #291: Missing RX Samples
        - #265: [hdl] Incorect metadata position in the RX Stream

    * Enhancements:
        - #105: Develop testing guidelines on new releases

Outstanding pull requests, tasks, enhancement requests, and known issues are
listed below. Please see the issue tracker for up-to-date information on
these and their associated schedules.


    * Pull Requests:
        - #358: bladeRF-cli: Can now specify multiple commands separated by
                semicolon
        - #340: On non-Windows systems, send logs to syslog & stderr.
        - #313: merge dev-quartus14 branch
        - #257: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #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
        - #342: [Installer] Windows installer doesn't ship 32-bit MATLAB support
        - #301: Direct sampling with XB-200 needs additional improvements
        - #95: linux kernel/FX3: Not enough bandwidth for altsetting

    * Enhancements:
        - #353: [bladeRF-cli, libbladeRF] Improve jump_to_boot docs and
                implementation
        - #349: [libbladeRF] Add current directory and env vars to file search
                path
        - #345: [bladeRF-cli] Accept semi-colon command delimeters
        - #343: [libbladeRF] Name worker thread
        - #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
        - #282: [libbladeRF] Move get/set_lms_correction() and
                get/set_fpga_correction() logic
        - #240: [libbladeRF] Prefer static assertion over assert() when possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #174: Task: Migrate FX3 build to CMake-generated Makefile

--------------------------------------------------------------------------------
 2014.11-rc3 (2014-10-30)
--------------------------------------------------------------------------------

This 2014.11-rc3 release candidate introduces the remaining functionality
originally intended for a 2014.09 release, as well as a number of improvements
and bug fixes. As denoted by the name, the release has been rescheduled for
November 2014.

This release candidate consists of the following versions:
    * FPGA bitstream v0.1.1
    * FX3 firmware v1.7.1
    * libbladeRF v0.17.0
    * bladeRF-cli v0.12.0

Major changes and additions include:
    * Timestamp metadata support for the libbladeRF synchronous interface
        - Example code is included in the API documentation and available
          in the libbladeRF/doc/examples directory.
        - This is tightly-coupled with functionality and fixes introduced
          by FPGA v0.1.1.

    * A majority of libbladeRF functions have been made thread-safe.

    * libbladeRF support for a Cypress CyUSB3/CyAPI-based backend
        - This backend has been found to be a useful alternative on some
          systems with USB3 controllers that exhibit issues with the libusb
          backend implementation.

    * Fixes for LMS DC calibration issues
        - FPGA fixes in v0.1.1 have addressed a timing issue that corrupted
          LMS register readbacks. This fixes issue #269, in which LMS DC
          calibration registers would become corrupted and read back as 31's.
        - A bladeRF-cli change in v0.12.0 fixed issue #304, where TX DC
          calibration would fail, reporting that invalid values were
          encountered.

The remaining window of time up to the first official release is intended for
documentation improvements and bug fixes. New features or major changes will be
held off until the following cycle; they may be staged in a master-next branch
if needed.

The following issue tracker items have been closed since 2014.09-rc2. Issues
are listed first, with associated pull request items second, if relevant.

    * Pull requests:
        - #326: only use the relative path for logging .c filenames; enable it
                by default
        - #308: Allow #-style comments in bladeRF-cli
        - #303: libbladeRF: update README cmake options
        - #293: debian: update changelog w/ 2014.09-rc{1,2}

    * Bugs:
        - #336: [libbladeRF] Loading calibration tables does not set LMS DC cal
                registers
        - #333: [Cygwin] libusb and libc version checks fail to compil
        - #332: Build fails in Cygwin
        - #331: [libbladeRF] Enforce exclusive device access in Cypress backend
        - #330: [libbladeRF] Cannot open multiple devices via 'open any' request
        - #329: [cmake] 34151f6 breaks configuration for some CMake versions
        - #327: [libbladeRF] It is possible to get "stuck" with an FPGA < v0.0.1
        - #325: Calibration issue: "cal: Invalid module provided (lms)"[Invalid]
        - #324: [libbladeRF] Deadlock in bladerf_sync_tx on Windows
        - #323: [libbladeRF] bladerf_sync_config() does not set
                dev->transfer_timeout[module]
        - #322: [libbladeRF] libusb.c doesn't check for timeout_ms = 0 in buffer
                submission
        - #320: BladeRF USB crashes on Beaglebone Black, Ubuntu 14.04 [Invalid]
        - #318: Board occasionally fails to boot on computer power
                up [Invalid]
        - #309: [libbladeRF] XB-100 attach shouldn't succeed
        - #305/#306,#315: mingwbuild of libbladeRF fails on file_ops.c(ShlObj.h)
        - #304: [bladeRF-cli] TX DC autocalibration/correction fails
        - #295/#296: Update references to bladeRF-flash in top-level README.md
                     and man page(s)
        - #292/#296: cmake ignores user input
        - #291: Missing RX Samples
        - #290/#294: [bladeRF-cli] TX help typo
        - #285/#298: [libbladeRF] Update CMake options in README.md
        - #283: "bladeRF-cli --version" hangs and segfaults on Debian 7 in
                Virtualbox
        - #279: [libbladeRF] MACOSX_RPATH is not specified
        - #278: cmd_help.h generator breaks osx build
        - #277: bladeRF-cli: Make 'print <parameter>' output more consistent
        - #269: [libbladeRF] RXVGA2 DC autocalibration intermittently returns 31
                for all values
        - #260: [hdl] RX I Samples value 0
        - #255: Avoid obsolete samples in the RX Stream

    * Enhancements:
        - #314: "make uninstall" cannot find install manifest
        - #312: [libbladeRF] Regression in USB 2.0 operation
        - #311/316: [bladeRF-cli] Move FPGA and device handle checks to common
                    code in cmd.c
        - #310: [libbladeRF] Add suport for disabling an XB [Won't Fix]
        - #299: Task: Provide .md5 and .sha256sum files with pre-built binaries
        - #289: libusb/windows. (Version compatibity)
        - #288/#302: [bladeRF-cli] XB-200 Filterbank Control
        - #252: [bladeRF-cli] Migrate rx/tx command implementations to
                libbladeRF's sync i/f
        - #250: [libbladeRF] Implement Cypress API-based backend

Outstanding pull requests, tasks, enhancement requests, and known issues as
of RC3 listed below. Please see the issue tracker for up-to-date information on
these and their associated schedules.

    * Pull requests:
        - #313: merge dev-quartus14 branch
        - #267: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #335: [hdl] Initial bursts with TX_NOW corrupted
        - #334: [hdl] Bursts corrupted when switching between TX_NOW and
                      scheduled bursts
        - #317: FPGA autoload fails when USB device is open before FPGA is
                fully configured
        - #307: [hdl] RX and TX timestamp offset variation
        - #301: Direct sampling with XB-200 needs additional improvements
        - #265: [hdl] Incorect metadata position in the RX Stream
        - #95:  Linux kernel/FX3: Not enough bandwidth for altsetting

    * Enhancements:
        - #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
        - #282: [libbladeRF] Move get/set_lms_correction() and
                get/set_fpga_correction() logic
        - #240: [libbladeRF] Prefer static assertion over assert() when possible
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #174: Task: Migrate FX3 build to CMake-generated Makefile
        - #105: Develop testing guidelines on new releases

--------------------------------------------------------------------------------
 2014.09-rc2 (2014-07-24)
--------------------------------------------------------------------------------

Since 2014.09-rc1, there have been a number of bug fixes.  We wanted to ensure
these fixes were provided at a relatively stable "snapshot" in the codebase,
prior to introducing a slightly large of set of internal changes required
to provide the timestamp support and thread-safety.

As such, these changes are have been marked `2014.09-rc2`, and the late-August
milestone has been been renamed to `2014.09-rc3`. The objectives for the
late-August and September and milestones remain.

This release candidate consists of the following versions:
    * FPGA bitstream v0.0.6
    * FX3 firmware v1.7.1
    * libbladeRF v0.16.2
    * bladeRF-cli v0.11.1

In addition to continued fixes and minor improvements, the remaining
major functionality, now scheduled for RC3 is:
    * Metadata/timestamp support for the libbladeRF synchronous interface
    * Experimental Cypress driver-based libbladeRF backend for Windows

The above items will add additional items to the libbladeRF API, but will not
introduce any reverse-incompatible changes.

The items scheduled for deprecation are largely the same since 2014.09-rc1
    * bladeRF-flash has been removed as of 2014.09-rc2
    * libbladeRF's BLADERF_FORMAT_SC16Q11 will be removed prior to 2014.09-rc3

Outstanding tasks and known issues, as of RC2, are listed below. Note that not
all of these are scheduled for resolution by 2014.09. Please see the milestone
and tracker information GitHub for more information.

    * Pull requests:
        - #277: [bladeRF-cli] Make 'print <parameter>' output more consistent
        - #267: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #290: [bladeRF-cli] TX help typo
        - #285: [libbladeRF] Update CMake options in README.md
        - #260: [hdl] RX I Samples value 0
        - #224: Report error code for incompatible version sets
        - #95:  Linux kernel/FX3: Not enough bandwidth for altsetting

    * Enhancements:
        - #282: [libbladeRF] Move get/set_lms_correctiion() and
                get/set_fpga_correction() logic
        - #252: [bladeRF-cli] Migrate rx/tx command implementations to
                libbladeRF's sync i/f
        - #250: [libbladeRF] Implement Cypress API-based backend
        - #240: [libbladeRF] Prefer static assertion over assert() when possible
        - #238: [libbladeRF] Integrate timestamp/metadata support
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #219: libbladeRF: bladerf_init_stream parameter order is inconsistent
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #199: Remove magic numbers for GPIO addresses from
                lms_spi_controller.c
        - #190: [libbladeRF] Refactor bladerf_priv.c
        - #174: Task: Migrate FX3 build to CMake-generated Makefile
        - #166: debian: Auto-download appropriate firmware/FPGA images from
                nuand.com during install
        - #105: Develop testing guidelines on new releases



--------------------------------------------------------------------------------
 2014.09-rc1 (2014-07-05)
--------------------------------------------------------------------------------

This is the first of two release candidates for a 2014-09 release. RC1 consists
of the following component versions:

    FPGA bitstream  v0.0.5
    FX3 Firmware    v1.7.0
    libbladeRF      v0.16.0
    bladeRF-cli     v0.11.0

This release candidate provides a majority of the functionality scheduled for
the 2014.09 release. The remaining functionality, scheduled for RC2 is:

    * Metadata/timestamp support for the libbladeRF synchronous interface
    * Detection and reporting of incompatible firmware/FPGA versions
    * Experimental Cypress driver-based libbladeRF backend for Windows

The above items will add additional items to the libbladeRF API, but will not
introduce any reverse-incompatible changes.


The following items are schedule for deprecation and removal prior to the
2014.09-rc2 release:

    * bladeRF-flash utility
        - A majority of the functionality provided in this program now overlaps
          with bladeRF-cli. This program was used to ease the burden associated
          with some very early firmware upgrades.

          However, for firmware upgrade issues, the well-documented bootloader
          approach is now preferred. This, combined with efforts to have
          libbladeRF be more explicit about version mismatches, should eliminate
          any remaining need for this program.

    * libbladeRF's BLADERF_FORMAT SC16_Q12 reverse compatibility macro
        - The format is now more appropriately named BLADERF_FORMAT_SC16_Q11.
          Ensure you've replaced references to the old enumeration value.


Outstanding tasks and known issues, as of RC1, are listed below. Note that not
all of these are scheduled for resolution by 2014.09. Please see the milestone
and tracker information GitHub for more information.

    * Pull requests:
        - #270: Markdown-ify the bladeRF-cli interactive help
        - #267: Adjust nios simulation component so it matches the synthesis
                version

    * Bugs:
        - #265: [hdl] Incorect metadata position in the RX Stream
        - #260: [hdl] RX I Samples value 0
        - #255: Avoid obsolete samples in the RX stream
        - #224: Report error code for incompatible version sets
        - #95:  Linux kernel/FX3: Not enough bandwidth for altsetting

    * Enhancements:
        - #252: [bladeRF-cli] Migrate rx/tx command implementations to
                libbladeRF's sync i/f
        - #250: [libbladeRF] Implement Cypress API-based backend
        - #240: [libbladeRF] Prefer static assertion over assert() when possible
        - #238: [libbladeRF] Integrate timestamp/metadata support
        - #236: [libbladeRF] API calls for XB-100 required
        - #221: Synchronized Tx/Rx of multiple bladeRFs for MIMO using Mini
                Expansion Header
        - #219: libbladeRF: bladerf_init_stream parameter order is inconsistent
        - #213: CLI should show sample file information for TX
        - #205: [FX3 Firmware] Code cleanup and potential improvements
        - #200: Reserved addresses for firmware customization
        - #199: Remove magic numbers for GPIO addresses from
                lms_spi_controller.c
        - #190: [libbladeRF] Refactor bladerf_priv.c
        - #174: Task: Migrate FX3 build to CMake-generated Makefile
        - #166: debian: Auto-download appropriate firmware/FPGA images from
                nuand.com during install
        - #105: Develop testing guidelines on new releases
