Hardware

From GNU Radio
Jump to navigation Jump to search

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.

There was a detailed Evaluation_of_SDR_Boards-1.0.pdf Evaluation of SDR Boards and Toolchains in 2020 by Alexandru Csete and Sheila Christiansen for the European Space Agency and the Libra Space Foundation, This instrument based review covers the RTL-SDR Blog V3, Airspy Mini, SDRplay RSPduo, LimeSDR Mini, BladeRF, Ettus USRP B210 and Analog Device's Pluto SDR.

This is not a complete list, but rather provides a rundown of some of the more common options. Manufacturers 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 manufacturer! 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 WiFi 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 Red Pitaya SDRlab122-16 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 300 kHz - 60 MHz (550 MHz) 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 Full 2x2 MIMO RX only Rx only Full SISO Full MIMI SISO Half Duplex
ADC/DAC resolution 12-bit 12-bit 12-bit 12-bit 12-bit 12-bit 12-bit 16-bit 8-bit 8-bit 12-bit 12-bit 8-bit
Max RF bandwidth 120 MHz 120 MSPS SISO / 90 MSPS MIMO 56 MHz 28 MHz 56 Mhz 61.44 MHz 30.72 MHz 550 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 2 RX + 2 Tx 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 ±0.5V / +4 dBm none none 7 dBm 9.7 0 - 15 dBm freq dependent
RF chipset LMS7002M LMS7002M AD9364 or AD9361 LMS6002M AD9361 LMS7002M LMS7002M LTC2185 + AD9767 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 Xilinx Zynq 7020 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 85K Logic Cells (~1.3M Gates) 0, 0 0, 0 35K 85k 64 Macro cell
Industrial temperature range no yes no Optional Optional no no 0 - 55 C no no 10-40C
Temperature sensors yes yes no no yes yes no yes 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 ±2.5 ppm up to ±12.00 or ext. ck option ±0.5-25 ppm options ±0.5-25 ppm options ± 25 ppm ± 15 ppm
TCXO VCTCXO VCTCXO 122.88 MHz 14bit 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 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 Gbit Ethernet + opt. WiFi 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 110 x 67 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 16GPIO, SD Card, LinuxOS, USB 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 Optional No No connector In/Out
Time stamp Sync Yes Yes Yes Yes Yes No No No No No
Bias T No No No Yes Optional No No Optional Optional No
ANT/CLK Connectors 2Rx/2Tx + 3CLK U.FL 6 Rx/4Tx+2CLK U.FL 2 SMA, 1 U.FL Clk 2 RX + 2 TX SMA 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 700$ $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.

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 XTRX

Fairwaves offers the small form-factor dual channel XTRX 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.

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.

KerberosSDR

The KerberosSDR 4 Channel Coherent RTL-SDR For Direction Finding & Passive Radar is based on four R820T2 RF ICs. Status of GnuRadio drives is unknown.

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 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.

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. Complete kits with expansion board and enclosure are available for less than US$900

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.

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.

YARD Stick One

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:

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 (this list has not been edited or updated since 2010 even though it still contains relevant information).

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.