Skip to content

UHD 4.8.0.0

Latest
Compare
Choose a tag to compare
@joergho joergho released this 28 Jan 16:46
· 17 commits to master since this release

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
    • Add Python bindings for get_user_settings_iface()
  • 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
    • Support for USB Audio devices on E31X, E320, N3XX and X4XX
  • 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
    • Add documentation about relationship of MTU, samples per packet and
      atomic item size

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
    • Fix generation of noc_shells

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)