Loading firmware over Ethernet and JTAG

FPGA and ZPU stable builds are available in the UHD-Fairwaves repository.

Please note that these are for use with UHD 003.008 (or later) plus the new UmTRX UHD module. If you are still using the old UmTRX-specific fork of UHD version 003.004, you need to update the firmware before switching to using the new driver. For further details see the UHD Upgrade page.

For details of how to build firmware from source please see the developer wiki page.

Ethernet flashing

Flashing over Ethernet is the easiest way to update the firmware of your UmTRX, and can be performed in both production and safe modes.

A utility to do this is provided by UHD-Fairwaves.

Production firmware

Flash both FPGA and ZPU images:

$ umtrx_net_burner --addr= --fpga=u2plus_umtrx_v2.bin --fw=umtrx_txrx_uhd.bin --reset

After flashing the UmTRX will immediately reset and boot the updated firmware.

Safe firmware

WARNING: Do not do this unless you have a JTAG cable as it could brick your UmTRX!

$ umtrx_net_burner --addr= --fpga=u2plus_umtrx_v2.bin --reset --overwrite-safe

JTAG flashing

The FPGA and SPI flash can be programmed using a tiny utility called xc3sprog. The utility is available for both Linux and Windows, but we’ve only tested tested it under Linux and with a Digilent HS-1 cable. Use other configurations with at your own risk. Also note that you need the latest svn version of xc3sprog to work correctly with UmTRX.


To program the FPGA without writing to flash (program will be lost upon power cycling):

sudo ./xc3sprog -c jtaghs1 u2plus_umtrx_v2.bin:w:0:BIN

To reset the FPGA:

sudo ./xc3sprog -c jtaghs1 -R

SPI flash

First you need to download the file s6slx75_fgg484.bit, a proxy FPGA image that provides access to the SPI flash. To write to SPI flash from a given address (`0` in this example):

sudo ./xc3sprog -c jtaghs1 -Is6slx75_fgg484.bit u2plus_umtrx.bin:w:0:BIN