%20%20User%20Manual_01a03dc7-ad53-75f9-9f2f-5e6ccf99063c.png)
Product Introduction
The USRP B210 (Kintex‑7 FPGA) is an optimized revision of the classic USRP B210 software-defined radio unit. While fully retaining the original RF front-end and software compatibility, this device upgrades the original Xilinx Spartan‑6 FPGA to the newer Xilinx Kintex‑7 series chip, and connects to the host PC via a USB 3.0 Type‑C port.
Its RF module features a dual-transmit dual-receive full-duplex front-end built around the AD9361 RFIC. It covers a frequency range of 70 MHz to 6 GHz with a maximum real-time bandwidth of 56 MHz. The RF circuitry has been reoptimized via simulation and adopts a frequency-divided RF front-end architecture.
The GPS disciplined oscillator (GPSDO) slot reserved on the original B210 has been eliminated to greatly reduce the device footprint. An onboard integrated GPS module handles timing synchronization instead. External pulse-per-second (PPS) and 10 MHz reference clock inputs are routed out through MMCX connectors, allowing the unit to lock to laboratory-grade reference clocks. The onboard GPS module can also be disabled when necessary, with external signals used as the PPS reference source instead.
Key Features
• Xilinx Kintex-7 series FPGA in place of the original Spartan-6, with a Vivado 2024.1 source project
• USB 3.0 Type-C host interface, up to 56 MHz real-time transmission bandwidth
• 70 MHz to 6 GHz continuous tuning range, AD9361 RF front end
• 2T2R full duplex: TRX1 and TRX2 transmit/receive ports, RX1 and RX2 receive-only ports, all SMA
• External PPS input and external 10 MHz reference input on MMCX connectors
• Onboard GPS module, with the option of replacing it as the PPS source
• RF circuit optimised through simulation, frequency-division RF front-end design
• GPSDO slot removed to reduce board size: 70 x 97 x 11.5 mm
• Fully backward compatible with original USRP B210 software and flowgraphs
Device Core Parameters
The table below summarises the parameters that differ from, or that are worth restating against, the original USRP B210.
Connectors and Indicators
%20%20User%20Manual_01a03dc7-b342-7092-96d2-edd0970dac99.png)
%20%20User%20Manual_01a03dc7-b4e2-711a-974f-ec1820da246a.png)
Connectors
Indicators
Comparison with the Original USRP B210
Note: Software compatibility is complete, but the FPGA image is not interchangeable. Always use the usrp_b210_fpga.bin supplied in the resource package for this board.
Supporting Resource Package
In the shipped package the folder names are written in Chinese as USRP_B210 资料 \windows 软件 and USRP_B210 资料 \ 需替换 BIN 文件. The commands and paths in this manual use those names exactly as they appear on disk.
Windows Deployment and Usage
This chapter covers the complete Windows deployment: UHD driver installation, environment variable configuration, the two errors that commonly appear at first run, hardware verification, and then the installation and hands-on use of SDRangel, Universal Radio Hacker, GNU Radio and SDRSharp.
The reference machine for this chapter is 64-bit Windows 11.
Install the Official UHD USB Driver
UHD is the core library that allows all SDR software to communicate with the USRP B210. Install the official Windows release first, before anything else.
Step 1 Get the installation package
Open your browser and visit https://files.ettus.com/binaries/uhd/latest_release. Open the directory that matches your Windows version and download the first compatible installer inside it, for example uhd_4.10.0.0-release_Win64_VS2019.exe. Alternatively, use the identical installer pre-included in the supporting resource package at USRP_B210资料\windows软件\uhd_4.6.0.0-release_Win64_VS2019.exe.
%20%20User%20Manual_01a03dc7-b6f5-752a-b149-07b4c3948770.png)
Step 2 Run the installer as administrator
Right-click the installer and run it as administrator. If a Windows SmartScreen warning appears, click More info followed by Run anyway. Follow the installation wizard: click Next, accept the licence agreement, then click Install. The installation takes approximately 30 seconds.
Step 3 Connect the hardware and check the device
After installation, connect the Kintex-7 USRP B210 to your computer with a USB cable. Open Device Manager. Under normal circumstances you will see Ettus Research LLC B200/B210 listed under the USRPs category.
%20%20User%20Manual_01a03dc7-b86d-72f6-be06-6c654917f42b.png)
Step 4 Manual driver update for an unrecognised device
If the device fails to enumerate automatically, right-click the unknown device and select Update driver. Manually specify the driver folder inside the UHD installation directory, then unplug and replug the USB device. If Windows still fails to bind a driver, extract erllc_uhd_winusb_driver.zip from USRP_B210资料\windows软件 and point the update dialog at the extracted folder to install the WinUSB driver.
Configure the UHD Environment Variables
Press Win + R to open the Run window, type sysdm.cpl and click OK. Switch to the Advanced tab of the System Properties window, then click the Environment Variables button.
Create two new system environment variables:
%20%20User%20Manual_01a03dc7-b9fe-774e-99fd-2636920e20be.png)
%20%20User%20Manual_01a03dc7-bb65-7539-85ca-4bce396c0de7.png)
Save the configuration and reopen the Command Prompt window for the settings to take effect. Environment variables are read when a process starts, so an already-open Command Prompt will not see them.
Fix the Missing libusb-1.0.dll Error
Connect the device with a USB cable, navigate to the bin folder under the UHD installation directory, type cmd in the address bar and press Enter to open a Command Prompt in that folder, then run:
uhd_usrp_probe.exe
The system pops up a prompt indicating that libusb-1.0.dll cannot be found.
%20%20User%20Manual_01a03dc7-bcb1-71e0-90b7-2bcf19d3cb61.png)
Solution: copy libusb-1.0.dll from the supporting resource package at USRP_B210 资料 \windows 软件 into the bin directory of UHD, then run the command again.
%20%20User%20Manual_01a03dc7-bdf8-7019-9faf-7f1b3f60fb5c.png)
Replace the Custom FPGA Firmware to Fix the fx3 state 5 Error
Running uhd_usrp_probe now triggers a different error:
RuntimeError: fx3 is in state 5
This is caused by a mismatched FPGA image file. The stock Ettus image does not match the Kintex-7 FPGA on this board. Follow the steps below.
%20%20User%20Manual_01a03dc7-bf6a-732e-a78d-7d9376f1cced.png)
Step 1 Locate the default storage path of the FPGA binary
The terminal displays the loading path:
C:\Program Files\UHD\share\uhd\images\usrp_b210_fpga.bin
%20%20User%20Manual_01a03dc7-c0b6-753a-9f47-6c52b8b23274.png)
Step 3 Re-detect the hardware
Run uhd_usrp_probe.exe again. If the terminal fully outputs the hardware parameters of the B210, including clock configuration, RF channels and FPGA version, the driver and firmware are correctly matched.
%20%20User%20Manual_01a03dc7-c204-75f8-bd77-51db6544676b.png)
Hardware Wiring Specification
Connect the USRP B210 to your computer through a blue USB 3.0 port. USB 2.0 ports lack sufficient bandwidth and will cause data disconnection, IQ sample packet loss and FPGA loading failures.
%20%20User%20Manual_01a03dc7-c384-71e0-b8e4-246917780bbe.png)
The Two Official UHD Detection Commands
These two commands are the definitive test of the deployment. Run them from the UHD bin directory in a Command Prompt.
Quick scan for connected USRP devices
uhd_find_devices
%20%20User%20Manual_01a03dc7-c5d3-765f-85c8-617b58df2569.png)
Normal output includes the device serial number, the device name and the product model B210, which means the hardware has been recognised by the system.
Full hardware probe
uhd_usrp_probe
%20%20User%20Manual_01a03dc7-c719-7663-8ac5-f635c7aae72c.png)
The terminal fully displays the FPGA version, the firmware version, the RF transmit and receive channels, the frequency range, the gain range, the clock source and the loopback self-test result. A passed loopback test means the device can transmit and receive RF signals normally.
Note: Do not proceed to any application in the rest of this chapter until both commands succeed. Every SDR application on Windows finds this board through UHD, so a failure here will reappear as "device not found" in each of them.
SDRangel Installation and Usage
SDRangel is an SDR visualisation and demodulation application with a broad set of demodulators. This section installs it and demodulates an FM broadcast with the USRP B210.
Download and install SDRangel
Step 1 Download the installation package
Open https://github.com/f4exb/sdrangel/releases and download the latest Windows EXE installer.
%20%20User%20Manual_01a03dc7-c87a-764c-ab7a-bd9dfa7eaf81.png)
Step 2 Install with administrator privilege
Right-click the installation package and select Run as administrator. Click Yes in the Windows User Account Control pop-up, then follow the wizard and click Next to finish the installation.
FM broadcast demodulation with the USRP device
Step 1 Connect and confirm the device
Connect the USRP B210 over USB, and run uhd_find_devices beforehand to confirm the device is detected.
%20%20User%20Manual_01a03dc7-c9e4-71b1-83d4-e83c583c4c81.png)
Step 2 Add a receiver
Launch SDRangel, click Add Receiver on the blank workspace, and select USRP from the hardware list.
%20%20User%20Manual_01a03dc7-cb27-738e-871a-87348a5a8a90.png)
Step 3 Configure the device parameters
Configure the device parameters on the panel: enter your local FM frequency as the centre frequency, for example 97.4 MHz, and set the sample rate to 2.5 Msps.
%20%20User%20Manual_01a03dc7-cc72-722e-855c-396f3ae288be.png)
Step 4 Start RF reception
Click the purple play button to start RF reception. The spectrum and waterfall display appear in real time.
Step 5 Add the demodulator channel
Click Add Channel and select Broadcast FM Demodulator as the demodulator type. Fine-tune the channel parameters and the broadcast audio will be output through the computer speakers.
%20%20User%20Manual_01a03dc7-ce31-7548-96d9-879727a51051.png)
Universal Radio Hacker Installation and Usage
Universal Radio Hacker (URH) is a wireless signal reverse engineering and IQ analysis tool. This section captures raw RF IQ data with the USRP B210 for offline analysis.
Download and install the URH signal analysis tool
Step 1 Download the installer
Open the URH release page at https://github.com/jopohl/urh/releases and download the Windows 64-bit installer, Universal.Radio.Hacker-2.10.0-x64.exe.
%20%20User%20Manual_01a03dc7-cff4-7690-a2ed-94a1d75a7d53.png)
Step 2 Complete the installation
Right-click the installer and run it as administrator, then follow the setup wizard and click Next to finish the installation. The official binary package contains all dependencies, so no Python environment configuration is required.
Device scanning and IQ raw data recording
After launching the software, open the File menu and click the red Record button. In the recording window, select USRP as the hardware device and click the green refresh icon to detect connected equipment.
Set the parameters as follows:
Click Start to begin recording, then click Stop after 10 to 30 seconds.
%20%20User%20Manual_01a03dc7-d134-7675-b028-c335e5e28524.png)
You can now save the recorded IQ data to a file for later analysis or replay.
GNU Radio Installation and Usage
GNU Radio is a graphical SDR framework. This section deploys it on Windows through Radioconda and builds an FM demodulation reception flowgraph.
Install GNU Radio via Radioconda
Step 1 Download the installation package
Visit https://github.com/radioconda/radioconda-installer/releases and download the Windows x86_64 EXE installer.
%20%20User%20Manual_01a03dc7-d2dc-708a-b6b0-217575a03e12.png)
Step 2 Finish installation via the setup wizard
Run the installer and complete the installation by following the on-screen setup wizard prompts. Radioconda bundles GNU Radio together with UHD support and the Python environment it needs, so no manual dependency resolution is required.
Build a USRP-based FM broadcast receiver flowgraph
Step 1 Connect the antenna and launch the software
Connect the antenna to the RX1 port of the USRP device, then launch GNU Radio Companion from the Start menu.
Step 2 Drag the modules onto the canvas
Drag and drop the following modules onto the canvas: UHD: USRP Source, WBFM Receive, QT GUI Frequency Sink, Rational Resampler, QT GUI Time Sink and Audio Sink.
Step 3 Parameter configuration
Step 4 Signal connection routing
Output port of UHD: USRP Source to the input port of WBFM Receive; output port of WBFM Receive to the input port of Rational Resampler; output port of Rational Resampler to the input port of Audio Sink.
%20%20User%20Manual_01a03dc7-d46e-7169-ba02-3f8469c3f9ff.png)
Step 5 Save and run
Save the flowgraph and click the execute button. After compilation finishes you can listen to the FM broadcast.
%20%20User%20Manual_01a03dc7-d5c2-777d-952b-ca87404fb00c.png)
SDRSharp Installation and Usage
SDRSharp connects to the Kintex-7 USRP B210 through the USRP ExtIO plug-in. This section covers the deployment, the firmware replacement it needs, and reception of a 97.4 MHz FM broadcast.
Install SDRSharp
If you already have an SDRSharp.zip build bundled with the USRP ExtIO plug-in, extract it and double-click SDRSharp.exe to launch the program. It is ready for immediate use.
Otherwise, go to the GitHub repository extioxxx/usrp-ExtIO (new extio usrp, uhd 3.14.0) and download the SDR# package pre-integrated with the USRP plug-in. Unzip the archive and extract its internal subpackage sdr#_1361_plugins_net3.5_uhd-3.14.0-ExtIO_v1.0.xxx-win32. Copy the custom firmware usrp_b210_fpga.bin from USRP_B210资料\需替换BIN文件 into this folder to overwrite the original file, then double-click SDRSharp to launch the software.
%20%20User%20Manual_01a03dc7-d740-722f-9ba8-6f1fd41fa638.png)
Note: SDRSharp keeps its own copy of the FPGA image inside its program folder. Replacing the image once under C:\Program Files\UHD is not enough. If SDRSharp fails to detect the board, this is almost always the reason.
Use SDRSharp to receive FM radio broadcasts
In the top left corner, open the Source drop-down menu and select USRP - ExtIO_usrp.dll.
Next, click the adjacent Configure button. In the configuration window that pops up, the device parameters are automatically detected and filled in, and the full initialisation log is displayed in the log panel, which indicates a successful hardware connection.
%20%20User%20Manual_01a03dc7-d8e5-731b-bcd8-497ebd46a7bc.png)
Now tune the parameters for receiving a 97.4 MHz FM broadcast:
Click the play button to listen to the radio.
%20%20User%20Manual_01a03dc7-da9f-77d7-91fd-36827f67286b.png)
Ubuntu Deployment and Usage
This chapter covers the complete Ubuntu deployment: installing the core UHD library, creating the FPGA image directory, downloading the official images, replacing the customised FPGA image, writing udev rules so the device is usable without sudo, verifying the hardware, and then installing and using Universal Radio Hacker, GNU Radio, Gqrx and the UHD command line tools.
Update the System Source and Install the Core UHD Library
UHD is the core library that allows all SDR software to communicate with the USRP B210. Install it from the official Ubuntu repository. Open a terminal and update the package list:
udo apt update
Install the UHD driver and development files:
sudo apt install -y libuhd-dev uhd-host
%20%20User%20Manual_01a03dc7-dc7d-764c-8304-4b9c4f22cb92.png)
Create the FPGA Image Directory and Configure the Environment Variable
Create a directory to store the FPGA images and set the permissions:
sudo mkdir -p ~/B210/B210_images
sudo chmod 755 ~/B210/B210_images
Locate the download script:
find /usr -name "uhd_images_downloader.py" 2>/dev/null
Note: The path varies between distributions and users. Use the path that the find command reports on your own machine rather than copying the one printed in this manual.
Set the environment variable that tells UHD where to look for images:
export UHD_IMAGES_DIR=~/B210/B210_images/
%20%20User%20Manual_01a03dc7-de84-76ab-8452-871de9f66b44.png)
Download the Official Firmware and Resolve Permission Errors
Download the official firmware and FPGA images:
/usr/lib/uhd/utils/uhd_images_downloader.py
You may hit a permission error at this point. The directory was created with sudo and is therefore owned by root. Change the owner to your own account so that you have full control over it:
sudo chown -R $USER:$USER ~/B210
Add full recursive permissions to the directory:
sudo chmod -R 755 ~/B210/B210_images
Reset the environment variable and re-run the downloader:
export UHD_IMAGES_DIR=~/B210/B210_images
/usr/lib/uhd/utils/uhd_images_downloader.py
%20%20User%20Manual_01a03dc7-e1a4-7350-8c60-a8a13cb6b0de.png)
Replace the Custom FPGA Firmware
Copy the custom usrp_b210_fpga.bin supplied in the resource package at USRP_B210资料/需替换BIN文件/usrp_b210_fpga.bin into the image directory, replacing the file that the downloader fetched. Without this replacement the system cannot detect the device and throws RuntimeError: fx3 is in state 5.
Step 1 Locate the original firmware file
sudo find / -name "usrp_b210_fpga.bin" 2>/dev/null
A typical result is:
/home/nyq/B210/B210_images/usrp_b210_fpga.bin
%20%20User%20Manual_01a03dc7-e3d3-70c4-953d-0a41e5c18997.png)
Step 2 Delete the original firmware
cd /home/nyq/B210/B210_images
sudo rm usrp_b210_fpga.bin
%20%20User%20Manual_01a03dc7-e4fd-75ec-a63a-5e15d1727615.png)
Step 3 Enable the VMware shared folder to import the custom firmware
If you are running Ubuntu inside VMware, open the VM menu, then Settings, Options, Shared Folders. Check Always enabled, click Add and select the local folder that holds the replacement firmware. On bare metal, simply copy the file across with your file manager or with scp and skip to step 4.
Step 4 Move the custom firmware to the target directory
cd /mnt/hgfs/需替换BIN文件
sudo mv usrp_b210_fpga.bin /home/nyq/B210/B210_images
Firmware replacement is now complete.
%20%20User%20Manual_01a03dc7-e660-770e-a619-39d8074354a9.png)
Hardware Wiring Specification
Connect the USRP B210 to your computer using a blue USB 3.0 port. USB 2.0 leads to insufficient bandwidth and random disconnection.
Write Exclusive udev Rules for the USRP USB Device
Without a udev rule the device node is only accessible to root, so every SDR application has to be started with sudo. The rules below give normal users access.
Step 1 Create and write the USRP udev rule file
sudo tee /etc/udev/rules.d/10-usrp.rules >/dev/null << 'EOF'
SUBSYSTEM=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0020", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0021", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0022", MODE="0666"
EOF
%20%20User%20Manual_01a03dc7-e7a2-737d-993b-d6f5ca8d2a0f.png)
Step 2 Reload the udev rules to take effect immediately
sudo udevadm control --reload-rules
sudo udevadm trigger
%20%20User%20Manual_01a03dc7-e8e5-7654-8681-0c0e9092a92e.png)
Unplug and replug the device so the new rule is applied to the device node.
Set a Persistent Environment Variable
A new terminal window loses the environment variable set with export, so it has to be reconfigured:
export UHD_IMAGES_DIR=/home/nyq/B210/B210_images
Verify the variable:
echo $UHD_IMAGES_DIR
%20%20User%20Manual_01a03dc7-ea45-76bd-96cf-5b09ac378491.png)
Dual Hardware Detection
Quick scan for connected USRP devices
uhd_find_devices
%20%20User%20Manual_01a03dc7-ec72-7647-8645-95b085c60a20.png)
Full hardware probe
Read the AD9361 details, the FPGA version and the serial number:
uhd_usrp_probe
A complete AD9361 hardware information output indicates that the driver, the firmware and the physical connection all work normally.
%20%20User%20Manual_01a03dc7-edb1-75eb-a4d9-3bdbd34ce19b.png)
Note: As on Windows, do not go further until both commands succeed. Every application below reaches the hardware through UHD.
Universal Radio Hacker Installation and Usage
This section installs the signal recording, analysis and decoding tool URH, and performs a raw IQ capture with the USRP B210.
Build an independent Python virtual environment and install URH
Installing URH into a virtual environment keeps its Python dependencies away from the system packages that GNU Radio relies on.
cd ~
sudo apt install python3.10-venv
python3 -m venv urh-env
source urh-env/bin/activate
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyQt5 numpy scipy psutil pyzmq -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install urh -i https://pypi.tuna.tsinghua.edu.cn/simple
%20%20User%20Manual_01a03dc7-ef21-7207-a207-0313ba451d25.png)
After installation, type urh in the terminal to launch the software.
URH startup method
Remember to activate the virtual environment every time before opening URH:
source ~/urh-env/bin/activate
urh
IQ signal recording operation
After launching URH, click File and then the red Record button. Select USRP in the device list and click the green refresh icon to scan the hardware.
Set the signal parameters:
Click Start to record for 10 to 30 seconds, then click Stop and save the IQ data file for later analysis and playback.
%20%20User%20Manual_01a03dc7-f2ae-754b-84d4-382c9ae3d78b.png)
GNU Radio Installation and Usage
Install the full GNU Radio component set
sudo apt install -y gnuradio gnuradio-dev cmake git libboost-all-dev libcppunit-dev liblog4cpp5-dev python3-pygccxml pybind11-dev liborc-0.4-dev python3-pip clang-format gr-osmosdr
sudo apt install -y vim zsh wget net-tools
%20%20User%20Manual_01a03dc7-f43e-7157-a81c-c37093819f20.png)
%20%20User%20Manual_01a03dc7-f868-716b-b397-b19b44529973.png)
Installation verification and permanent environment variable
Check the GNU Radio version:
gnuradio-config-info --version
Connect the USRP B210 and verify device recognition:
uhd_find_devices
%20%20User%20Manual_01a03dc8-0453-732f-a668-ea90dac78a87.png)
For convenience, set the UHD image path as a permanent environment variable:
echo 'export UHD_IMAGES_DIR=/home/nyq/B210/B210_images' >> ~/.bashrc
Reload the shell configuration immediately:
source ~/.bashrc
Verify the configuration:
echo $UHD_IMAGES_DIR
If the configuration succeeded, the terminal outputs /home/nyq/B210/B210_images, which means the UHD image path is configured correctly.
%20%20User%20Manual_01a03dc8-0c6a-72db-9a5c-1572c49103fe.png)
Build the FM broadcast receiver flowgraph
Launch GNU Radio Companion from the terminal:
gnuradio-companion
Drag three core modules onto the canvas: UHD: USRP Source, WBFM Receive and Audio Sink.
%20%20User%20Manual_01a03dc8-0e53-7435-acd7-9cc1f13b6c75.png)
Module parameters:
Signal wiring: USRP Source output to WBFM Receive input, then WBFM Receive output to Audio Sink input.
Save the flowgraph file and click the Execute button. After automatic compilation the computer speakers output FM radio audio, which proves that GNU Radio and the USRP are working together.
Gqrx Installation and Usage
Gqrx is a lightweight spectrum visualisation and reception tool, useful for a quick look at a band without building a flowgraph.
Install Gqrx
sudo apt update
sudo apt install gqrx-sdr
No error prompts means the installation succeeded.
%20%20User%20Manual_01a03dc8-0fe5-728c-a6f5-a4429619884b.png)
Type gqrx in the terminal to launch the software, or open it from the application menu.
%20%20User%20Manual_01a03dc8-188d-71fd-a13a-8eed8ca6dc82.png)
The first run pops up a Device Configuration window. Select the B210 / UHD device in the drop-down list and click OK to initialise the hardware.
%20%20User%20Manual_01a03dc8-1e71-7698-a67c-27309512c7c6.png)
FM broadcast receiving parameter configuration
Enter your local FM frequency, such as 103.9 MHz, in the frequency input box, and select WFM (mono) or WFM (stereo) in the Mode drop-down.
Adjust the Volume slider and the LNA Gain slider until an obvious signal peak appears on the spectrum and the audio output is clear and free of noise.
%20%20User%20Manual_01a03dc8-2257-77e6-8c8d-db1e031bfa19.png)
Basic RX/TX Test with the Command Line Tools
UHD ships two command line utilities that need no graphical framework, which makes them the fastest way to confirm that both the receive path and the transmit path are alive.
Real-time spectrum receiving test
Command format:
uhd_fft -f <target frequency>
Example:
uhd_fft -f 100e6
%20%20User%20Manual_01a03dc8-299e-74da-80f7-0e0f701fad02.png)
A real-time FFT spectrum window pops up after running. The tunable range is 70 MHz to 6 GHz via the -f parameter.
Single-tone carrier transmission test
Command format:
uhd_siggen --freq <frequency> --const --amplitude <power coefficient>
Example:
uhd_siggen --freq 100e6 --const --amplitude 0.3
%20%20User%20Manual_01a03dc8-2bde-7669-9386-77d770937581.png)
Parameter explanation: --const generates an unmodulated carrier wave; amplitude ranges from 0.0 to 1.0 and controls the transmit power; press Ctrl+C to stop transmission.
Advanced SDR Applications and Experiments
This chapter covers a set of advanced practical experiments based on the USRP B210: spectrum monitoring, building a graphical spectrum analyser, an interference-suppressed FM receiver, and the wider research scenarios the board is suited to. The commands are given for Ubuntu; the GNU Radio flowgraphs are identical on Windows.
2.4 GHz WiFi spectrum observation
Connect a broadband antenna to the USRP and execute:
uhd_fft --freq 2.45e9 --gain 40 --samp-rate 20e6
%20%20User%20Manual_01a03dc8-2f43-76f2-a864-90ea6f8a0a7c.png)
Turn on a mobile phone WiFi hotspot and an obvious signal peak will appear in the spectrum window.
FM broadcast spectrum observation
Fit an FM antenna and execute:
uhd_fft --freq 93M --samp-rate 2M --gain 30
%20%20User%20Manual_01a03dc8-3130-724b-b157-584c5e252bbf.png)
A narrow, high-amplitude peak corresponds to a local FM radio station.
Build a Real-time Spectrum Analyser in GNU Radio
Launch GNU Radio Companion from the terminal:
gnuradio-companion
Step 1 Drag the UHD: USRP Source module onto the canvas
Step 2 Module parameter configuration
Step 3 Drag the QT GUI Frequency Sink display module onto the canvas
Step 4 Connect the USRP Source output to the QT GUI Frequency Sink input
%20%20User%20Manual_01a03dc8-34c7-7458-ac31-baa63415e507.png)
Step 5 Click Run to launch the real-time spectrum window
%20%20User%20Manual_01a03dc8-3641-77f8-913e-1943df777721.png)
Compared with the command line uhd_fft, the graphical flowgraph supports far richer real-time parameter adjustment, and it is the natural starting point for adding your own processing blocks.
Filter-enhanced High-quality FM Demodulation Receiver
This experiment inserts a low-pass filter into the FM chain to suppress out-of-band interference and improve audio clarity. It has more host-side dependencies than the earlier experiments, so work through the three subsections in order.
System audio permission configuration
ls -la /dev/snd
sudo usermod -aG audio $USER
newgrp audio
groups
aplay -l
sudo apt install alsa-utils sox
play -n synth 2 sin 440
%20%20User%20Manual_01a03dc8-3793-724a-aa5b-c5d815faff46.png)
If you hear a 440 Hz tone, the audio path is working.
Install numba for filter operation acceleration
sudo apt update
sudo apt install python3-pip -y
sudo python3 -m pip install numba -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
This first installs the pip package manager for Python 3, then installs Numba from a domestic mirror.
%20%20User%20Manual_01a03dc8-5332-76c8-802b-8663d3366191.png)
Complete FM demodulation signal processing logic
The Gaussian filter module in this experiment depends on Numba, which requires NumPy 1.22 or higher. Check the currently installed version:
python3 -c "import numpy; print(numpy.__version__)"
On a current Ubuntu the answer is often 2.2.6. GNU Radio has compatibility conflicts with the NumPy 2.x series, so downgrade to a stable compatible version rather than using the latest release. Remove the existing installation first:
sudo pip3 uninstall numpy
Check the version again:
python3 -c "import numpy; print(numpy.__version__)"
If the output is now 1.21.5, that copy was pre-installed as an Ubuntu system dependency and cannot be fully removed. Force an upgrade to NumPy 1.24.4:
sudo pip3 install numpy==1.24.4 --force-reinstall -i https://pypi.tuna.tsinghua.edu.cn/simple
Recheck the version to confirm success:
python3 -c "import numpy; print(numpy.__version__)"
%20%20User%20Manual_01a03dc8-5872-770a-99ef-80be80e9be59.png)
Launch GNU Radio Companion:
gnuradio-companion
Build the following signal flow: UHD: USRP Source, then Rational Resampler with 4x decimation, then a 100 kHz low-pass filter, then WBFM Receive, then a second Rational Resampler that converts the 50 kHz audio to the standard 48 kHz, then Audio Sink.
%20%20User%20Manual_01a03dc8-5af0-728c-97a9-ceeb7f9d589c.png)
Add a QT GUI Frequency Sink to display the spectrum before and after filtering. The filter cutoff frequency and transition width can be adjusted with a real-time slider to suppress out-of-band interference and improve audio clarity.
%20%20User%20Manual_01a03dc8-5fbd-71b8-898d-0a70749542bc.png)
If the USRP device still cannot be detected at this point, and the UHD driver is confirmed to be installed correctly, close VMware Workstation completely, then run Command Prompt as administrator on the Windows host and restart the VMware USB Arbitration Service to restore USB device passthrough:
net start VMUSBArbService
sc query VMUSBArbService
%20%20User%20Manual_01a03dc8-67cc-737d-9ce4-4ef4c0e5c4e1.png)
Multi-scenario Extended Applications
The USRP B210 supports a broad range of research and teaching work:
• Digital modulation research: BPSK, QPSK, 16QAM, 64QAM, GMSK and OFDM
• ISM band equipment protocol reverse engineering
• GSM and LTE cellular signal analysis based on srsRAN and OpenBTS
• GPS signal simulation for receiver testing
• FMCW and passive radar prototype development
• Amateur radio digital modes: FT8, WSPR and satellite communication
• Long-term spectrum monitoring with continuous IQ data recording
• Rapid prototyping of custom wireless communication protocols
Because the FPGA is a Kintex-7 part with a Vivado 2024.1 source project, the board can also be used as a general FPGA development target, with custom logic inserted into the sample path ahead of the USB interface.
Troubleshooting and Parameter Quick Reference
This chapter compiles all faults mentioned in the preceding chapters into a fault lookup table, and sorts out the receiving parameters for each tool for direct reuse by readers.
Windows Troubleshooting
Ubuntu Troubleshooting
Per-tool Parameter Reference
UHD Command Quick Reference
Reference
https://opensourcesdrlab.com/products/b210-kintex-7
https://files.ettus.com/binaries/uhd/latest_release
https://github.com/extioxxx/usrp-ExtIO
https://www.beautifulzzzz.com/gnuradio/tutorial/topic/2
If you have any questions, please feel free to contact us at any time.
%20%20User%20Manual_01a03dc8-6e22-745b-b4ba-8a28bdbc3174.png)
Follow our YouTube channel for more video tutorials, including full content of the procedures in this manual.