A quick guide for using hardware with GNU Radio¶
No hardware available?¶
GNU Radio can be used on its own without any hardware. GNU Radio has several blocks that can generate data or read/write from/to in different formats, like binary complex values or WAV-files. A lot of prerecorded examples exist that can be used to develop applications without need for expensive hardware. Also, you can ask on the mailing list if anyone has some data available if it's a common waveform.
- A quick guide for using hardware with GNU Radio
Which hardware can be used with GNU Radio?¶
If you need to gather live real-world signals or output signals, several different possibilities exists:
- Sound interface - cheap and easy
- USRP - Opensource spinoff with RF frontends
- Comedi - high quality framework for professional Data Acquisition and Output hardware
Most computers nowadays are shipped with a built-in sound interface or sound card. 16 Bit resolution at 44.1 kHz (kSPS) and two channels is a long available level that you can expect. Virtually every operating system supports this hardware out of the box, and it's sufficient for a lot of DIY and hobby applications. You can expect stereo (2 channels) input and output.
If the quality of a built in sound interfaces are not very expensively built and introduce noise or show bad frequency characteristics or degraded resolution, that is dynamic range. Fortunately, high quality sound interfaces are offered, like professional digital recording equipment, with more than a dozen channels, up to 24bit resolution and 192kHz sampling rate. These interfaces can be connected internally via PCI bus or externally via USB.
The USRP Series by Ettus Research¶
During the development of GNU Radio, it turned out that no Open Source high speed interface was available. Ettus Research took to challenge to develop the "Universal Software Radio Peripheral" device. The family of hardware grew, now including different motherboards with USB or Gigabit Ethernet interfaces, possible sampling rates up to 100 MSPS, a range of front-ends for reception and transmission from 0Hz up to over 5.8GHz, as PC bound device or as standalone embedded device.
While the USRP device is very capable and flexible and well supported, for some application other interfaces may be more adequate. USRP devices can be used without GNU Radio as well without restriction of any kind.
All USRP devices use the same universal hardware driver (called the UHD driver), which is natively supported by GNU Radio (officially distributed since release 3.4.0). UHD software is developed as a separate project from GNU Radio, but all UHD devices can nicely and easily be used from within GNU Radio.For more information read
- UHD hardware driver for all Ettus Research products
- "Universal Software Radio Peripheral" device
- USRP Architecture Overview and FAQ
- The USRP2
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.
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 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.
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
Check this out. The S-Mini has it's own driver (Symplex Hardware Driver, SHD) which is supported by
GNU Radio (in gr-shd).
RTL2832 TV tuners¶
Every device that can be access from the 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.