Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi All,
The UHD-4.8.0.0 release is now available.
This release includes the addition of rfnoc_modtool and further improvements
to RFNoC Image Builder, a new RFNoC FFT block and improved Windows installation
capabilities including distribution of binary Python bindings for Windows though PyPI.
For a complete list of new features, updates and bug fixes see the CHANGELOG (see also below).
Tag for the UHD release:
https://github.com/EttusResearch/uhd/releases/tag/v4.8.0.0
Tag for the filesystem release:
https://github.com/EttusResearch/meta-ettus/releases/tag/v4.8.0.0
Installers for Windows and Fedora:
https://files.ettus.com/binaries/uhd/uhd_004.008.000.000-release/4.8.0.0/
PPA for Ubuntu:
https://launchpad.net/\~ettusresearch/+archive/ubuntu/uhd
Thank you to everyone who has contributed by posting pull requests and filing bug reports.
Thanks,
Marian Koop
CHANGELOG:
UHD 4.8.0.0
Highlights / Main Changes
Addition of rfnoc_modtool and further improvements to RFNoC Image Builder
toolsets. This further improves the ability to design RFNoC blocks and
create custom FPGA bitfiles.
Replaced RFNoC FFT block with a new version
Improved Windows installation capabilities including distribution
of binary Python bindings for Windows though PyPI
New Features
Image Builder
Add GRC support. This allows designing RFNoC bitfiles from GNU Radio
Companion (GRC).
Improve clock connection checks and checks for duplicate connections.
Improve IO port compat check (e.g., check if wire widths match).
Allow default clocks in domain checks.
Simplify image core YAMLs by better usage of RADIO_NIPC parameter.
Improve parameter resolution.
Improve error messages for missing YAML files.
Add --SYNTH and --CHECK options.
Add support for building an FPGA image using multiple parallel jobs and
unique seeds with repeat_fpga_build.py and the --fpga-jobs option.
Add 'q' (or 'quote') filter to YAML files to allow quoting strings.
rfnoc-gain (OOT RFNoC example)
Overhaul directory structure, and rename to rfnoc-gain from
rfnoc-example.
Simplify dynamic loading of OOT DLLs by using the new modules.d feature.
Add CE clock support to gain block. This enables the example on X4x0.
Add a GNU Radio subdirectory with examples of how to run the gain block
in GNU Radio.
Add rfnoc_modtool. This is a command line utility to help design OOT RFNoC
blocks and replaces the previously available blocktool.
RFNoC
Add tune requests. This allows tuning a complete graph as known from
multi_usrp instead of single blocks individually.
Replace FFT block with a new version supporting larger FFT sizes and
cyclic prefix insertion and removal.
multi_usrp
General UHD
Add modules.d support
Add uhd::find_uhd_command() API call
Remove old-style Boost.Asio usage for compatibility with future versions
of Boost.
Embedded Filesystem
Windows binary installer
Simplified the Windows installer experience by reducing the number of
individual downloads from 4 (for USB devices) to 2, by including
libusb.dll and USB driver installer files into NSIS-built installer
binaries.
Add new cmake feature option called ENABLE_EXTEND_WIN_PACKAGING,
which defaults to off. Enabling this feature will cause a number
of convenience components to be included into the Windows deployment
package (aka. installer).
Enabling this feature has no effect on other platforms.
Added binary Python bindings for Windows installable through PyPI
(pip install uhd)
Documentation
Dependencies changes
Increase minimum required versions
CMake to 3.12
Boost to 1.66
Bug Fixes
General UHD
Fix compatibility with DPDK >= 22.11
Fix compiler warnings for better compatibility with C++17 and 20.
Add logic for loading uhd.dll from the correct path for Windows with
Python3.8+.
Add logic to warn about potential incompatibilities when importing
Python bindings.
Remove duplicate results from find
Release GIL when calling find from Python which improves response time
for large setups.
Python support
On Windows now also enable building python support if minimum supported
python version is detected.
Changed version number format for build Windows binaries to common
major.api.abi.patch format.
MPM
Allow images without RF frontend (will only be initialized if FPGA
reports availability)
Fix usrp_update_fs to work for all embedded devices (and not just X4xx)
E320: Ensure consistent sequencing when powering on/off GPSDO
N310/N300: Fix LO query API for lowband LO
RFNoC
RFNoC DDC/DUC block (used in all Gen-3 USRPs and X410): Fix fractional
frequency offset.
Fix AIS/spp calculation (e.g., for connecting FFT blocks).
Fix USE_IMPL rendering for the addsub block.
Image Builder
Fix colors
Fix error message for missing control SEP
Improve error reporting for invalid connections
Accept ~ and ~user on command line
Fix deprecated usage of yaml.load()
Ensure correct device tree files generation when choosing a custom build
directory
rfnoc_modtool
Validated OS Environments
(Versions for build and runtime dependencies can be determined from the
docker container definitions in the UHD repository at .ci/docker/...)
Linux:
Ubuntu: bionic (18.04), focal (20.04), jammy (22.04), noble (24.04)
Fedora: 39, 40, 41
Windows: 10 21H2, 11 21H2
MacOS: Monterey (12.6)