Ettus Research

Ettus Research

UHD 3.15 LTS

February 15th, 2020 (version 3.0.21)
This is a major upgrade of the support for Ettus Research:
  • Codebase  now uses 3.15 LTS (long term support), previous codebase was 3.10.0,
  • UHD source optimised to improve throughput for B2x0,
  • Receive runs smoother,
  • Should support all Ettus hardware except the E3x0 and X3x0, tested with N210, B200 and X310 (see below).
Do ✓
Copy and install the 3.15 images from the Ettus website (see below)

Do Not ✗
Overwrite UHD.dll - this will not work!

E310  ✗

The E310 series is confirmed as not working with 3.15 LTS, only with previous versions of UHD: "The E310 network mode was removed from UHD with the switch to the MPM based file systems. If you need to use the network mode, you should use an older version of UHD". Sorry, out of my hands 😞 .

X310  ✗

Note: The X310 has only limited support in SDR Console and is not recommended. More information about the X310 will be added here when available.

The X310 is confirmed as working with 3.15 LTS, see below. With a single GigE connection it's streaming well at 20MHz bandwidth. Will soon be tested with 10 GigE.

FAQ

  • IQ imbalance error

    You can ignore the message "IQ imbalance compensation is not possible on this device (depends on whether IQ balance enabled or not)" - your SDR does not support onboard IQ imbalance correction.

  • Unable to set the thread priority

    You can ignore the message "Unable to set the thread priority. Performance may be negatively affected." - the current version of UHD does not support thread priorities.


Compiling UHD.dll

These are notes for development only, not for the end-user.

Build
Built with code downloaded from https://github.com/EttusResearch/uhd 3.15 LTS branch, not the master branch.
  • Version=315.000.000, 
  • ABI=UHD_3.15.0
  • Visual Studio 2019.
  • Boost 1.70.0,
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 - use Boost 1.70.
  • LIBUSB - use 1.0.22.
Field and Value 
Note: for 32-bit builds change 64 to 32.

Boost_INCLUDE_DIR      E:/boost_1_70_0
Boost_LIBRARY_DIR      E:/boost_1_70_0/lib64-msvc-14.2
LIBUSB_INCLUDE_DIRS    E:/libusb-1.0.22/include/libusb-1.0
LIBUSB_LIBRARIES       E:/libusb-1.0.2/MS64/dll/libusb-1.0.lib

Changes
For the B2x0 change  B200_USB_DATA_DEFAULT_FRAME_SIZE to (8176 * 2) in b200_impl.hpp at line 87. This increases the default frame size by a factor of two, as a result streaming at 28MHz bandwidth is possible.

// Default recv_frame_size. Must not be a multiple of 512.
//static const int B200_USB_DATA_DEFAULT_FRAME_SIZE = 8176; // SJB is OK
static const int B200_USB_DATA_DEFAULT_FRAME_SIZE = (8176 * 2); // SJB is OK
// recv_frame_size values below this will be upped to this value
static const int B200_USB_DATA_MIN_RECV_FRAME_SIZE = 40;
static const int B200_USB_DATA_MAX_RECV_FRAME_SIZE = 16360;

Images
The testing is performed with the images located in the default folder, these must be downloaded from [link], they are not shipped with SDR-Radio.com's software (the distribution is far too big). 

You can download the latest images with a python script, see [link].

Debug Information
Additional Diagnostics are available via DebugView - using the DebugView output is useful should the program crash before you are able to open the logfile.

Developer Notes

Introduction
As UHD is now compiled with VS2019, a regular DLL EttusUHDWrapper1.dll is used by SDRSourceEttus as an interface between SDR Console (VS2013, C runtime v10) and UHD.dll (VS2019, C runtime v14.2). This build process is fully scripted.

Performance
These changes have a considerable effect:
  1. In UHD.dll source code for the B2x0 changing the B200_USB_DATA_DEFAULT_FRAME_SIZE also helps.
  2. The streaming otw format is set to sc16 which avoids format conversion in UHD.dll, especially with the USB interface. SDR Console is responsible for all format conversion.
  3. Data is read via UHD in blocks of either 5ms or 128k samples, whichever is the lower value.

Options

When you start a radio the panel below is shown in the receive DSP just below the filter selection.
RX Correction:
  • DC removes the spur in the centre of the display,
  • IQ removes images.
Both are normally selected.

At the bottom you see the temperature on degrees Celsius and the state of the local oscillator (LO) - either locked or unlocked.

B200/B210

The B200 / B210 boards use the Analog Devices AD9361 RFIC https://www.ettus.com/product/details/UB200-KIT 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.

Drivers

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.

Other
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 http://zadig.akeo.ie/. 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.

GPSDO

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.

Share by: