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.
Ready for that first step with real hardware? A very low cost (US $10.00+) receive only hardware option is an RTL-SDR described below will allow you to sample (Rx Only) live signals.
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 RTL receive only 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. Manufactures may currently have more versions and options than those shown here. Specifications are summary and may not reflect the performance across the spectrum - read current full specs from the manufacture! Some of the designs are open source hardware or have been cloned. Some of the clones are available with improved specs such as improved clocks. Keep in mind that clones do not support the creators of the systems and may not have the same quality control or customer support, if any - caveat emptor. The systems described here top out at around $1k, but there are higher-end/higher-cost SDR systems available. In addition to a SDR, you will need an antenna and depending on your application you may need filters, LNA/PA amplifiers, etc. to make a functioning transceiver.
To understand the capabilities and performance of a SDR it is often helpful to review the datasheets of the RF IC that is used to understand the best case limits of what the board design can achieve. In designing the particular board the design may be optimized for cost or for a particular frequency that that may result in the RF performance of the board being less than what the RF IC can support. Generally, the boards listed on this page are built on inexpensive consumer grade FR4 material that has reduced performance above a few GHz. "Professional" RF equipment above a few GHz tends to be built on very expensive impedance controlled PCB material such as that manufactured by Rogers. With very good engineering and/or slightly improved FR4-like alternatives consumer PCB technology can be extended to 7 GHz. As 6E starts to extends into the 5.7-7 GHz range in the US we can expect to see support for lower cost RF ICs and manufacturing at these higher frequencies. Demand for self-driving car radar is driving development of lower cost RF ICs in the 60-80 GHz range.
Summary Of Features For Some SDRs
|XTRX CS||XTRX Pro||USRP B2x0||bladeRF||bladeRF Micro 2.0||LimeSDR||LimeSDR Mini||RTL-SDR R820T2||RTL-SDR E4000||ADALM-Pluto||New Horizons||Hack RF One|
|Tuning range||30 MHz - 3.7 GHz||30 MHz - 3.7 GHz||70 MHz - 6 GHz||300 MHz - 3.8 GHz||47 Mhz - 6 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||70 MHz - 6 GHz||1 MHz - 6000 MHz|
|Duplex||Full MIMO||Full MIMO||Full MIMO||Full SISO||Full MIMO||Full MIMO||Full SISO||RX only||Rx only||Full SISO||Full MIMI||SISO Half Duplex|
|Max RF bandwidth||120 MHz||120 MHz||56 MHz||28 MHz||56 Mhz||61.44 MHz||30.72 MHz||3.2 Mhz||20 MHz *limited by USB 2.0 and software to ~4Mhz||56 MHz / CH|
|Rx Noise Figure dB||<3.5|
|Channels||2||2||1 (2 for B210)||1||2||2||1||1 Rx only||1 Rx only||1||2||1 Half Duplex|
|Transmit power||0 to 10dBm||0 to 10dBm||10dBm+||6dBm||8dBm||0 to 10dBm||0 to 10dBm||none||none||7 dBm||9.7||0 - 15 dBm freq dependent|
|RF chipset||LMS7002M||LMS7002M||AD9364 or AD9361||LMS6002M||AD9361||LMS7002M||LMS7002M||R820T2||E4000||AD9363||AD9361||MAX 2837/Max5864|
|FPGA||Xilinx Artix7 35T||Xilinx Artix7 50T||Xilinx XC6SLX75||Altera 40KLE/115KLE||Intel Cyclone V||Altera 40KLE||Altera MAX 10||none||None||Xilinx Zynq 7000||Zync-7020||XC2C64A-7VQ100C CPLD|
|FPGA Gates, DSP slices||33k, 90 DSP||52k, 120 DPS||75k, 132 DSP||40K, 58 DSP opt 115k||49-301k, 66-342DSP||40K, 58 DSP||16k, 45 mult||0, 0||0, 0||28k||85k||64 Macro cell|
|Industrial temperature range||no||yes||no||Optional||Optional||no||no||no||no||10-40C|
|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||±2.5 ppm||±0.5-25 ppm options||±0.5-25 ppm options||± 25 ppm||± 15 ppm|
|TCXO||VCTCXO||VCTCXO||Optional||Optional||VCTCXO 40MHZ (W/16bit DAC 0.2PPM max)||opt. 0.5ppm TXCO|
|GPS synchronization||on board||on board||Addon (+$636)||no||no||no||no||no||no||No||optional expansion||No|
|Bus/interface||PCIe, opt USB 3 adapter $85||PCIe, opt USB 3 adapter $85||USB 3||USB 3||USB 3||USB 3||USB 3||USB 2||USB 2||USB 2.0 OTG||USB 2.0+ETH||USB 2.0 HS|
|CPU/Bus Interface||Cypress FX3||CY3014||RTL2832U||RTL2832U||Dual A9,667MHz,||LPC4320|
|Raw bus bandwidth||10 Gbit/s||10 Gbit/s||5 Gbit/s||5 Gbit/s||5 Gbit/sec||5 Gbit/s||5 Gbit/s||480 Mbit/s||480 Mbit/s||480 Mbits/s||480 MBit/s 1000 MB/s (ETH)||480 MBit/s|
|Dimensions||30 × 51 mm||30 × 51 mm||97 x 155 mm||87 x 131 mm||63 x 102 mm||100 x 60 mm||69 x 31.4 mm||40 x 60 mm typical||40 x 60 mm typical||117 x 79 mm||75mm*102mm|
|Extra features||GPIO, GPS, SIM card||GPIO, GPS, SIM card||GPIO||GPIO||GPIO||GPIO||SMA optional||SMA optional||optional LCD, GPS||GPIO, RTC, opt case LCD|
|Clock Sync||Yes||Yes||Yes||Yes||Yes, In/Out, Ref||Yes, In/Out||Yes, In||No||No||connector||In/Out|
|Time stamp Sync||Yes||Yes||Yes||Yes||Yes||No||No||No||No|
|ANT/CLK Connectors||2Rx/2Tx + 3CLK U.FL||6 Rx/4Tx+2CLK U.FL||2 SMA, 1 U.FL Clk||Chip optional SMA||Chip optional SMA||SMA x 2||4 SMA (1 SMA opt GPS)||1 ANT + 2 CLK SMA|
|Price - typical US$||$260||$490||$686 - $1,119 2 CH clones ~$715||$415||$480-$720||$299||$139||$10 - $40||$10 - $40||$249||$642+$220 expansion||$300 official, down to ~$90 PCBA clones|
''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.
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.
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.
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. As the hardware design is open source there are 3rd parties selling board, kits, enclosures and fully systems integrated with host CPU/LCD that are available on multiple Internet sites including Amazon, eBay, banggood and other China direct websites starting at about $90 each or two for $150 for just the finished boards.
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
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.
New Horizons NH7020
The New Horizons NH7020 from GridRF is available via Alibaba and other internet resellers is based on the AD9361 with an rf tuning range from 70 MHZ to 6 GHz. It appears to have some features of the Analog devices CNO0412 Reference design. This appears to be an ADI Pluto like SDR that has been upgraded to a dual channel 6 gHz AD9361. The GridRF website proclaims, "this product ideas from ADI PLUTO, the official name is 'New Horizons SDR Platform',as you knew 'New Horizons' is a PLUTO discover spacecraft from NASA. like New Horizons do,hope ours discover from ADI PLUTO can give you a surprise and helping you deep discover with Software Defined Radio." There is also an expansion board with GPS, LCB and navigation button available. There are open source git hub repos for firmware/HDL (no schematics or gerbers) that appears to be forked from ADI's github.
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.
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.
Nuand BladeRF 2.0
BladeRF 2.0 Micro is a wideband MIMO transceiver that covers 47MHz to 6GHz with up to 56 Mhz of bandwidth. It has 2x2 MIMO, and can accept an external clock (GPSDO). The channels are phase coherent and can be used for beam forming applications, as well as direction-finding. It has a clock out allowing for daisy-chaining multiple boards. It has an onboard Altera Cyclone V FPGA that's user programmable.
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 receive-only USB dongles based on the Realtek RTL2832, E4000 or FC0012 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 and [RTL-SDR.COM that cost up to about $40+. Performance, quality and features can widely vary between different manufactures and unit to unit. Usable performance at higher frequencies may require models with heatsinks, metal cases, etc. Options include RF frequency-range/performance, bias-T, xtal tolerance, TCXO, heatsink, ESD protection, case, ANT as SMA/U.FL/On-board-chip, etc. There are three RF chipsets commonly 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. The least common RF chip is the FC0013 with an RF range of 22 MHz - 2200 MHz. There is a small ecosystem of low-cost add-on Filters, LNAs(bias-T may be required), antennas, books, videos, tutorials, bundled kits, 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.
A sub 1 GHz half duplex transceiver. Status of GnuRadio drivers is unknown.
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.
IC Manufacturer's Development Boards
Many IC makers create development boards for their ICs. Some of these are simple test fixture that just hold the IC while some are complete systems. ADI and Lime have released complete SDRs, listed above in the complete SDR section. As often the intent of these modules is to prove to customers the performance of the ICs these are often very high quality, if expensive boards that are not intended to be cost optimized solutions. These may be built on very expensive Rodgers PCB stock, while the inexpensive clones are often built on lower RF performing cheap FR4 board stock.
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.
- ADI also sells more integrated designs including the CN0412 ADRV-PACKRF Robust Portable Radio Design which is a complete RF SOM module. Carrier and break-out boards are available. See also the Pluto in the complete SDR section, above.
The AD-FMCOMMSx series boards do not work as SDRs 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.
A number of 3rd part SDRs and devlopment boards are listed at ADI.
These platforms are built on Linux in kernel drivers using the IIO subsystems, which was reviewed with an SDR use case at FOSDEM 2015
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:
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.