|
|
Subscribe / Log in / New account

RF hacking with GNU Radio

By Forrest Cook
September 5, 2007

GNU Radio is an open-source software project which controls some simple hardware in order to create arbitrarily modulated radio signals. According to the FSF listing:

GNU Radio is a collection of software that when combined with minimal hardware, allows the construction of radios where the actual waveforms transmitted and received are defined by software: it turns the digital modulation schemes used in high performance wireless devices into software problems. Waveforms are generated as sampled digital signals, converted from digital to analog via a wideband DAC and then possibly upconverted from IF to RF. The receiver uses a wideband Analog to Digital Converter (ADC) that captures all the channels of the software radio node. The receiver then extracts, downconverts and demodulates the channel waveform using software on a general purpose processor.

[GNU Radio]

The Wikipedia entry for GNU Radio explains some of the project's history:

"Philanthropist John Gilmore initiated and has sustained GNU Radio with the funding of $320,000 (US) to Eric Blossom for code creation and project management duties."

"GNU Radio began as a fork of the Pspectra code that was developed by the SpectrumWare project at MIT. The Pspectra SDR design utilized a modular pipeline structure and the programmability of the Python programming language for easy configuration and flexibility. In 2004 a complete "rewrite" of the GNU Radio was completed but much of the original Pspectra code and structure remains."

To use the GNU Radio software, one must acquire some hardware in the form of the Universal Software Radio Peripheral. The USRP consists of a motherboard with a USB 2.0 interface, four D/A converters, four A/D converters, an Altera FPGA chip, and slots for two transmitter and two receiver daugherboards. The full hardware setup is not inexpensive at $850. Hardware subsets are available for less.

The GNU Radio code is a combination of Python and C++. The wxPython library is used for GUI functionality on the host system, control information is sent to the radio peripheral via USB.

Eric Blossom's 2004 paper Exploring GNU Radio explains the project in more detail. Some of the applications of GNU Radio include:

  • Making a multi-channel radio signal recorder.
  • Creation of Time Division Multiple Access (TDMA) waveforms.
  • A passive radar for tracking aircraft through broadcast TV distortion.
  • A radio astronomy receiver.
  • A Terrestrial Trunked Radio system (TETRA).
  • A Global Positioning System (GPS) receiver.
  • A platform for distributed sensor networks.
  • A spectrum analysis device.
  • Amateur radio equipment.
  • An ad-hoc mesh network platform.
  • A Radio Frequency ID (RFID) reader.
  • much more.
The paper includes some short Python applications for creating a telephone dial tone and making a software FM radio receiver.

A device that can create arbitrary waveforms via software is likely to get the attention of the regulatory agencies. From Eric Blossom's paper: "Every revolution has its political issues. Free software for building radios is troublesome to some people. In the US, we've run into opposition from the Motion Picture Association of America and its attempt with the Broadcast Flag to restrict the kinds of receivers that can be built for over-the-air digital TV. The US Federal Communications Commission has issued a Notice of Proposed Rule Making (NPRM) concerning Cognitive Radio Technologies and Software Defined Radios. Several troublesome issues are raised in the NPRM, including restricting the sale of high-speed digital-to-analog converters, requirements for digital signatures or similar methods to keep unauthorized software out of software radio hardware and new restrictions on radios built for the amateur radio market."

GNU Radio version 3.0.4 was announced last July, it featured one bug fix and a change of license to GPLv3.

To see some of the projects that are being done with GNU Radio, see the Our Users page.



to post comments

Why is the USRP FCC-legal, but wifi cards have closed source drivers?

Posted Sep 6, 2007 6:19 UTC (Thu) by shapr (subscriber, #9077) [Link] (5 responses)

So... if it's legal to purchase a GNU USRP, why isn't it legal to use my wifi card that's actually a software defined radio, as a software defined radio?

Doesn't make much sense to me.

I guess I should buy one so maybe they'll make a cigarette packet sized version.

Could this be used for wifi 802.11 frame injection? Would that require two 2.4MHz transceiver boards?

Why is the USRP FCC-legal, but wifi cards have closed source drivers?

Posted Sep 6, 2007 15:35 UTC (Thu) by proski (subscriber, #104) [Link] (4 responses)

I don't know what card you have, but chances are it was certified as a Part 15 device, not as an SDR. In any case, legality of selling something, legality of purchasing something and legality of using something are different things. And the copyright issue is completely separate from the FCC licensing.

Why is the USRP FCC-legal, but wifi cards have closed source drivers?

Posted Sep 6, 2007 16:58 UTC (Thu) by shapr (subscriber, #9077) [Link] (3 responses)

So, if vendors selling wifi cards licensed them as SDR, then they could be used for both wifi, SDR, and could have open source drivers?

Why don't they do that?

Why is the USRP FCC-legal, but wifi cards have closed source drivers?

Posted Sep 6, 2007 18:59 UTC (Thu) by proski (subscriber, #104) [Link] (2 responses)

I believe SDR certification takes more time and money. As for the open source drivers, I think chipset vendors just being too risk averse, and SDR certification won't change that.

Why is the USRP FCC-legal, but wifi cards have closed source drivers?

Posted Sep 7, 2007 22:49 UTC (Fri) by shapr (subscriber, #9077) [Link] (1 responses)

What's the risk?

Why is the USRP FCC-legal, but wifi cards have closed source drivers?

Posted Sep 8, 2007 14:30 UTC (Sat) by proski (subscriber, #104) [Link]

The risk is that FCC or another regulatory agency would consider the device non-compliant if there are drivers that make it easy to use the device beyond the allowed frequencies and power limits, especially if the device maker contributed any code or documentation to the driver.


Copyright © 2007, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds