The UHD work in the next branch has been merged into the master. These
changes include new FPGA and firmware images, changes uhd host code, and
changes to gnuradio gr-uhd.
– FPGA and firmware images
New images are required for all USRP products except for the USRP1
classic (which has not changed).
Upgrading N210 images is a new thing for USRP users. Make sure to burn
both the FPGA and the firmware image before power cycling. If you get it
wrong or mess up, you can always boot into the safe mode and try again.
Do not overwrite the safe mode images.
Most recent images available here:
– API changes
The API compat number has been incremented from 1 to 2. The change was
necessary to ensure compatibility with new features in gr-uhd. But,
nothing has changed from an API perspective that would cause code out
there to break.
One obvious change is that the range types and gains are now all of type
double. By only using type double, I could simplify the ranges types,
get rid of some temple nonsense and in short, UHD will build and run
under the clang compiler.
A new call, get time at last pps has been added. Users may query this
function to determine that their device is indeed getting the PPS
signal. It also simplifies coordinating a synchronization across
multiple devices when the PPS edge is unknown to the host. See
– gr-uhd features
Most of these changes involved bringing existing c++ features into
python land. This includes:
- device discovery and enumeration
- devices addresses swigged up
- types are now printable, think str and repr
- the _t suffix on the uhd types is now optional
– USRP2 + N series MIMO cable support
MIMO cable support has now been integrated. In short, the MIMO cable
provides time and clock reference synchronization, and can optionally
share a data path between devices.
Basic usage notes detailed here:
– USRP1 feature emulation
The USRP1 classic lacks many of the time-based streaming features found
in the newer devices. Ex: If you tell the USRP1 to stream N samples at
time t, it will throw an error. Many of the missing streaming features
have now been implemented in software, and as a result, most of the
examples in UHD now work with USRP1.
The following details the features:
I will throw this out there as a little challenge. With these features
implemented, the OpenBTS+UHD port on USRP1 will probably run without
error, but will it work (as in talk to a gsm phone)?
Just a curiosity…