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.

This list is in alphabetical order. Please maintain that order if you add new devices.

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 Dongle

The Funcube Dongle is a small and cheap device for narrow band reception, offering a frequency range from 64MHz up to over 1700MHz. It plugs into sound cards, so it could be used with a vanilla GNU Radio, but there are special blocks available on CGRAN.

Great Scott Gadgets HackRF

HackRF, designed and manufactured by Great Scott Gadgets, is an open source hardware platform for Software Defined Radio. Operating from 10 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.

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 a library and GNU Radio block for it, which is not yet included in GNU Radio. Source can be found at http://github.com/amontefusco/gnuradio-amontefusco/tree/perseus . Make sure to read the build instructions in gr-perseus/README_PERSEUS.txt

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

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.

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


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.