- 1 Device Overview
- 2 Key Features
- 3 Daughterboard Specifications
- 4 RF Specifications
- 5 Hardware Specifications
- 6 Environmental Specifications
- 7 USRP Compatibility
- 8 Phase Synchronization
- 9 Schematics
- 10 RF Connectors
- 11 Local Oscillator Connectors
- 12 Software API
- 13 Drawings
- 14 Certifications
- 15 Downloads
The TwinRX daughterboard for the USRP X Series SDR platform is a two-channel superheterodyne receiver designed for high performance spectrum monitoring and direction finding applications. The receiver is tunable from 10 MHz - 6 GHz and has 80 MHz of instantaneous bandwidth per channel, providing the versatility necessary to analyze a variety of signals in multiple bands of interest. Each channel has an independent RF signal chain with preampilifiers, preselectors, and two mixer stages for superior selectivity. Users can tune the two channels independently to simultaneously monitor uplink and downlink communication with a combined bandwidth of 160 MHz. The ability to share the LO between channels across multiple daughterboards enables the phase-aligned operation required to implement scalable multi-channel phased-arrays. The receiver is capable of fast frequency hopping to detect frequency agile emitters. Configurable RF attenuation and preamplication allow users to optimize dynamic range in favor of noise figure for faint signals, or IP3 for stronger signals. UHD automatically configures the RF signal path for optimized performance in the pre-defined use cases, and provides the flexibility to adjust settings manually. Support for RFNoC on the X Series motherboard enables deterministic FPGA-accelerated computations for real-time spectrum analysis.
- 2 superheterodyne frontends (2 receive)
- 80 MHz per channel
- Independent tuning
- LO Sharing Capability
- Coherent and phase-aligned operation
- Preselection Filters
- RF Shielding
Receive: RX1 or RX2
- Receive Gains Range: 0-95dB
- TwinRX: 80 MHz per channel ( 160 MHz total )
- lo_locked: boolean for LO lock state
The TwinRX has six MMCX RF connectors on it.
RX Third Order Intercept (dBm)
Phase Noise (dBc/Hz)
Input Power Levels
Operating Temperature Range
Operating Humidity Range
The TwinRX daughterboard is capable of phase-synchronous operation, and is recommended for phase-coherent applications. Please note that the TwinRX is receive-only. The SBX and UBX daughterboards are also recommended for phase-coherent applications, and are capable of both transmit and receive operations.
The TwinRX daughterboard is composed of two PCBs, the Intermediate Frequency (IF) board and the RF board. There are two functionally identical revisions of TwinRX at the moment. Please check the back of your TwinRX to see which you have. The schematics for TwinRX revision B should answer most possible questions. If you have any further questions please email firstname.lastname@example.org.
TwinRX Revision A - (159685A-01)
TwinRX Revision B - (159685B-01)
Local Oscillator Connectors
Note: LO sharing cables are not required for a single TwinRX setup. LO sharing cables are only required with two TwinRX daughterboards in a single USRP X300/X310.
LO Sharing with Neighbour TwinRXs
New Multi USRP Functions
The advanced functionalities of the TwinRX will be exposed through new functions implemented in Multi-USRP.
The two channels of the TwinRX can be independently configured to use either of the two antenna ports, RX1 and RX2 using the standard antenna selection function in
virtual void set_rx_antenna(const std::string &ant, size_t chan = 0) = 0;
Select the RX antenna on the frontend.
Local Oscillator Control and Routing
The TwinRX has two channels, CH1 and CH2 and each channel has two local oscillators, LO1 and LO2. The local oscillators for a channel can be sourced from that channel's internal synthesizers, the companion channel's synthesizers, or external inputs. The value
virtual std::vector<std::string> get_rx_lo_names(size_t chan = 0) = 0;
Get a list of possible LO stage names
virtual void set_rx_lo_source(const std::string &src, const std::string &name = ALL_LOS, size_t chan = 0) = 0;
Set the LO source for the usrp device. For USRPs that support selectable LOs, this function allows switching between them. Supported options for source: internal, external, companion.
virtual const std::string get_rx_lo_source(const std::string &name = ALL_LOS, size_t chan = 0) = 0;
Get the currently set LO source.
virtual std::vector<std::string> get_rx_lo_sources(const std::string &name = ALL_LOS, size_t chan = 0) = 0;
Get a list of possible LO sources.
virtual double set_rx_lo_freq(double freq, const std::string &name, size_t chan = 0) = 0;
Set the RX LO frequency.
virtual double get_rx_lo_freq(const std::string &name, size_t chan = 0) = 0;
Get the current RX LO frequency.
virtual freq_range_t get_rx_lo_freq_range(const std::string &name, size_t chan = 0) = 0;
Get the LO frequency range of the RX LO.
Exporting Local Oscillators
virtual void set_rx_lo_export_enabled(bool enabled, const std::string &name = ALL_LOS, size_t chan = 0) = 0;
Set whether the LO used by the usrp device is exported For USRPs that support exportable LOs, this function configures if the LO used by chan is exported or not.
virtual bool get_rx_lo_export_enabled(const std::string &name = ALL_LOS, size_t chan = 0) = 0;
Returns true if the currently selected LO is being exported.
As of December 1st, 2010 all Ettus Research products are RoHS compliant unless otherwise noted. More information can be found at http://ettus.com/legal/rohs-information
Management Methods for Controlling Pollution Caused by Electronic Information Products Regulation
National Instruments is in compliance with the Chinese policy on the Restriction of Hazardous Substances (RoHS) used in Electronic Information Products. For more information about the National Instruments China RoHS compliance, visit ni.com/environment/rohs_china.