Ettus Research





003.010.000 Build Notes

Build Date

Built with code downloaded on September 15th, 2016.


UHD.dll and the SDR Console must be built with the same version of:

  • Boost (to avoid differences in structure definitions),
  • C runtime library (must be the same as the C runtime is shared via a Microsoft runtime DLL) so:
    • Version 2 is compiled with VS2010,
    • Version 3 is compiled with VS2013.

CMake Fields

These fields must be defined, it may take up to two Configure runs with CMake before all fields are visible. The stages are:

  • Boost - note using Boost 1.61.
  • LIBUSB - currently using 1.0.19 but 1.0.20 also works
  • UHD_IMAGES_DIR - must be selected so this environment variable can be defined.


Field Value 
Boost_INCLUDE_DIR E:/boost_1_61_0
Boost_LIBRARY_DIR E:/boost_1_61_0/lib64-msvc-12.0
LIBUSB_INCLUDE_DIRS E:/libusb-1.0.19/include/libusb-1.0
LIBUSB_LIBRARIES E:/libusb-1.0.19/MS64/static/libusb-1.0.lib


The testing is performed with the images located in the default folder, these must be downloaded and are not shipped with's software (the distribution is far too big). The binary distribution is uhd_003.010.000.000-release/ (16-Aug-2016 19:44). The binary folder is here.

UHD_IMAGES_DIR not yet tested.

Debug Information

Additional Diagnostics are available via DebugView - see V3 Diagnostics. Using the DebugView output is useful should the program crash before you are able to open the logfile.

Two logfiles are available here:

  1. Searching for the B200 from the Radio Definitions window.
  2. Starting the B200. Here the radio is started with a bandwidth of 14MHz, runs for a few seconds and is closed down.


  • Modify the UHD.dll project optimisation options for absolute maximum speed.
  • Apply the UHD update (when available) to support up to 61MHz bandwidth from the B200.

Developer Notes


UHD and the console must be built with the same version of:

  • Boost (to avoid differences in structure definitions),
  • C runtime library (must be the same as the C runtime is shared via a DLL).



Boost kits:

UHD built using:

  • UHD Source 003.010.000
  • Boost 1.58.0

Separate builds for Visual Studio:

  • 2010 
  • 2013

Visual Studio 2010 doesn't compile correctly - Boost_LIBRARY_DIR is ignored, instead select all projects, properties, edit the library paths to include the Boost libraries. Having done this all is OK.

Include Files

The folder host\include\... (include all subfolders) is copied over, version.hpp from host\build\include is also copied into host\include\uhd, version.hpp contains UHD_VERSION_ABI_STRING which is used to print out the version information in the CSDRSourceEttusApp constructor.


The B200 / B210 boards use the Analog Devices AD9361 RFIC with continuous RF coverage from 70 MHz –6 GHz. This is a very interesting board, especially for satellite use.

September 28th, 2014 A B200 is at my home in Cornwall, works very well.


Windows 10

On Windows 10 the B200 was plugged in, using the Device Manager shown as Universal Serial Bus devices\WestBridge. When started for the first time it was updated automatically to show as Universal Serial Bus devices\USRP B200. The same logic applies whenever the B200 is power-cycled.


After plugging your shiny new board into your Windows PC you must run Zadig to install the WinUSB driver for this device (WinUSB already exists on your Windows PC). Zadig is found at . Your B200 / B210 must be shown as Westbridge, if not:

  1. Uninstall the device,
  2. Disconnect the device (unplug the USB3 cable),
  3. Shutdown and restart your computer,
  4. Plug the device back in and try again.


If you have a GPSDO connected you must connect an antenna and wait until it has synchronised (green LED next to the GPSDO indicates the fix).

Toshiba USB sleep-&-charge ports

A user - let's call him Mike - had to disable sleep-&-charge on his Toshiba laptop before the B200 could be detected.

Dos and Don'ts


Make sure you have the correct firmware images on your system.

Do Not

Overwrite / replace the UHD.dll file installed by these kits.

USB3 Cables

To ensure robust operation of the UHD.dll code you must use very high quality USB3 cables. Using USB3 extension cables seems to affect timing inside UHD.dll resulting in the software crashing with an access violation.