Can I Use USRP RIO As a Stand-alone System by Configuring FPGA Register Mapping?

Updated Jun 10, 2020

Reported In


  • USRP-2940
  • USRP-2943
  • USRP-2944
  • USRP-2945
  • USRP-2950
  • USRP-2952
  • USRP-2953
  • USRP-2954
  • USRP-2955
  • USRP-2974
  • USRP X310

Issue Details

I am developing a wireless location detecting system using USRP RIO (not USRP 2974) in LabVIEW NXG or LabVIEW. I want the device to work without an external host. Can I achieve this feature by configuring the FPGA register mapping just like in the figure shown below?


There is no supported way for a USRP RIO device to be programmed with LabVIEW, LabVIEW NXG with LabVIEW FPGA module to run as a stand-alone device. You can choose USRP-2974 which is a stand-alone SDR device that could match your need.

Additional Information

There are always parts in the initialization that require a PCIe connection (bitfile download, register writes etc.). The X3x0 "register mapping", similar to what is available for the N3xx and E3xx, is available online either at USRP Hardware Driver and USRP Manual-USRP X3x0 Series or some more high-level things under Ettus Knowledge Base.

However, this is only valid for the open source (UHD / RFNoc) workflow, but not for the USRP RIO API that is used with LabVIEW FPGA module. The USRP RIO API has its own implementation and there is no customer facing documentation on the register settings. The loop shown below is not sufficient to set the device state correctly. Settings like center frequency, antenna ports and gains are being set via register bus commands. One option would be to monitor the commands over the register bus during normal initialization and then reproduce the sequence from the FPGA like in the figure shown below.