Every USRP device requires firmware and FPGA bitstream images to operate. UHD ships withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/EttusResearch/uhd/llms.txt
Use this file to discover all available pages before exploring further.
uhd_images_downloader, a utility that fetches the correct image set for your installed UHD version and places it in the default search directory. Some device families load images automatically at runtime, while others require you to write images to SD cards or on-board flash.
How Images Are Loaded Per Device
The method used to get images onto a USRP depends on the hardware generation:USRP1
The host driver automatically loads both firmware and FPGA images at runtime — no manual step required.
USRP2
Images must be written manually to the USRP2 SD card before use.
USRP N-Series
Images are programmed into on-board storage via
uhd_image_loader and then loaded automatically at runtime.USRP E-Series
The host driver automatically loads the FPGA image at runtime.
USRP B-Series
The host driver automatically loads the FPGA image at runtime.
USRP X-Series
Images are programmed into on-board storage via
uhd_image_loader and then loaded automatically at runtime.Pre-Built Images
Ettus Research provides pre-built images for every supported USRP device. They are distributed in two forms:- Bundled with a platform installer — the UNIX package installers place images at
/usr/share/uhd/images; the Windows installer places them atC:/Program Files/UHD/share/uhd/images. - Standalone platform-independent archives — available for download at files.ettus.com/binaries/images/.
Downloading Images with uhd_images_downloader
uhd_images_downloader inspects the installed UHD version and downloads the matching image set, placing files in the default images directory automatically.
Run the downloader
The script is installed into your By default, images are installed to
$PATH (Linux/macOS) or can be called by full path:<install-prefix>/share/uhd/images.On macOS with MacPorts (
sudo port install uhd), images are downloaded and installed automatically during the package installation — you do not need to run uhd_images_downloader manually.Image Search Path and UHD_IMAGES_DIR
UHD searches for image files in <install-prefix>/share/uhd/images by default, where <install-prefix> is the value of CMAKE_INSTALL_PREFIX set at build time.
You can override this by setting the UHD_IMAGES_DIR environment variable. It accepts a colon-separated (Linux/macOS) or semicolon-separated (Windows) list of paths ordered by preference:
- You have installed images from an archive to a non-default location.
- You maintain multiple image sets for different UHD versions.
- You are working in a restricted environment without write access to the install prefix.
Installing Images from an Archive
If you downloaded a standalone image archive instead of usinguhd_images_downloader, you have two options:
Option 1 — Unpack into the install prefix:
<install-prefix>/share/uhd/images.
Option 2 — Unpack anywhere and set UHD_IMAGES_DIR:
Loading Images onto Devices (uhd_image_loader)
For devices that store images in on-board flash (N-Series, X-Series), use uhd_image_loader to program the device:
<device_type> with the appropriate identifier for your hardware (e.g., n3xx, x3xx, x4xx). Run uhd_image_loader --help for the full list of arguments and device types.
Building Images from Source
The UHD source repository includes the source code needed to build firmware and FPGA images for all supported devices. Build commands for specific images are in<uhd-repo-path>/images/Makefile.
Xilinx FPGA Images
USRP Xilinx FPGA images are built with Vivado or one of two versions of ISE, depending on the target device. Refer to the FPGA Manual for setup and build instructions specific to your device family.ZPU Firmware
The ZPU GCC compiler (zpu-elf-gcc) is required. Ensure it is in your $PATH, then see:
Altera (USRP1) FPGA
Quartus is required. Pre-built.rbf files are available in <uhd-repo-path>/fpga/usrp1/rbf. Source is at:
FX2 Firmware (USRP1 USB)
The SDCC compiler is required along with a UNIX-like environment with CMake and Make:Quick Reference
| Task | Command |
|---|---|
| Download images (default path) | uhd_images_downloader |
| Set a custom images directory | export UHD_IMAGES_DIR=/path/to/images |
| Flash images to N/X-Series device | uhd_image_loader --args="type=<device_type>" |
| Verify UHD can find device | uhd_find_devices |
| Show UHD version and config | uhd_config_info --print-all |
