X300/X310 Device Recovery
Application Note Number
|2017-03-18||Nate Temple||Initial creation|
This application note covers the details of recovering the USRP X300/X310 via JTAG.
This application note covers the process of recovering the USRP X300/X310 by flashing the FPGA image via the JTAG interface.
Note: Linux only.
The User Manual page for the X300/X310 is at the link below. http://files.ettus.com/manual/page_usrp_x3x0.html
- Computer with USB2/3 and 1 GbE Interface
- Ubuntu 14.x or 16.x Installation
- UHD Installation
- USB2 Cable
- SFP+ / RJ45 Adapter
- Ethernet Cable
This application note assumes you have a Ubuntu 14.x or 16.x Linux installation. You should also have a working UHD installation. If you do not have UHD installed, please reference the Building and Installing the USRP Open-Source Toolchain (UHD and GNU Radio) on Linux Application Note.
You will need to have the matching FPGA images downloaded before proceeding for your UHD installation. If you do not have the FPGA images downloaded, run the command:
Verify you have the FPGA images downloaded by running the command:
ls -alh /usr/local/share/uhd/images/usrp_x3*
Installing Xilinx Vivado Lab 2015.4
You will need to download and install Xilinx Vivado Lab Edition 2015.4 in order to flash the USRP X300/X310 via JTAG. Xilinx Vivado Lab Edition 2015.4 can be downloaded at the following link:
Note: Xilinx Vivado 2015.4 must be used. If you already have Xilinx Vivado Design or System Edition (2015.4) installed, they will work in place of the Lab Edition. If Design or System Edition is used, the paths may differ from described within this application note, however the process is the same.
After the download is complete, verify the MD5 sum of the file:
Note: The filename and MD5 hash may differ from the screen capture shown. Verify the MD5 sum against the hash listed on the Xilinx download page.
Next, decompress the downloaded tarball:
tar -zxvf Xilinx_Vivado_Lab_Lin_2015.4_1118_2.tar.gz
Next, go into the new directory and run the
xsetup installer (It requires
sudo permissions to install):
cd Xilinx_Vivado_Lab_Lin_2015.4_1118_2 sudo ./xsetup
This will launch the Xilinx Vivado Lab installer. You will be prompted that a newer version is available, ignore this popup and click "Continue" to install Xilinx Vivado Lab 2015.4.
The installer will then be at a Welcome screen, click
You will then be prompted to accept the various License Agreements, click
You will then be prompted to select the install options. It is suggested to leave the default values, click
You will then be prompted with the installation locations. It is suggested to leave the default values, click
You will then be prompted to create the directory
Finally, you will be at the Installation Summary prompt. Click
The installation process should only take a minute or two.
You will then be prompted that the installation was successful. Click
Ok, and the installer will close.
Installing the Digilent Cable Driver
In order to use the JTAG interface built into the USRP X300/X310 front panel, you will need to install the Digilent Cable Driver. It is included with the Xilinx Vivado Lab Edition package.
Navigate to the folder
/opt/Xilinx/Vivado_Lab/2015.4/data/xicom/cable_drivers/lin64/install_script/install_drivers, and run the installer script.
cd /opt/Xilinx/Vivado_Lab/2015.4/data/xicom/cable_drivers/lin64/install_script/install_drivers sudo ./install_digilent.sh
Next, reload the UDEV rules
sudo udevadm control --reload
Configuring Network Interface
You will need to set your ethernet interface that will be connected to the USRP X300/X310 to a static IP address of
192.168.10.1 along with setting a MTU of
Connect the X300/X310
Connect the USRP X300/X310 with the USB2 cable via the JTAG port on the front face plate. You can also attach the SFP+/RJ45 adapter to Port 0 and connect your computer via ethernet.
Power on the USRP X300/X310.
Starting Xilinx Vivado Lab Edition
Start by navigating back to your home directory:
Next, start Xilinx Vivado Lab
Open the Hardware Manager
Next, within the menu the of the Hardware Manager select
The details of the FPGA should populate the window on the left side of the Hardware Manager.
Right click on the FPGA listed, and select
This will popup a new window. Click on the file selection button and navigate to the location of the UHD FPGA images, and select the correct FPGA image for your device. (
Note: Select the correct FPGA image that matches your USRP (either
_x310) with the
.bit file extension. It is recommended to select the
_HG FPGA image, which will initialize Port 0 as 1 GbE and Port 1 as 10 GbE. Advanced users operating with dual 10 GbE may select the
_XG image, however you will need to adjust the instructions listed within this document to match the dual 10GbE configuration (IP Addresses, MTU settings, etc).
A progress bar will popup as the FPGA is programmed.
Once the programming is completed, close Vivado Lab.
Return to a terminal and attempt to ping the USRP X300/X310.
Stop the ping with
At this point, if you're able to ping the USRP X300/X310, attempt to run the UHD utility
uhd_usrp_probe is successful, proceed with flashing the FPGA image with the UHD utility
Note: Flashing the FPGA image via JTAG only does not write the FPGA image to EEPROM, you must run the
uhd_image_loader to write the FPGA image to the internal EEPROM.
uhd_image_loader --args "type=x300,addr=192.168.10.2,type=HG"
uhd_image_loader has completed the flashing process, it will recommend to power cycle the USRP X300/X310.
Power off the USRP X300/X310, remove the JTAG USB cable, and then power on the USRP X300/X310.
The USRP X300/X310 is now recovered. You should be able to
uhd_usrp_probe and any other UHD utility/application as normal.