Wavelet Lab
Software Defined Radio
Sub-GHz
uSDR is an embedded software-defined radio (SDR) board that is optimized for ease of use and collaboration. It incorporates WebUSB technology, which enables full functionality in the Chrome browser—under Linux, Windows, MacOS, and Android—without requiring specific drivers or software.
SDR is an emerging field that grows more accessible every day, but newcomers still face significant barriers to entry. uSDR lets you get started right away, without the need to install a new operating system, compile drivers, or troubleshoot version conflicts in software and vendor-support libraries. Just open a web browser and there’s everything you need! This is our vision, and it’s why we develop WSDR, the web-based SDR platform for researchers, developers, lab technicians, students, radio enthusiasts, and anyone else who’s curious about this powerful new technology.
We designed WSDR to be as flexible as possible so you can extend its functionality and bring more applications to life.
We designed uSDR as a hardware showcase for the WSDR platform. (The u stands for µ, the Greek letter mu, and is pronounced "micro"). It’s a tiny board, in the M.2 2230 form factor, with A+E keys. This is a common format for Wi-Fi cards. All components are located on the top side, which simplifies thermal management. Built around the proven LMS6002 SDR chip from Lime Microsystems, uSDR provides the following features:
Even if your host doesn’t have an M.2 2230 A- or E- key interface, you can still use uSDR with the help of our adapters and our evaluation board. (If your favorite interface is missing from the list below, please let us know!)
Host Interface | uSDR Adapter Required | Third-Party Adapter? |
---|---|---|
M.2 2230 A or E key in PCIe mode | No adapter required | No adapter required |
M.2 2230 A or E key in USB mode | No adapter required | No adapter required |
M.2 2242/3042 B key in PCIe mode | B+M Adapter | Not available |
M.2 2242/3042 B key in USB 2.0 mode | B+M Adapter | Not available |
M.2 2242/2260/2280 M key in PCIe mode | B+M Adapter | Not available |
M.2 2242/2260/2280 M key in USB mode | Not available ¹ | Not available |
USB Type-A | USB Adapter or Development Board | Yes ² |
USB Type-C | USB Adapter or Development Board | Yes ² |
PCIe | Development Board | Yes |
Mini PCIe Full in USB 2.0 mode | Mini PCIe Adapter | Yes |
Mini PCIe Full in PCIe mode | Mini PCIe Adapter | Yes |
¹ The standard specifies optional USB 2.0 lines for M keys but we have yet to find them routed in a host
² Off-the-shelf, USB Type-A-to-Mini-PCIe & Mini-PCIe-to-M.2-2230-A/E adapters
Interfacing through USB 2.0 doesn’t mean that your SDR has to be in close proximity to your host. Just pick up a USB 2.0 extender, position the uSDR up to 60 m away from the host, and connect the two using twisted pair or coaxial cable.
It took us three hardware revisions to get the board right. The main challenge was to ensure proper signal integrity and to fit all of the components on just one side of the board.
uSDR includes the following components:
As some of our subscribers have noted, the initial revision included an additional upconverter mixer and RF connector to cover LF frequencies. Its performance fell below expectations, however, so we removed it. We’ve also exposed JTAG and 12 GPIO pins using some extra M.2 A+E key reserved pins. Finally, we exposed the external reference clock and routed the LNA3 input of the LMS6002D to M.2 pads. With one GPIO as 1PSS, it’s possible to synchronize multiple boards for a multi-channel array.
uSDR | LimeSDR Mini 2.0 | AntSDR E200 9363 | AntSDR E200 9361 | KrakenSDR | HackRF | Sidekiq™ M.2 | |
---|---|---|---|---|---|---|---|
Host interface | M.2 A+E key (USB & PCIe) | USB 3.0 | Ethernet | Ethernet | USB 2.0 | USB 2.0 | M.2 B+M key (USB & PCIe) |
Adapters for other interfaces | Yes | No | No | No | No | No | Yes |
Size | Tiny (22 x 30 x 2 mm) | Medium | Medium | Medium | Large | Large | Small (30 x 42 x 4 mm) |
Channels | 1 RX + 1 TX | 1 RX + 1 TX | 2 RX + 2 TX | 2 RX + 2 TX | 5 RX | 1 RX or 1 TX (half-duplex) | 2 RX + 2 TX |
Web UX | Yes (Native WebUSB) | No | No | No | Yes | No | Unknown |
Capable of cellular communication ¹ | Yes | Yes | Yes | Yes | No | No | Yes |
Frequency | 300 - 3700 MHz | 10 - 3500 MHz | 325 - 3800 MHz | 70 - 6000 MHz | 24 - 1766 MHz | 1 MHz - 6000 MHz | 70 MHz - 6000 MHz |
Sample rate | 30.72 MSps | 30.72 MSps | 61.44 MSps | 61.44 MSps | 2.56 MSps | 20 MSps | 61.44 MSps |
Price | $359 | $399 | $299 | $499 | $399 | $299 | Unknown |
¹BTS, eNB or gNB via srsRAN, OsmoBTS, etc.
We’ve also designed various adapters and expansion boards for uSDR.
It’s hard to find this particular adapter, so we made our own. It’s 22-mm wide and has 80/60/42 screw position to support the M.2 2280, 2260, and 2242 form factors. It contains no active components, so you can just trim off whatever portion of the adapter you don’t need.
There are plenty of Mini PCIe adapters out there, but we made this with a few extra features, including:
We designed our USB adapter so that it’s capable of supporting USB 3.0, should we manage to implement that before entering production (or perhaps for a future revision of uSDR). with an RX-TX optional loopback path for advanced calibration, and many other features, including:
This board was designed for developers and advanced users. It has USB Type-C connectors and can be plugged into a computer with a PCIe x4 slot. It provides the following features:
Modern browsers support WebUSB technology, which allows direct communication between your browser and a USB device. Data processing is done locally.
Browser | Supported |
---|---|
Chrome | ✓ |
Opera | ✓ |
Edge | ✓ |
Firefox | |
Safari |
The web is no longer slow! The JavaScript execution unit in modern browsers is powerful enough to run Linux. Even better, you don’t have to limit yourself to JavaScript. With WebAssembly and the Emscripten project, you can write code in C, C++, Rust, Go, or C#, which makes it easier to port existing applications to the web. And WebAssembly supports the SIMD Extensions, so you won’t even have to sacrifice DSP performance. And the list goes on. WebGPU technology allows your browser to leverage the power of your GPU, for example, and progressive web apps (PWAs) allow your browser-based software to function without an Internet connection.
WSDR is an extensible framework upon which you can run applications. We think of it in terms of three layers:
We will talk more during the campaign about how you can extend this platform to suit your own applications.
WSDR applications can receive data directly from uSDR hardware or from a remote source. Remote streams currently work over WebSockets, and we’re planning to accommodate WebTransport in the future (the primary advantage of WebTransport being support for UDP communication).
We have developed several ready-to-use applications, and we’d love to hear your feedback about what features and applications are most important to you. So far, we have implemented the following applications:
Signal Analyzer is a tool for understanding wireless signals. It has various data visualizers to help you identify interesting signals. It also has a number of built-in demodulator and data-packet interpreters. It can demodulate FM, PSK, MSK, and FSK—among other examples—to produce a bitstream. Then the bitstream can be packetized using nRF, LE, Bluetooth, and other packet parsers.
You can receive IQ data from a uSDR or from a remote stream, then you can record it or analyze it. The parsed data can be downloaded in hex or binary.
Spectrogram and Monitor are spectrum-monitoring apps. They allow you to configure FFT size, FFT window function, accumulation, and other uSDR parameters. FFT is currently done in the browser, but we’re working on getting it into the FPGA to maximize bandwidth.
Do you want to give others access to your radio-spectrum data? uSDR makes it as easy as sharing a link. Anyone with the link can access, record, or analyze the spectrum, but they will not be able to modify parameters such as bandwidth, sample rate, and gain settings.
It’s also possible to share the device, allowing the person with the link to have exclusive access and the ability to change any parameter they like.
Managing a large number of recordings can be challenging, especially when you need to download them from the cloud to make use of them. To help with this, WSDR has native support for working with cloud storage services. We have implemented a simple file-storage backend and would appreciate hearing your preferences regarding data storage providers that you would like us to add.
We made special gr-wsdr
blocks, so you can stream data to and from the WSDR platform. This connection works over WebSockets, and if you run GNURadio locally, your data will processed locally. Accessing uSDR and SDR DSP libraries is also possible through Node.js. And WebUSB works seamlessly in Node.js, which gives you the flexibility to deploy your application wherever you like.
Spectrograms, analyzers, and modulators do not fully showcase the capabilities of WSDR. To demonstrate its true potential, we have also developed a sophisticated web-based application: a 2G cellular network based on the Osmocom stack. (We opted for 2G because it allows you to connect to your network without a special SIM card.) Our biggest challenge was achieving predictable jitter for radio-frame processing, but we worked it out and managed to stand up a network that can last for days without issues.
There are still geographic regions that lack mobile coverage. And there are circumstances—even in advanced economies—where existing coverage lets us down. Making it easier to deploy a network is one way to bring us closer to the goal of providing coverage for everyone, all of the time. You can even run a network from the browser on your phone! Why not have one in your pocket, just in case?
Many large wireless-communication vendors rely on closed ICs, binary firmware blobs, pre-compiled software, or all three – to the point where it is nearly impossible to verify that everything works as advertised. Over the past decade, it has become increasingly important that we start building trusted communication platforms. The key to establishing trust lies in transparency: in having access to all parts of the system. Different groups have begun confronting different aspects of that challenge, focusing their efforts on everything from CPUs to PCBs.
Remember Openmoko? Had a look Precursor or MNT Reform and Pocket Reform? There are many such projects, and the best of them are making solid progress. But they lack access to trusted wireless solutions. Wi-Fi cards, GSM modems, and nRF chips still rely on binary blobs to operate. Initiatives like Osmocom, srsRAN, and openwifi are working on it. And so are we. We’ve noticed a distinct lack of small communication modules—devices comparable to Wi-Fi cards—that can be used by trusted hardware to create or communicate with trusted networks. We intend for uSDR to help fill that void.
And just having open-source FPGA code isn’t enough, as not all FPGAs can be programmed using an open-source toolchain. For example, the open-source toolchain for the 7-Series is currently missing some features, which is why we’re working with Symbiotic EDA to improve it. uSDR will have fully open-source support for USB mode by the time it ships.
Unfortunately, we can’t say the same for PCIe. Our PCIe firmware will be closed source to begin with, as will other features for which there is currently no open-source solution. We will be expanding our open-source coverage as openXC7 evolves. In addition, while projects like Osmocom and srsRAN won’t be a problem, software-defined Wi-Fi projects like openwifi and bladeRF-wiphy will require a dedicated porting effort. We’d love to take this on, but we can’t commit to it until we see how the campaign goes. Stay tuned!
To get started with uSDR, all you need is a browser and a USB port. Got an old laptop sitting around? Maybe one that doesn’t even have a hard drive in it? That’ll work. Just boot it from a USB stick, install Chrome, and connect to the local WSDR platform. All your apps and settings will be stored in the cloud.
Or you can use an Android smartphone or tablet, as long as it supports the USB OTG specification, which is relatively common. For older devices, you will probably need an OTG Micro-B to USB Type-A cable, preferably with a dedicated power port so you can keep your device charged at the same time. You can also find USB Type-C to USB Type-A adapters, with dedicated power, though they might not support "fast charging."
You can operate uSDR the same way you would any other SDR board, thanks to a native C library and SoapySDR support. That means all of your favorite applications will work seamlessly, including GNU Radio, srsRAN, OsmoBTS, and GQRX, to name just a few examples.
You can also connect to uSDR natively, from a Linux 5.4+ host, through an PCIe interface. To do so, you will need to compile and load our kernel driver, and the USB interface will become inaccessible. (If you connect through USB, you can operate uSDR without additional drivers.)
Interested in traditional applications for uSDR? Let us know!
We want to make uSDR more affordable but we also want to provide all of these exciting features. (And more!) Reducing the price would require a large manufacturing run, which would translate to a very high funding goal, which would increasing the likelihood that we fall short. Instead, we decided to set a minimal campaign goal, hold ourselves back from promising certain features, and introduce a number of stretch goals. If we hit certain funding targets, we will begin adding features. Subscribe to the project, follow our campaign updates, and learn more about these stretch goals as we announce them!
Please visit our GitHub for host library installation and other uSDR tools.
Information about adapter features and installation can be found at docs.wsdr.io.
If you have questions or suggestions, you can reach us using the Ask a Technical Question link toward the bottom of our campaign page.
uSDR is an open source project with many different elements. Below is a table of the corresponding licenses:
Project Element | Open Source License |
---|---|
uSDR schematics | CERN-OHL-S |
uSDR accessory schematics | CERN-OHL-P |
uSDR accessory PCB design files ¹ | CERN-OHL-P |
uSDR FPGA gateware for open-source toolchain | MIT |
uSDR Host-support libraries (SoapySDR) | MIT |
uSDR PCIe Linux kernel driver | GPLv2 |
WSDR SDR DSP libraries | MIT |
WSDR applications developed by us | MIT |
WSDR ported application | Same as the original project |
¹ Altium project files, Gerbers, BoM, etc.
uSDR is part of Lime SDR Accelerator
LMS6002D · RF transceiver
uSDR is part of AMD FPGA Playground
Artix™ 7 XC7A35T-2CPG236C
· FPGA
the glue between the radio frequency IC and host interface
uSDR is part of Qorvo RF Accelerator
QPL9547TR7
· RF amlplifier
enables RF range
RFSW6042TR7
· RF switch ICs
used in harmonic reduction filter bank
RFSW6062TR7
· RF switch ICs
used in cellular bands diplexer circuits
QPC3223SR
· 2-bit digital attenuators
enables automatic gain control (AGC) loop
"In the ever-evolving landscape of software-defined radio (SDR) technology, innovation knows no bounds. The uSDR M.2 board, a groundbreaking creation by Wavelet Lab, is set to revolutionize the SDR scene."
Produced by Wavelet Lab in Boston, USA.
Sold and shipped by Crowd Supply.
An M.2 2230 A+E-key software-defined radio (SDR) board
A uSDR dev board with a frontend, RX/TX filters, USB Type-C & PCIe x4 interfaces, a GPSDO clock oscillator, and 12 GPIOs. Does not include a uSDR
An M.2 B+M-key adapter for uSDR. Comes with a thermal interface
A USB adapter for uSDR. Comes with a thermal interface, a heatsink, and cables
A Mini PCIe adapter for uSDR. Comes with a thermal interface, a heatsink, and coaxial cables
Three 1.13-mm MHF4-to-SMA-F coaxial cables
From the Crowd Supply Basics project.
A low-noise active GPS antenna suited for the GPS L1 band. Accepts 3-5V DC and outputs RF via an SMA(m) connector. Optional adhesive mounting.
From the Crowd Supply Basics project.
A high-efficiency Taoglas TG.55.8113W tilt/swivel monopole whip antenna with an SMA connector covering 600 MHz - 6 GHz, including 4G and 5G bands.
From the Crowd Supply Basics project.
Abracon External Antennas exhibit low return loss characteristics, high gain, and Low Voltage Standing Ratio (VSWR). These external antennas are linearly polarized and come in a low profile package.
From the Crowd Supply Basics project.
916 MHz ISM Right Angle SMA Connector (LoRaWAN, HaLow, IoT Low-Profile Whip) by Linx Technologies
From the Crowd Supply Basics project.
One single 433MHz Swivel Stick Dipole – SMA-M Stick Antenna by Pulse. (Image includes two antenna to show swivel capability.)
From the Crowd Supply Basics project.
A TG.09 4G/3G/2G cellular hinged SMA(M) mount monopole antenna.
From the Crowd Supply Basics project.
A bundle of 40 multicolored, 7.8" (200 mm) long silicone-coated 24 AWG jumper wires with female terminations on each end. They are designed for use with standard pitch (.1", 2.54 mm) male headers.
From the Crowd Supply Basics project.
698 MHz to 3.6 GHz I-PEX MHF4 GNSS/WiMAX Antenna
usdr_pro · usdr.pro · wavelet-lab
·Our team has been working with digital signal processing (DSP) and software-defined radio (SDR) for the past decade. We leverage that experience to bring the quality and usability of related hardware to the next level, lowering barriers to entry for new members of this growing industry while continuing to support its core developer community.