A tiny, single-sided M.2 SDR board that you can operate easily using your web browser

Limited items in stock

View Purchasing Options
Jul 06, 2023

Project update 3 of 11

Native-Mode Applications

by Sergey Kostanbaev

The web features of uSDR are handy, but what if you require optimum performance for your favorite native application? Since uSDR has strong support for gr-osmosdr and SoapySDR, you can rely on SoapySDR’s UHD-translation capabilities to make most popular applications just work.

Our native libraries are designed with minimal dependencies and targeted for multiple platforms (however, only x86 and ARM have been tested so far). USB functionality relies on libusb and should work in all major OSes (Linux, Windows, and Mac OS). On the other hand, PCIe requires a kernel mode driver and only Linux is supported. The kernel driver has been tested on x86 and these ARM SoCs: Rockchip RK3899 and the Nvidia Tegra.

GNURadio is also well supported, as you can see below:

We’ve also done some optimization in uSDR control and managed to go beyond initial specs. By tweaking LSM6002S registers, we were able to get 40-42 MHz analog bandwidth. Maximum sample rate depends on board temperature and other factors, but the boards we have now work up to 65-68 MSPS without a problem. We’ll do more tests once we get more boards.

Below is an example using osmocom-fft:

Overclocking is a popular hobby, so you may be curious how far uSDR can go in terms of increasing sample rate. We did some experiments. First of all we installed an active fan to cool the board. Unfortunately this didn’t help much (+0-2 MSPS, depending the board). Then we increased VIO voltage from 1.8 V to 1.9 V. This is quite a safe value due to the extra drop on internal filters. This actually helped and we got a stable 74-76 MSPS rate. After increasing to 2.0 V, we got to 80 MSPS. Well, 2.0 V is definitely over recommended operation range! We even tried increasing voltage up to 2.19 V, but that only gave the same 80 or 81 MSPS.

With a 40 MHz analog filter, half of that range is wasted. However, the LMS6002 supports filter bypassing and, by applying an external ISM bandpass filter of 2400 - 2500 MHz, it’s possible to monitor almost the whole ISM band with ZigBee, Bluetooth, Wi-Fi, nRF, and many other protocols. However, we won’t enable this over-voltage feature by default since it can potentially damage the device.

Here’s GQRX with 80 MSPS and filter bypass 2410 - 2490 MHz.

High sample rates require good bus bandwidth and good processing power. To get more than 50 MSPS without drops, a host should support either two PCIe lanes or one lane with 5 GT/s speed, which is almost the case currently:

PCIe x1 Gen1PCIe x2 Gen1 / PCIe x1 Gen2
Raw speed2.5 GT/s5 GT/s
Theoretical limit217 MB/s434 MB/s
Continuous sample rate (max) @16 bit50 MSPS100 MSPS ¹

¹ Theoretical limit if uSDR could handle it

Tell us what native application you would like to try on uSDR, and maybe we’ll cover it in a future update! Meanwhile, let us know if you have any other questions or suggestions, and stay tuned.

Be sure to visit the uSDR campaign page and order your uSDR before the campaign ends.

Sign up to receive future updates for uSDR.

uSDR is part of Qorvo RF Accelerator

uSDR is part of Lime SDR Accelerator

uSDR is part of AMD FPGA Playground

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects