Wireless Attacksuhdusrpsdrsoftware-defined-radioettusrfnocfirmwarecalibration

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

bash
sudo apt install uhd-host

Flags

--argsDevice address args (used across multiple UHD utilities)
--helpShow help message and exit
--fw-pathFirmware path for uhd_image_loader
--fpga-pathFPGA path for uhd_image_loader
--typesRegEx to select image sets for uhd_images_downloader
--treePrint complete property tree in uhd_usrp_probe
-yPath to YAML configuration file for rfnoc_image_builder
-CBase directory path for rfnoc_image_builder

Examples

Show help for RFNoC image builder utility
rfnoc_image_builder -h
Show help for RFNoC OOT module management tool
rfnoc_modtool -h
Show help for ADC self-calibration utility
uhd_adc_self_cal --help
Show help for RX IQ balance calibration table generator
uhd_cal_rx_iq_balance --help
Show help for TX DC offset calibration table generator
uhd_cal_tx_dc_offset --help
Show UHD build configuration information utility help
uhd_config_info --help
Show USRP device discovery utility help
uhd_find_devices --help
Show UHD image loader utility help for firmware/FPGA loading
uhd_image_loader --help
Updated 2026-04-16kali.org ↗