Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/EttusResearch/uhd/llms.txt

Use this file to discover all available pages before exploring further.

The USRP X4xx Series is the fourth generation of Ettus Research USRPs. All three variants—X410, X420, and X440—share the same rack-mountable enclosure and motherboard, centered on a Xilinx Zynq UltraScale+ RFSoC (ZU28DR). The RFSoC integrates a quad-core ARM Cortex-A53 processor, a dual-core Cortex-R5F real-time unit, a high-capacity UltraScale+ FPGA, and RF data converters on a single die. Dual QSFP28 ports support up to 100 GigE per port. All variants run embedded Linux and the MPM daemon.

Supported Variants

X410

4 full-duplex channels via two ZBX daughterboards. Up to 400 MHz analog bandwidth per channel. Frequency: 1 MHz – 7.2 GHz center frequency (tunable to 8 GHz). Requires UHD 4.1+.

X420

2 full-duplex channels via two HBX daughterboards. Up to 1 GHz analog bandwidth per channel. Frequency: 10 MHz – 20 GHz. External LO support. Requires UHD 4.10+.

X440

8 full-duplex direct-sampling channels via two FBX daughterboards. Up to 2048 Msps (1.6 GHz bandwidth). Frequency: 30 MHz – 4 GHz. Requires UHD 4.5+.

Features

Hardware Capabilities

  • Processor: Xilinx Zynq UltraScale+ RFSoC ZU28DR
    • Quad-core ARM Cortex-A53 at 1200 MHz (APU)
    • Dual-core ARM Cortex-R5F real-time unit (RPU)
    • UltraScale+ FPGA programmable logic
  • Memory: 4 GiB DDR4 for Processing System; 2×4 GiB DDR4 for Programmable Logic
  • Connectivity: Dual QSFP28 ports (10 GigE or 100 GigE per port)
  • Management: RJ45 1 GigE (DHCP) for SSH access and slow-rate streaming
  • External PPS input & output
  • External 10 MHz reference input
  • Internal GPSDO (GPS-disciplined OCXO)
  • External GPIO (2× HDMI front-panel connectors)
  • USB-C debug port (JTAG + serial console)
  • USB-C OTG port (USB 2.0)
  • 32 GB eMMC storage (dual-rootfs for Mender remote updates)
  • Closed-loop temperature control; field-replaceable fan tray
  • Rack-mountable (2 USRPs per 1U with rack mount kit)

Software Capabilities

  • Full Linux system on ARM Cortex-A53
  • Runs MPM (Modular Peripheral Manager)
  • RFNoC capable (CHDR bus widths from 64-bit to 512-bit)

FPGA Capabilities

  • Timed commands in FPGA (limited timed frequency tuning)
  • Timed sampling in FPGA

RF Capabilities by Variant

VariantDaughterboardChannelsMax BandwidthFrequency Range
X410ZBX (×2)4400 MHz/ch1 MHz – 7.2 GHz (tunable to 8 GHz)
X420HBX (×2)21000 MHz/ch10 MHz – 20 GHz
X440FBX (×2)81600 MHz/ch (2 ch) or 400 MHz (8 ch)30 MHz – 4 GHz

Daughterboards

The ZBX is a dual-channel transceiver daughterboard used in the USRP X410.
  • Channels per board: 2 (TX/RX)
  • Frequency range: 1 MHz – 7.2 GHz center frequency (tunable to 8 GHz)
  • Antenna ports: TX/RX0 and RX1 per channel
  • Relative gain range: 0 – 60 dB
  • RX gain reduced below 500 MHz
The X410 contains two ZBX boards for a total of 4 channels.

Getting Started

Kit Contents

  1. USRP X410 / X420 / X440
  2. Cat 5E Ethernet cable
  3. USB-A to USB-C cable with jack screw
  4. Power supply
  5. Documentation note and safety information

Minimum UHD Versions

VariantMinimum UHD
X4104.1
X4204.10
X4404.5

Initial Setup

  1. Connect the RJ45 port to a network with DHCP.
  2. Power on the device with the front-panel button.
  3. Discover the device from a host computer:
uhd_find_devices
The device reports its type as x4xx and its product as x410, x420, or x440.
  1. SSH into the device:
ssh root@ni-x4xx-<SERIAL>
  1. Update the filesystem:
# On the device, connected to the internet:
usrp_update_fs -t master

Updating the FPGA

Download FPGA images and load a specific flavor:
# On the host:
sudo uhd_images_downloader --args "type=x4xx"

# Load image by flavor
uhd_image_loader --args "type=x4xx,addr=<IP>,fpga=X4_200"

FPGA Image Flavors

The image flavor encodes both the QSFP28 configuration and the analog bandwidth:
QSFP 0 type ──┐ QSFP 1 type ──┐   Analog Bandwidth ──┐
              X 4  C  _  2 0 0
              │ │  │
   Port type ─┘ │  └── (G = 100G, C = 100G, X = 10G)
   Lane count ──┘
Port types: X = 10 GbE, C = 100 GbE, U = Unused

X410 Image Flavors

FlavorChannelsBandwidth/chQSFP0QSFP1DDC/DUCDRAM
X4_2004200 MHz4×10 GbEUnusedYesYes (4 GiB)
UC_2004200 MHzUnused100 GbEYesYes (4 GiB)
CG_4004400 MHz100 GbE100 GbENoNo

X420 Image Flavors

FlavorChannelsBandwidth/chQSFP0QSFP1DDC/DUCDRAM
X4_2002200 MHz4×10 GbEUnusedYesYes (8 GiB)
X4_100021000 MHz4×10 GbEUnusedNoYes (8 GiB)
CG_100021000 MHz100 GbE100 GbENoYes (8 GiB)

X440 Image Flavors

FlavorChannelsBandwidth/chQSFP0QSFP1DDC/DUCDRAM
X4_2008200 MHz4×10 GbEUnusedYesNo
X4_4008400 MHz4×10 GbEUnusedNoYes (8 GiB)
CG_4008400 MHz100 GbE100 GbENoNo
X4_160021600 MHz4×10 GbEUnusedNoYes (8 GiB)
CG_160021600 MHz100 GbE100 GbENoNo
Use X4_200 or UC_200 (X410/X420) for applications requiring ≤ 200 MHz bandwidth with the RFNoC DDC/DUC. Use CG_xxx images for the highest continuous streaming bandwidth to/from an external host over 100 GigE.

Master Clock Rates

The available master clock rates depend on the loaded FPGA image flavor.

X410

ImageAvailable MCRs
200 MHz images245.76 MHz, 250 MHz
400 MHz images491.52 MHz, 500 MHz

X420

MCRConverter RateRFDC DividerAvailable In
245.76 MHz1966.08 MHz8X4_200, xx_1000
250 MHz2000 MHz8X4_200, xx_1000
491.52 MHz3932.16 MHz8xx_1000
1250 MHz (default)2500 MHz2xx_1000

X440

The X440 supports a broad range of master clock rates from 125 Msps to 2048 Msps. Selected values:
MCRConverter RateDigital Bandwidth
125 MHz1.0 GHz100 MHz
307.2 MHz2.4576 GHz245.76 MHz
368.64 MHz2.94912 GHz295 MHz
500 MHz4.0 GHz400 MHz
1000 MHz4.0 GHz800 MHz
2000 MHz4.0 GHz1600 MHz

Network Interfaces

InterfaceDescriptionDefault
eth0RJ45 management portDHCP
sfp0QSFP28 port 0, lane 0192.168.10.2/24
sfp0_1sfp0_3QSFP28 port 0, lanes 1–3192.168.11–13.2/24
sfp1QSFP28 port 1, lane 0192.168.20.2/24
int0Internal FPGA↔ARM interface169.254.0.1/24
Network configuration files are stored at /data/network/<interface>.network.

Using the X4xx from UHD

// Connect to any X4xx device
auto usrp = uhd::usrp::multi_usrp::make("type=x4xx");

// Connect by IP with specific master clock rate
auto usrp = uhd::usrp::multi_usrp::make(
    "type=x4xx,addr=192.168.10.2,master_clock_rate=250e6");

Subdev Specifications

X410:
LabelSubdev Spec
DB 0 / RF 0A:0
DB 0 / RF 1A:1
DB 1 / RF 0B:0
DB 1 / RF 1B:1
X420:
LabelSubdev Spec
DB 0 / RF 0A:0
DB 1 / RF 0B:0
X440 (xx_400 images):
LabelSubdev Spec
DB 0 / RF 0–3A:0 – A:3
DB 1 / RF 0–3B:0 – B:3

Device Arguments

KeyDescriptionExample
addrIPv4 addressaddr=192.168.10.2
mgmt_addrRPC connection addressmgmt_addr=ni-x4xx-SERIAL
master_clock_rateMaster clock rate in Hzmaster_clock_rate=250e6
time_sourcePPS sourcetime_source=gpsdo
clock_sourceReference clock sourceclock_source=external
ext_clock_freqExternal reference clock frequencyext_clock_freq=10e6
converter_rateADC/DAC converter rate (X440 only)converter_rate=4e9
force_reinitForce clocking reinitializationforce_reinit=1
skip_adc_selfcalSkip ADC self-calibrationskip_adc_selfcal=true
force_mtuManually set network MTUforce_mtu=8000

Clock and Synchronization

The X4xx uses a GPS-disciplined OCXO as its internal reference. Supported clock and time source combinations:
clock_sourcetime_sourceNotes
internalinternalFree-running internal oscillator
gpsdogpsdoGPS-disciplined; recommended for precision
externalexternalExternal 10 MHz + 1 PPS
nsynceCPRI network-derived clock (advanced)
// Use GPS for both clock and time reference
usrp->set_sync_source(device_addr_t("clock_source=gpsdo,time_source=gpsdo"));

X440 Dual-Rate Operation

The X440 can operate two daughterboards at different master clock rates simultaneously, enabling full L-band spectrum capture:
// Dual rate: 1024 MHz and 1280 MHz
auto graph = uhd::rfnoc::rfnoc_graph::make(
    "type=x4xx,master_clock_rate=1024e6;1280e6");
When using dual rate on the X440, multi-tile synchronization (MTS) is disabled. Phase relationship between channels on different daughterboards is undefined in this mode.

Care and Handling

Input power limits by variant:
  • X410: Never exceed +14 dBm continuous (≤3 GHz) or +17 dBm continuous (>3 GHz) into any RF input. Maximum +20 dBm for less than 5 minutes above 3 GHz.
  • X420: Never exceed 0 dBm into any RF input.
  • X440: Never exceed +13 dBm (≤2.5 GHz), +17 dBm (2.5–3.6 GHz), or +20 dBm (3.6–4 GHz) continuous.
  • X410: Always use at least 30 dB attenuation in loopback configuration.

Additional Resources

Build docs developers (and LLMs) love