USRP X300/X310 Device Recovery

Updated Jul 17, 2025

Reported In

Hardware

  • USRP X310
  • USRP X300

Operating System

  • Linux

Other

Software: UHD 4.8.0.0, Digilent Adept 2
Operating System: Ubuntu 20.04

Issue Details

The USRP X300/X310 appears bricked. The SFP LEDs are off when connected to host, and the device does not respond to ping or UHD commands like uhd_find_devices, even after following the article: X300/X310 Getting Started Guides - Ettus Knowledge Base

Solution

Recover the USRP X300/X310 by flashing the FPGA image through the JTAG interface. 

 

  1. Download and install Digilent Adept Runtime and Utilities 
    For Ubuntu OS, download 64-bit .deb variants of Adept Runtime for Linux, and Adept Utilities from the link below
    https://cloud.digilent.com/myproducts/Adept?pc=1&tab=2

  2. Install them by running the commands below
    sudo dpkg -i <Path_to_downloads>/igilent.adept.runtime_<your_version>-amd64.deb
    sudo dpkg -i <Path_to_downloads>/digilent.adept.utilities_<your_version>-amd64.deb

  3. Connect you host to the USRP X300/X310 via USB JTAG port

  4. Run the command: djtgcfg enum
    At this point you should be able to see an output similar to this

    Found 1 device(s)

    Device: Dps1
        Device Transport Type: 12345678 (USB)
        Product Name:          JTAG-ONB1
        User Name:             Dps1
        Serial Number:         1234567891A2 

  5. Find your path to the UHD (by default it's /usr/local/share/). Run the commands below to load the default FPGA image
    djtgcfg init -d <Device name, (by default Dps1)>
    djtgcfg prog -d Dps1 -i 0 -f <path_to_uhd>/uhd/images/usrp_<x300_or_x310>_fpga_HG.bit>
    If the bit file is not found, download it by running the command below, and try the command above again.
    sudo uhd_images_downloader
    Note: The loaded image will be temporary (it will be lost after a power cycle)
  6.  To save this image across power cycles, connect your host to the device (for example via SFP0 as described in this article: X300/X310 Getting Started Guides - Ettus Knowledge Base, (at this point, the LEDs above SFP0 should illuminate)), and run the command below.
    uhd_find_devices

  7. Copy your device's Ip address, and run the command below
    uhd_image_loader --args "type=x300,addr=<your_ip>,fpga=HG"

  8. Power-cycle the device.

The device should be recovered at this point.