Hardware
A Quick Guide to Hardware and GNU Radio
Can't Buy Hardware? No problem!
GNU Radio can be used on its own, without any hardware, as a simulation & development environment. GNU Radio has several blocks that can generate data or read/write files in different formats, such as binary complex values or even WAV-files. A lot of prerecorded examples exist that can be used to develop applications without the need for hardware. If you are looking for a particular waveform to develop with and don't have a capture, ask on the mailing list and someone can likely help!
Additionally, GNU Radio is a powerful tool for hardware simulation. You can simulate complete transmitter and receiver chains, including RF, analog, and other relevant impairments that you would encounter in 'real-world' operation.
Commercially Available SDR Platforms
If you want to use real hardware, you have a number of options. The list of hardware vendors that provide GNU Radio support for their products is growing quickly. Hardware ranges from very expensive measurement-quality systems, to very cheap receiver hardware that you can get for less than $50.
This is not a complete list, but rather provides a rundown of some of the more common options.
XTRX CS | XTRX Pro | USRP B2x0 | bladeRF | LimeSDR | LimeSDR Mini | RTL-SDR R820T2 | RTL-SDR E4000 | ADALM-Pluto | |
---|---|---|---|---|---|---|---|---|---|
Tuning range | 30 MHz - 3.7 GHz | 30 MHz - 3.7 GHz | 70 MHz - 6 GHz | 300 MHz - 3.8 GHz | 30 MHz - 3.8 GHz | 10 MHz - 3.5 GHz | 22 MHz - 2.2 GHz | 65 MHz - 2300 MHz, gap@1100 MHz | 325 MHz - 3800 MHz |
Duplex | Full MIMO | Full MIMO | Full MIMO | Full SISO | Full MIMO | Full SISO | RX only | Rx only | Full SISO |
ADC/DAC resolution | 12-bit | 12-bit | 12-bit | 12-bit | 12-bit | 12-bit | 8-bit | 8-bit | 12-bit |
Max RF bandwidth | 120 MHz | 120 MHz | 56 MHz | 28 MHz | 61.44 MHz | 30.72 MHz | 3.2 Mhz | 20 MHz | |
Rx Noise Figure dB | <3.5 | ||||||||
Channels | 2 | 2 | 1 (2 for B210) | 1 | 2 | 1 | 1 Rx only | 1 Rx only | 1 |
Transmit power | 0 to 10dBm | 0 to 10dBm | 10dBm+ | 6dBm | 0 to 10dBm | 0 to 10dBm | none | none | 7 dBm |
RF chipset | LMS7002M | LMS7002M | AD9364 or AD9361 | LMS6002M | LMS7002M | LMS7002M | R820T2 | E4000 | AD9363 |
FPGA | Xilinx Artix7 35T | Xilinx Artix7 50T | Xilinx XC6SLX75 | Altera 40KLE/115KLE | Altera 40KLE | Altera MAX 10 | none | None | |
FPGA Gates, DSP slices | 33k, 90 DSP | 52k, 120 DPS | 75k, 132 DSP | 40K, 58 DSP opt 115k | 40K, 58 DSP | 16k, 45 mult | 0, 0 | 0, 0 | |
Industrial temperature range | no | yes | no | Optional | no | no | no | no | 10-40C |
Temperature sensors | yes | yes | no | no | yes | no | no | No | |
Frequency stability | ±0.5 w/o <±0.01 ppm w/GPS | ±0.1 w/o <±0.01 ppm w/GPS | ±2 ppm | ±1 ppm | ±2.5 ppm | ±2.5 ppm | ±0.5-25 ppm options | ±0.5-25 ppm options | ± 25 ppm |
TCXO | VCTCXO | Optional | Optional | ||||||
GPS synchronization | on board | on board | Addon (+$636) | no | no | no | no | no | No |
Bus/interface | PCIe, opt USB 3 adapter $85 | PCIe, opt USB 3 adapter $85 | USB 3 | USB 3 | USB 3 | USB 3 | USB 2 | USB 2 | USB 2.0 OTG |
CPU/Bus Interface | CY3014 | RTL2832U | RTL2832U | A9,667MHz, | |||||
Raw bus bandwidth | 10 Gbit/s | 10 Gbit/s | 5 Gbit/s | 5 Gbit/s | 5 Gbit/s | 5 Gbit/s | 480 Mbit/s | 480 Mbit/s | 4800 Mbits/s |
Dimensions | 30 × 51 mm | 30 × 51 mm | 97 x 155 mm | 87 x 131 mm | 100 x 60 mm | 69 x 31.4 mm | 40 x 60 mm typical | 40 x 60 mm typical | 117 x 79 mm |
Extra features | GPIO, GPS, SIM card | GPIO, GPS, SIM card | GPIO | GPIO | GPIO | GPIO | SMA optional | SMA optional | |
Sample Clock Sync | Yes | Yes | Yes | Yes | Yes, In/Out | Yes, In | No | No | |
Time stamp Sync | Yes | Yes | Yes | Yes | No | No | No | No | |
Bias T | No | No | No | Yes | No | No | Optional | Optional | |
ANT/CLK Connectors | 10 U.FL | 2 SMA, 1 U.FL Clk | Chip optional SMA | Chip optional SMA | SMA x 2 | ||||
Price | $260 | $490 | $686 - $1,119 | $415 | $299 | $139 | $10 - $40 | $10 - $40 | $249 |
''This list is in alphabetical order. Please maintain that order if you add new devices.''
Analog Device ADALM-PLUTO
Analog Device's ADALM-PLUTO AD9363 single channel based SDR with a range of 325-3200 MHz and a Zynq Z-7010 FPGA.
Analog Devices FMCOMMS2/3/4/5 FMC cards + Xilinx Zynq carrier cards.
The Analog Devices boards should not be regarded as stand alone SDR products, but as platforms that are used to either build commercial hardware products, or understand things at the lowest level. If you want to just experiment/use GNURadio, you are better off ignoring these boards, and going to Ettus section. There are commercial systems which are based on Analog Devices's chips, that may be better supported in GNURadio, like the B200 or B210 from Ettus, or the ASRP4 from Agile Solutions.
Analog Devices makes an AD9364 based platform, which is on a evaluation board. The AD9364 is a 1Rx / 1Tx high performance, highly integrated RF Agile Transceiver™. Its programmability and wideband capability make it ideal for a broad range of transceiver applications. The device combines an RF front end with a flexible mixed-signal baseband section and integrated frequency synthesizers, simplifying design-in by providing a configurable digital interface to a processor. The AD9364 operates in the 70 MHz to 6.0 GHz range, covering most licensed and unlicensed bands. Channel bandwidths from less than 200 kHz to 56 MHz are supported.
- AD-FMCOMMS4-EBZ : The AD-FMCOMMS4-EBZ board is a comes specifically tuned and optimized to 2.4 GHz and due to the limitations of the on-board discrete external components (baluns), it may exhibit diminished RF performance on some other programmed configurations.
Analog Devices makes an AD9361 based platform, which is on a few different evaluation boards. The AD9361 chip is ideal for a broad range of MIMO (2Rx, 2Tx)transceiver applications. Otherwise it is identical to the AD9364 (70 MHz to 6.0 GHz tuning range, 200 kHz to 56 MHz RF bandwidth). It can be found on:
- AD-FMCOMMS2-EBZ : The AD-FMCOMMS2-EBZ board is a comes specifically tuned and optimized to 2.4 GHz and due to the limitations of the on-board discrete external components (baluns), it may exhibit diminished RF performance on some other programmed configurations.
- AD-FMCOMMS3-EBZ : The AD-FMCOMMS3-EBZ provides software developers and system architect who want a single platform to operates over a wider tuning range than the AD-FMCOMMS2-EBZ. RF performance expectations of this board must be tempered with the very wide band front end. It does meet the datasheet specifications at 2.4 GHz, but does not over the entire RF tuning range that the board supports. This board is primarily intended for system investigation and bringing up various waveforms from a software team before custom hardware is complete.
- AD-FMCOMMS5-EBZ : The AD-FMCOMMS5-EBZ is a high-speed analog module designed to showcase how to sync two AD9361 in multiple-input, multiple-output (4 Rx, 4 Tx MIMO) applications. The AD-FMCOMMS5-EBZ board has both wideband channels covering the full 6 GHz range, as well as narrowband channels matched to 2.4GHz. The AD-FMCOMMS5-EBZ also contains a calibration matrix between the two AD9361s. This switch matrix hardware, combined with the Analog Devices supplied API software, allow for a full digital and RF synchronization between the two AD9361s.
Those boards do not work by themselves, and do require a some sort of FPGA platform. There are HDL designs for a few different Xilinx carriers : The ZedBoard, Xilinx ZC702, Xilinx ZC706 and Avnet's mini-itx, which are all based on Xilinx's Zynq. All of these use an externally built GNURadio block.
These platforms are built on Linux in kernel drivers using the IIO subsystems, which was reviewed with an SDR usecase at FOSDEM 2015
Ettus Research USRP™ Devices
The Ettus Research USRP™ platform is designed for RF applications from DC to 6 GHz, and provides a wide range of devices. The USRP™ product line spans from affordable hobbyist SDRs to high-end high-bandwidth radios. There are also options for GPS-disciplined synchronization, MIMO configurations, and embedded / headless devices.
For information regarding the USRP™ product line, see the Ettus Research website.
All USRPs use the USRP Hardware Driver (UHD™) software to provide device drivers, which can be used in GNU Radio through the `gr-uhd` component. The UHD source code is available on GitHub.
Fairwaves UmTRX
UmTRX is an open hardware dual-channel wideband transceiver that covers 300MHz to 3.8GHz. It includes a TCXO and GPS for frequency stability, and is designed for use with mobile base stations, but can easily be used with many other applications.
Host connection is via gigabit Ethernet and a special version of UHD provides a host driver, along with FPGA and ZPU firmware. An alternate version of the firmware, 4xDDC, can be used to provide double the number of receive signal paths (4), for receive-only applications.
Expansion via mezzanine cards is possible and the UmSEL daughter board can be used for improved performance with GSM use.
Funcube Pro+ Dongle
The Funcube Pro+ Dongle is a small and inexpensive device for reception only. It covers a frequency range from 150kHz to 240MHz and 420MHz to 1.9GHz. and plugs into a USB port. There are special blocks available on CGRAN.
Great Scott Gadgets HackRF
HackRF One, designed and manufactured by Great Scott Gadgets, is an open source hardware platform for Software Defined Radio. Operating from 1 MHz to 6 GHz, HackRF One is a half-duplex transceiver peripheral with a Hi-Speed USB 2.0 connection. It is bus-powered, portable, and has a maximum quadrature sample rate of 20 Msps. GNU Radio integration is provided via gr-osmosdr.
Lime SDR
Lime Micro offers a one and two channel versions (1x1 and 2x2) of their USB powered SDR that has a sampling bandwidth of 61 MHz and a frequency range of 100 kHz to 3800 MHz. It is available from Crowd Supply
Microtelecom Perseus
The Microtelecom Perseus is a USB 2.0-connected receiver targeted for amateur radio SDR, with a frequency range of 10 kHz to 40 MHz and appropriate preselect filters. See http://www.microtelecom.it/perseus/ for more information.
Andrea Montefusco wrote GNU Radio integration that is provided via gr-microtelecom.
Novena + Myriad-RF module
The Novena open hardware computing platform plus the companion Myriad-RF SDR module together provide a system with a quad-core ARM SoC, GPU, FPGA, dual-Ethernet and wideband transceiver that covers from 380MHz to 3.8GHz. This can be used "headless", with a HDMI monitor, or configured as an all-in-one desktop or a laptop with a flat panel display.
GNU Radio applications are supported via the SoapySDR API and gr-osmosdr blocks, and also via the UHD API and blocks thanks to a SoapySDR module for this.
Nuand BladeRF
BladeRF is a wideband transceiver that covers 300MHz to 3.8GHz, with coverage down to 10MHz made possible with the addition of a block up/down-converter.
Host connection is via USB 3.0 and Nuand support use with Linux, Windows and Mac OS X. GNU Radio integration is provided via gr-osmosdr.
rtl-sdr TV tuners
These are USB dongles based on the Realtek RTL2832 or E4000 chips which are designed for DAB/DVB/FM. They can be used as SDR receivers over a frequency range that extends beyond popular television frequencies. Further information is available from osmocom. GNU Radio integration is provided via gr-osmosdr or gr-baz. These USB dongles are sold from many vendors on the internet including on Amazon and E-Bay starting at around $10, new. There are some models with improved specification versions such as those from Nooelectric that cost up to about $40+. Performance, quality and features can widely vary between different manufactures. Usable performance at hgher frequencies may require models with heatsinks, metal cases, etc. Options include RF frequency-range/performance, bias-T, xtal tolerance, TCXO, heatsink, case, ANT as SMA/U.FL/On-board-chip, etc. There are two common RF chipsets used in these dongles, the most common is based on the R820T2 with a frequency range of upto 25 MHz ~ 1750 MHz and is often used for ADS-B monitoring. While the less common E4000 based has an extended range of 55 MHz - 2300 MHz, but the E4000 has a dead spot around 1100 MHZ and thus CAN NOT be used for ADS-B. There is a small ecosystem of low-cost add-on Filters/LNAs(bias-T may be required), antenna kits, books, videos, tutorials, etc that are available from multiple vendors on the Internet.
SDRplay RSP family of SDR receivers
These are 12/14bit SDRs giving up to 10MHz spectrum visibility from VLF (1kHz) up to 2GHz with no need for an upconverter. Further information is available from www.sdrplay.com. GNU Radio integration is provided via source blocks developed by HB9FXQ - these are available by following this flow: https://www.sdrplay.com/docs/gr-sdrplay-workflow.pdf
Softrock-like Radio frequency interfaces
Stemming from the amateur radio Softrock (Digital) Direct Conversion devices a family of radio front-ends evolved. The common principle is a direct conversion device that complex mixes the RF signal to base band (a.k.a. audio frequency), using a standard stereo audio interface for input and output. The I and Q channel are mapped to stereo left and right. Advanced devices offer a interface for frequency control and other parameters.
Fairwaves XTRA
Fairwaves offers the small form-factor dual channel XTRA that has a sample rate of up to 120 MSPS SISO / 90 MSPS MIMO and a tuning range of 30 MHz - 3.8 GHz with a PCIe interface and optional PCIe to USB interface for development. Based on the Lime Microsystems LMS7002M with a Xilinx Artix 7 35T/50T FPGA. Also offered is a pro version with a larger fpga and extended temperature range.
Using your Sound Card with GNU Radio
Most computers nowadays are shipped with a built-in sound interface or sound card. Modern systems universally support input and output with 16 bit resolution at 48 ksps on two channels. Virtually every operating system supports this hardware out of the box, and it's sufficient for a lot of DIY and hobby applications. Additionally, high quality sound interfaces (professional digital audio recording equipment) are available with more than a dozen channels, up to 24bit resolution and 192 ksps.
GNU Radio can use a sound card for both input and output. One way you can use this capability is to create audio interfaces. Do you remember the wonderful screeching and squawking of modems? You could use GNU Radio to experiment with similar communication techniques over audio.
Another way to take advantage of GNU Radio's audio capability is to use a hardware device that converts between audio and RF. Platforms such as SoftRock can be used, in conjunction with GNU Radio and a sound card, to implement a complete radio.
Building your Own Hardware
Several designs are available for electronics enthusiasts interested in assembling their own SDR hardware. Open Source Hardware designs known to work with GNU Radio include:
Other options
Comedi
comedi support is dropped as of GNU Radio 3.8.
The comedi project aims to offer drivers for many different data acquisition devices. GNU Radio includes a component that uses this library, which enables GNU Radio to use all devices support by comedi. Comedi is based on Linux kernel drivers, which results in good real time capabilities, but binds comedi to the Linux platform.
The Catch-All Clause
Every device that can be accessed from your operating system can be supported by GNU Radio. You can write your own drivers by creating source and sink blocks for your specific hardware.
A very comprehensive and structured list about Software Defined Radio and Software Radio by Christophe F4DAN can be found at http://f4dan.free.fr/sdr_eng.html
If you cannot find support for your favourite device, ask at the mailing list for help. Maybe someone already got a working solution or wrote a block, or at least you can get tips and encouraging words for building a block for this hardware.