matlab-set-up-usrp-radio
Set up and verify a connection to an NI USRP radio (USRP E320, N300, N310, N320, N321, X300, X310, or X410) using Wireless Testbench. Use when connecting a USRP for the first time, configuring radio hardware, troubleshooting connection failures, or verifying a radio setup. Covers host inspection (OS, NIC type/speed/MTU), device discovery (findsdru, probesdru), UHD version checking, programmatic radio configuration, and basebandTransceiver verification. Also use when the user mentions USRP setup, radio not found, connection errors, dropped samples, or network configuration for SDR hardware.
npx skills add matlab/matlab-agentic-toolkit --skill matlab-set-up-usrp-radio --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Guides the agent through inspecting the host environment, discovering a USRP radio, verifying UHD compatibility, and creating a radio configuration for Wireless Testbench. It focuses on first-time setup, troubleshooting connection issues, and end-to-end verification of a USRP radio (E320, N300/N310/N320/N321, X300/X310/X410).
How it works
- Verifies that the Wireless Testbench Support Package for NI USRP is installed and prompts for installation if missing.
- Step 1: Inspect Host
- Detect OS/platform and MATLAB version.
- Inspect Linux NIC details (interfaces, ethtool, USB path) and Windows NIC details (Get-NetAdapter output).
- Provide guidance on NIC type, link speed, MTU, and USB-dongle risks; note MTU recommendations by device and OS.
- Detect potential bridge configurations and advise setting static IPs on the correct interface.
- Step 2: Discover and Inspect Radio
- Ensure radio power, cabling, and Ethernet link; note boot time for E320/N3xx.
- Use findsdru to discover radios; expect a structure array with Platform, IPAddress, SerialNum, Status.
- If multiple radios are found, list them and prompt user to choose one; otherwise proceed with the single device.
- Inspect the selected radio with probesdru(IPAddress) and compare UHD versions via getSDRuDriverVersion.
- Compare host and device UHD versions; if mismatched, the radio configuration step may update firmware.
- Default USRP IPs for SFP+ ports are provided in a table.
- Step 3: Fix Host Issues
- Provide commands (not to be executed directly) for Linux static IP, MTU, and buffer adjustments; Windows adapter settings for 10 GbE and 1 GbE, including MTU changes and disabling power management and unnecessary protocols.
- After changes, instruct to rerun Step 2 to confirm reachability; if unresolved, proceed to Troubleshooting.
- Step 4: Create Radio Configuration
- Check for existing configurations via radioConfigurations and offer reuse if matching IP/model.
- Determine correct port index by comparing findsdru results with probesdru port list (ip-addr0..ip-addr3).
- Option A (Programmatic): Use internal DeviceStore API to create a configuration without GUI, calling getUsrp<Model>Params() to match the selected radio (e.g., getUsrpE320Params for E320).
- Populate params.Network.DeviceIP0 with the discovered radio IP and HostIP0 with the host-side IP from Step 1, using the correct port index.
- Save configuration using store.setDeviceParameters("MyE320", params) and verify via radioConfigurations.
- Note: If multiple radios were discovered, only configure the user-selected one; avoid cross-device mixing.
- Recovery: If a bad store write occurs, reset MATLAB state and toolbox cache with:
clear all rehash toolboxcache - Option B in the original text appears truncated; no further content is provided to summarize.
When to use it
- When connecting a USRP radio to a host for the first time
- When configuring NIC IP, MTU, or other network settings for USRP streaming
- When running radioSetupWizard or radioConfigurations
- When troubleshooting radio-not-found, connection errors, or dropped samples
- When verifying an end-to-end radio setup
What it can touch
- The workflow relies on MATLAB functions and internal APIs:
findsdru,probesdru,getSDRuDriverVersion,radioConfigurations, internalwt.internal.hardware.DefaultDevices.getUsrp<E model>Params(), andwt.internal.hardware.DeviceStore. - The instructions include command-line steps for Linux (
sudo ip,sudo sysctl) and Windows (New-NetIPAddress,netsh,Set-NetAdapterAdvancedProperty,Disable-NetAdapterPowerManagement).
Caveats
- Requires MATLAB >= R2026a and Wireless Testbench Support Package for NI USRP Radios installed.
- UHD version compatibility matters; version mismatch may trigger device firmware updates during configuration.
- The Path to execution includes potentially risky network commands that require elevated privileges; user must run them with appropriate rights.
- Some workflows assume specific hardware variants (e.g., UBX-160 daughterboards) and may require user input for unknown boards.
# Set Up USRP Radio with Wireless Testbench Connect, configure, and verify a supported NI USRP radio for use with Wireless Testbench in MATLAB. ## Required References — Load Immediately - [references/troubleshooting.md](references/troubleshooting.md) — diagnostic checklist, Mender updates, network path isolation ## When to Use - Connecting a USRP radio to a host computer for the first time - Configuring network settings (NIC, IP address, MTU) for USRP streaming - Running `radioSetupWizard` or `radioConfigurations` - Troubleshooting "radio not found", connection errors, or dropped samples - Verifying a radio setup works end-to-end ## When Not to Use These workflows each require a working radio connection first — use this skill for that setup step. - FPGA targeting or HDL workflows — check for a dedicated skill, or see [Target NI USRP Radios](https://www.mathworks.com/help/wireless-testbench/target-ni-usrp-devices.html) - Generating or transmitting waveforms — check for a dedicated skill, or see [Transmit and Capture](https://www.mathworks.com/help/wireless-testbench/transmit-and-capture-RF-signals.html) - Intelligent capture (preamble/energy detection) — check for a dedicated skill,
- Required References — Load Immediately
- When to Use
- When Not to Use
- Workflow
- Step 0: Verify Support Package
- Step 1: Inspect Host
- Step 2: Discover and Inspect Radio
- Step 3: Fix Host Issues
- Step 4: Create Radio Configuration
- Step 5: Verify Connection
- Step 6: Troubleshooting
- Key Functions
- Conventions
Set static IP on the same subnet as the USRP (replace <iface>) sudo ip addr add 192.168.10.1/24 dev <iface> sudo ip link set <iface> up Enable jumbo frames (REQUIRED for 10 GbE only — skip for 1 GbE) sudo ip link set <iface> mtu 9000 Increase kernel network buffers (REQUIRED for streaming) sudo sysctl -w net.core.rmem_max=33554432 sudo sysctl -w net.core.wmem_max=33554432
What does the matlab-set-up-usrp-radio skill do?
Set up and verify a connection to an NI USRP radio (USRP E320, N300, N310, N320, N321, X300, X310, or X410) using Wireless Testbench. Use when connecting a USRP for the first time, configuring radio hardware, troubleshooting connection failures, or verifying a radio setup. Covers host inspection (OS, NIC type/speed/MTU), device discovery (findsdru, probesdru), UHD version checking, programmatic radio configuration, and basebandTransceiver verification. Also use when the user mentions USRP setup, radio not found, connection errors, dropped samples, or network configuration for SDR hardware.
How do I install it?
Run `npx skills add matlab/matlab-agentic-toolkit --skill matlab-set-up-usrp-radio --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From matlab/matlab-agentic-toolkit, a repository with 868 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
