Universal Software Radio Peripheral (USRP) is a range of software-defined radios designed and sold by Ettus Research and its parent company, National Instruments. Developed by a team led by Matt Ettus, the USRP product family is intended to be a comparatively inexpensive hardware platform for software radio, and is commonly used by research labs, universities, and hobbyists.
Most USRPs connect to a host computer through a high-speed link, which the host-based software uses to control the USRP hardware and transmit/receive data. Some USRP models also integrate the general functionality of a host computer with an embedded processor that allows the USRP device to operate in a stand-alone fashion.
The USRP family was designed for accessibility, and many of the products are open source hardware. The board schematics for select USRP models are freely available for download; all USRP products are controlled with the open source UHD driver, which is free and open source software. USRPs are commonly used with the GNU Radio software suite to create complex software-defined radio systems.
The USRP product family includes a variety of models that use a similar architecture. A motherboard provides the following subsystems: clock generation and synchronization, FPGA, ADCs, DACs, host processor interface, and power regulation. These are the basic components that are required for baseband processing of signals. A modular front-end, called a daughterboard, is used for analog operations such as up/down-conversion, filtering, and other signal conditioning. This modularity permits the USRP to serve applications that operate between DC and 6 GHz.
In stock configuration the FPGA performs several DSP operations, which ultimately provide translation from real signals in the analog domain to lower-rate, complex, baseband signals in the digital domain. In most use-cases, these complex samples are transferred to/from applications running on a host processor, which perform DSP operations. The code for the FPGA is open-source and can be modified to allow high-speed, low-latency operations to occur in the FPGA.
The USRP hardware driver (UHD) is the device driver provided by Ettus Research for use with the USRP product family. It supports Linux, MacOS, and Windows platforms. Several frameworks including GNU Radio, LabVIEW, MATLAB and Simulink use UHD. The functionality provided by UHD can also be accessed directly with the UHD API, which provides native support for C++. Any other language that can import C++ functions can also use UHD. This is accomplished in Python through SWIG, for example.
UHD provides portability across the USRP product family. Applications developed for a specific USRP model will support other USRP models if proper consideration is given to sample rates and other parameters.
Several software frameworks support UHD:
GNU Radio is a Free/Libre toolkit that can be used to develop software-defined radios. This framework uses a combination of C++ and Python to optimize DSP performance while providing an easy-to-use application programming environment. GNU Radio Companion is a graphical programming environment provided with GNU Radio.
National Instruments sells the NI USRP 292x series, which is functionally equivalent to the Ettus Research USRP N210. NI also offers LabVIEW support for this device with the NI-USRP Driver.
USRP N210 and USRP2 are supported by MATLAB and Simulink. This package includes plug-ins and several examples for use with both the devices.
Many users develop with their own, custom frameworks. In this case, the USRP device can be accessed with the UHD API. There are also examples provided with UHD that show how to use the API.
The USRP N200 and USRP N210 are high-performance USRP devices that provide higher dynamic range and higher bandwidth than the bus series. Using a Gigabit Ethernet interface, the devices in the Networked Series can transfer up to 50 MS/s of complex, baseband samples to/from the host. This series uses a dual, 14-bit, 100 MS/S ADC and dual 16-bit, 400 MS/s DAC. This series also provides a MIMO expansion port which can be used to synchronize two devices from this series. This is the recommended solution for MIMO systems.
USRP N200
A Xilinx Spartan-3A DSP 1800 FPGA
Gigabit Ethernet interface
Dual 100 MS/s, 14-bit, analog-to-digital converter
Dual 400 MS/s, 16-bit, digital-to-analog converter
Flexible Clocking and Synchronization
External Inputs for 10 MHz and 1 PPS signals (SMA)
Optional GPS Disciplined Oscillator
Ettus Research MIMO Cable that can be used to synchronize two USRP devices (sold separately)
USRP N210
A Xilinx Spartan-3A DSP 3400 FPGA
Gigabit Ethernet interface
Dual 100 MS/s, 14-bit, analog-to-digital converter
Dual 400 MS/s, 16-bit, digital-to-analog converter
Flexible Clocking and Synchronization
External Inputs for 10 MHz and 1 PPS signals (SMA)
Optional GPS Disciplined Oscillator
Ettus Research MIMO Cable that can be used to synchronize two USRP devices (sold separately)
Support for timed commands and LO alignment with the SBX daughterboard
All products in Ettus Research Bus Series use a USB 2.0 or USB 3.0 interface to transfer samples to and from the host computer. These are designed for applications that do not require the higher bandwidth and dynamic range provided by the Network Series(USRP N200 and USRP N210).
USRP1
The USRP1 is the original USRP product and consists of:
Four high-speed analog-to-digital converters, each capable of 64 MS/s at a resolution of 12-bit, 85 dB SFDR (AD9862).
Four high-speed digital-to-analog converters, each capable of 128 MS/s at a resolution of 14-bit, 83 dB SFDR (AD9862).
An Altera Cyclone EP1C12Q240C8 FPGA.
A Cypress EZ-USB FX2 High-speed USB 2.0 controller.
Four extension sockets (2 TX, 2 RX) in order to connect 2–4 daughterboards.
64 GPIO pins available through four BasicTX/BasicRX daughterboard modules (16 pins each).
Glue logic.
USRP B100
The B100, introduced in October 2011, replaces the USRP as the basic Software Defined Radio offering from Ettus Research. The features of the B100 are:
USB 2.0 interface
Xilinx Spartan 3A-1400 FPGA
Compatibility with the entire daughterboard family
Fully supported by UHD drivers
Dual 64 MS/s 12-bit ADCs
Dual 128 MS/s 14-bit DACs
Onboard TCXO for precise frequency control
10 MHz and 1 PPS inputs for external references
Flexible clocking from 10 MHz to 64 MHz
8 MHz of RF bandwidth with 16 bit samples
16 MHz of RF bandwidth with 8 bit samples
USRP B200
USB 3.0 interface
Xilinx Spartan 6 XC6SLX75 FPGA
A Cypress EZ-USB FX3 High-speed USB 3.0 controller
Analog Devices AD9361 RFIC
Coverage from 70 MHz–6 GHz RF
Flexible rate 12 bit ADC/DAC
1 TX, 1 RX, Half or Full Duplex
Up to 56 MHz of real-time bandwidth
USRP B210
USB 3.0 interface
Xilinx Spartan 6 C6SLX150 FPGA
A Cypress EZ-USB FX3 High-speed USB 3.0 controller
Analog Devices AD9361 RFIC
Coverage from 70 MHz–6 GHz RF
Flexible rate 12 bit ADC/DAC
2 TX, 2 RX, Half or Full Duplex
Fully coherent 2x2MIMO capability
Up to 56 MHz of real-time bandwidth 1x1
Up to 32 MHz of real-time bandwidth 2x2
The Embedded Series combines the same functionality of other USRP devices with an OMAP 3 embedded processor. The E310, released in November 2014, utilizes the Zynq SoC platform and the Analog Devices AD9361 RFIC for a very compact, embedded USRP. The devices in this family do not need to be connected to an external PC for operation. The Embedded Series is designed for applications that require stand-alone operation.
USRP E100
Designed for embedded applications. Runs a full distribution of Linux.
720 MHz OMAP3 (ARM Cortex-A8 processor & TI C64x+ DSP)
512 MB RAM
4 GB microSD Card
100 Mbit/s Ethernet connectivity
Motherboard has one RTX daughterboard slot (1 RX + 1 TX connectors)
Onboard FPGA processing
FPGA: Xilinx Spartan XC3SD1800A
ADCs: 12-bits 64 MS/s
DACs: 14-bits 128 MS/s
TCXO Frequency Reference (~2.5 ppm)
Flexible clocking from 10 MHz to 64 MHz
USRP E110
Designed for embedded applications. Runs a full distribution of Linux.
720 MHz OMAP3 (ARM Cortex-A8 processor & TI C64x+ DSP)
512 MB RAM
4 GB microSD Card
100 Mbit/s Ethernet connectivity
Motherboard has one RTX daughterboard slot (1 RX + 1 TX connectors)
Onboard FPGA processing
FPGA: Xilinx Spartan XC3SD3400A
ADCs: 12-bits 64 MS/s
DACs: 14-bits 128 MS/s
TCXO Frequency Reference (~2.5 ppm)
Flexible clocking from 10 MHz to 64 MHz
USRP E310
Designed for embedded applications. Runs a full distribution of Linux.
Xilinx Zynq-7020 Platform with embedded ARM A9 processor (667 MHz) and FPGA (Xilinx 7 Series)
1 GB DDR3 RAM (ARM Core)
512 MB DDR3 RAM (FPGA)
Analog Devices AD9361 RFIC
Coverage from 70 MHz–6 GHz RF
Flexible rate 12 bit ADC/DAC
2 TX, 2 RX, Half or Full Duplex
Fully coherent 2x2MIMO capability
Up to 56 MHz of real-time bandwidth 1x1
Up to 32 MHz of real-time bandwidth 2x2
The USRP2 was developed after the USRP and was first made available in September 2008. It has reached end of life and has been replaced by the USRP N200 and USRP N210. The USRP2 was not intended to replace the original USRP, which continued to be sold in parallel to the USRP2.
The USRP2 contains:
A Xilinx Spartan 3-2000 FPGA
Gigabit Ethernet interface
Two 100 MS/s, 14-bit, analog-to-digital converters. LTC2284, 72.4 dB SNR and 85 dB SFDR for signals at the Nyquist frequency.
Two 400 MS/s, 16-bit, digital-to-analog converters. AD9777. 160 MSPS w/o interpolation, up to 400 MSPS with 8x interpolation.
SD card reader
The USRP family features a modular architecture with interchangeable daughterboard modules that serve as the RF front end. Several classes of daughterboard modules exist: Receivers, Transmitters and Transceivers.
Transmitter daughterboard modules can modulate an output signal to a higher frequency.
Receiver daughterboard modules can acquire an RF signal and convert it to baseband.
Transceiver daughterboard modules combine the functionality of a Transmitter and Receiver.
Receivers only support RX (receiving) and occupy only one RX port:
BasicRX, 1–250 MHz Receiver, for use with external RF hardware.
LFRX, DC to 30 MHz Receiver
TVRX, 50 MHz to 870 MHz Receiver
DBSRX, 800 MHz to 2.4 GHz Receiver
BURX, 300 MHz to 4 GHz Receiver
Transmitters only support TX and occupy one TX port:
BasicTX, 1–250 MHz Transmitter, for use with external RF hardware.
LFTX, DC to 30 MHz Transmitter.
Transceivers are both TX and RX and occupy 2 ports:
SBX, 400 MHz–4.4 GHz Transceiver, 100 mW output.
WBX, 50 MHz–2.2 GHz Transceiver, 100 mW output.
RFX400, 400–500 MHz Transceiver, 100+mW output, 45 dB AGC. Can be changed to cover 200 MHz up to 800 MHz with a hardware mod.
RFX900, 800–1000 MHz Transceiver, 200+mW output (can be changed into a RFX1800 with basic soldering and flash update).
RFX1200, 1150–1450 MHz Transceiver, 200+mW output.
RFX1800, 1.5–2.1 GHz Transceiver, 100+mW output (can be changed into a RFX900 with a flash update).
RFX2200, 2.0–2.4 GHz Transceiver, 100+mW output.
RFX2400, 2.3–2.9 GHz Transceiver, 20+mW output (can be changed into a RFX1200 with basic soldering and flash update).
XCVR2450, Dual-band Transceiver, 100+mW output at 2.4–2.5 GHz and 50+mW output 4.9–5.85 GHz.
This is a list of some of the applications the USRP has been used for:
An APCO25 compatible transmitter/receiver and decoder
RFID reader
testing equipment
a cellular GSM base station
a GPS receiver
an FM radio receiver
an FM radio transmitter
a digital television (ATSC) decoder
passive radar
synthetic aperture radar
an amateur radio
a teaching aid
Digital Audio Broadcasting (DAB/DAB+/DMB) transmitter
Mobile WiMAX receiver with USRP N2x0
International Cometary Explorer Spacecraft reboot