UHD - Universal Hardware Driver
Universal Hardware Driver for Ettus Research USRP software-defined radio devices. Provides host libraries, utilities, and Python support for device discovery, configuration, firmware loading, and hardware calibration.
Description
UHD is the Universal Software Radio Peripheral (USRP™) Hardware Driver, a host library and API for controlling Ettus Research SDR devices. It supports analog radio receiver/transmitter hardware with digital interfaces for software-defined radio applications running on host computers. The toolset includes device discovery, hardware probing, image loading, and calibration utilities essential for USRP deployment in wireless research and security testing.
Key components include host utilities (uhd-host) for device management, calibration tools for IQ balance and DC offset correction, and RFNoC development tools for custom FPGA image building. Python bindings enable scripting and integration with frameworks like GNU Radio. DPDK variants provide high-performance networking support for demanding applications.
Use cases include spectrum analysis, signal processing, RF research, and wireless security testing. The modular package structure allows selective installation of libraries, development headers, documentation, or specific utilities based on requirements.
How It Works
UHD communicates with Ettus USRP devices via USB, Ethernet, or PCIe interfaces using libusb and Boost libraries. It abstracts hardware-specific firmware/FPGA loading, register access, and data streaming through a unified API. RFNoC (RF Network-on-Chip) enables FPGA-based processing chains configurable via YAML/GRC files. Calibration utilities perform self-calibration by injecting test tones and measuring IQ imbalance/DC offset through loopback paths on transceiver daughterboards. Device discovery scans supported buses/protocols to enumerate attached USRPs and report capabilities.
Installation
sudo apt install uhd-hostFlags
Examples
rfnoc_image_builder -hrfnoc_modtool -huhd_adc_self_cal --helpuhd_cal_rx_iq_balance --helpuhd_cal_tx_dc_offset --helpuhd_config_info --helpuhd_find_devices --helpuhd_image_loader --help