USRP N210 Device Guide
Use this guide when you want to connect an Ettus Research USRP N210 directly to the main RemoteRF server over a dedicated Ethernet link.
The USRP N210 is natively supported by the packaged RemoteRF server and client. It requires no custom schema or RemoteRF-Host code. The N210 uses the same generated UHD-style client API as the USB-connected USRP-2901, but it is discovered and claimed by IP address over a dedicated Ethernet link.
Overview
RemoteRF supports the USRP N210 through the built-in usrp schema. A client still receives the familiar generated uhd.usrp.MultiUSRP interface, while the server constrains the physical connection to type=usrp2,addr=... and reports an n210 hardware profile with an Ethernet transport.
The current path is server-local: the Linux machine running serverrf owns the N210’s Ethernet link and has UHD installed. RemoteRF-Host is not required for this setup.
The minimum setup is:
- Install the supported UHD runtime in the environment used to run RemoteRF.
- Connect the N210 to a dedicated Gigabit Ethernet interface on the Linux server.
- Give that server interface a static address in the same subnet as the N210, but not the N210’s own address.
- Confirm that UHD can find and probe the N210 by address.
- Register that address in
devices.yml, restartserverrf, and open a reservation from a current client.
Install and Detect
Install the Supported UHD Runtime
Install UHD and its Python bindings in the same Conda environment used to start serverrf. RemoteRF requires the UHD 4.10.0.0 Python API.
conda activate YOUR_REMOTERF_ENV
conda install -y -c conda-forge "uhd=4.10.0.0"
uhd_images_downloader
python - <<'PY'
import uhd
print(uhd.get_version_string())
PY
4.10.0.0. See the official UHD 4.10.0.0 release and the official UHD build guide for alternative installation details.
Identify the N210 Address
Check the address written on the N210 or previously configured for it. The example below uses 192.168.137.21; replace it when your device has a different address.
uhd_usrp_probe; do not assume the first label is still active.
New to N210 networking? Read Ettus Research's official N200/N210 networking guide →
Configure the Server Interface
Connect the N210 directly to a dedicated Gigabit Ethernet interface. Give the Linux interface an unused static address in the N210's subnet. Do not assign the N210's own address to the server.
ip -brief link
sudo ip link set YOUR_N210_INTERFACE up
sudo ip address replace 192.168.137.1/24 dev YOUR_N210_INTERFACE
ip -brief address show dev YOUR_N210_INTERFACE
ping -c 3 192.168.137.21
192.168.137.1/24 and the N210 responds at 192.168.137.21. Configure the static address through NetworkManager or your distribution's normal network configuration to make it survive a reboot.
Verify UHD Discovery
Address-bound discovery avoids accidentally selecting another USRP visible to the server.
sudo:uhd_find_devices --args "type=usrp2,addr=192.168.137.21"
uhd_usrp_probe --args "type=usrp2,addr=192.168.137.21"
Increase Socket Buffers
Basic low-rate receive tests may work with smaller defaults, but larger socket buffers reduce packet loss during sustained or higher-rate Ethernet streaming.
sudo sysctl -w net.core.rmem_max=50000000
sudo sysctl -w net.core.wmem_max=2500000
/etc/sysctl.d/, then apply that file according to your distribution's normal administration process.
Manifest Example
Save the following inventory on the main RemoteRF server as ~/.config/remoterf/devices.yml:
devices:
- device_id: 8
device_type: usrp
name: USRP N210 Bench
init:
profile: n210
type: usrp2
addr: "192.168.137.21"Alternatively, create the same entry with the server CLI:
serverrf --device --add --usrp-n210 "8:USRP N210 Bench:192.168.137.21"
serverrf --device --show
If the N210 is attached to a RemoteRF Host instead, use hostrf for the add command:
hostrf --device --add --usrp-n210 "8:USRP N210 Bench:192.168.137.21"
The three colon-separated values are device_id:name:address. RemoteRF writes the canonical YAML entry with device_type: usrp, init.profile: n210, init.type: usrp2, and the supplied init.addr value.
Important:
Do not register the N210 with the serial-bound --usrp option used for a USRP-2901. The N210-specific command preserves an address-bound Ethernet identity and prevents the session from selecting a USB/B200-family device.
Verify RemoteRF
Open the N210 from a Client
Restart the server after changing inventory, reserve the N210, and let a current RemoteRF client fetch the shared USRP schema.
from remoteRF.drivers import ensure_driver
token = "reservation-token"
ensure_driver(token=token)
from remoteRF.drivers.usrp import uhd
with uhd.usrp.MultiUSRP(token=token) as usrp:
print(usrp.get_pp_string())
print(usrp.get_rx_freq_range(0))
Expected result: The session opens the configured N210 over Ethernet. The API follows the same generated uhd.usrp.MultiUSRP pattern used by the USRP-2901.