GNU Radio: the open-source software defined Radio
GNU Radio is an open source Software Defined Radio (SDR) project that was started about ten years ago by Eric Blossom, an electrical engineer. The main idea which is behind this project, as its founder says, was to turn all the hardware problems into software problems, that is move the complexity of a radio equipment from the hardware level to the software one, and get the software as close to the antenna as possible.
Advantages of SDR
Software defined radio has some advantages that were not been possible before:
- It can be reconfigured "on-the-fly"
- It can be easily and rapidly upgraded with new software versions or enhanced features
- It is possible to talk and listen to multiple channels at the same time
What is the story of GNU Radio?
Blossom initiated this project because he was disappointed by the SDR projects available at that time: all of them had a proprietary nature, and he wanted to bring the free-software philosophy into the SDR world. Richard Stallman, the GNU Project founder, liked Blossom’s idea and agreed to take the project under the GNU aegis.
So far, the GNU Radio project has not disappointed its affiliates and supporters. Eric Blossom, together with his development colleague Matt Ettus, have realized a project which can turn an ordinary PC into a good quality radio receiver; the only additional hardware required are a “low-cost” RF tuner and an analog-to-digital converter to convert the received signal into digital samples. GNU Radio is a free software development toolkit which allows to develop a custom non commercial radio receiver just combining and interconnecting appropriate software modules, as if they were functional blocks (the package include about 100 modules, but others can be added to the initial library). Each module is able to perform a specific signal processing function (for example a mixer, a phase lock loop, a filter), with a real-time behavior and with high-throughput; for this reason, a recent PC with enough processing capability and memory shall be used. With the GNU Radio approach, the designer is a software developer who builds the radio by creating a graph (in a similar way to what happens in the graph theory) where the vertices are signal processing blocks and the edges represent the data flow between them. The signal processing blocks are normally implemented in C++, whereas the graph structure is defined in Python. GNU Radio is well known and widely used especially in academic environments and among hobbyists and radio amateurs; it is used either to implement real and working radio equipments, or just as a research project in the area of wireless communication and transmission. GNU Radio software modules support various modulations (GMSK, PSK, QAM, OFDM), error corrections codes (Reed-Solomon, Viterbi, Turbo Codes), and signal processing capabilities (filters, FFTs, equalizers, timing recovery).
GNU Radio applications are mainly written in Python; however, the critical and low-level algorithms and signal processing modules are written using the C/C++ programming language, with wide usage of floating-point specific instructions for the relevant processor. Python is primarily used to setup the flow graph, after that most of the work is done in C/C++. GNU Radio is simple to use and a radio receiver can be created in a fast and straightforward manner; moreover, the development of a signal processing algorithm can be carried out using a pre-recorded or generated data set, thus allowing the development without the need for a real RF hardware. An example of minimal hardware required to work with GNU Radio is offered by the USRP, developed by Ettus Research LLC.
What is USRP?
USRP, which stands for Universal Software Radio Peripheral, is a general purpose motherboard which can host a wide selection of daughterboards, each of which implements a signal processing block found in the GNU Radio software package. The original USRP is a low cost software radio device which connects to the host computer through a USB 2.0 interface, and can send up to 16 MHz of RF bandwidth in both directions. It hosts an FPGA which can be reprogrammed, 4 high-speed Analog to Digital Converters (ADCs), 4 high-speed Digital to Analog Converters DACs), and many auxiliary analog and digital I/Os.
The following pictures show how the USRP looks like, externally and internally, respectively.
The USRP contains two Analog Devices AD9862 mixed signal analog front end devices connected to an Altera Cyclone EP1C12 FPGA where most of the initial downconversion is done within the RX chain. The USRP family includes:
- DC to 30 MHz receiver
- DC to 30 MHz transmitter
- 1 MHz to 250 MHz receiver
- 1 MHz to 250 MHz transmitter
- 50 to 860 MHz receiver
- 800 MHz to 2.4 GHz receiver
- 400-500 MHz transceiver
- 750-1050 MHz transceiver (including cell and ISM bands)
- 1150-1450 MHz transceiver
- 1.5-2.1 GHz transceiver (including PCS bands)
- 2.3-2.9 GHz transceiver (including ISM band)
The motherboard shown in the above picture is equipped with 4 daughterboards: 2 Tx modules and 2 Rx modules.
The GNU Radio USRP2
The USRP2 is based on its successful predecessor, the original USRP, providing the following new capabilities:
- Gigabit Ethernet interface
- 25 MHz of instantaneous RF bandwidth
- Xilinx Spartan 3-2000 FPGA, which can even operate the device in a stand-alone way, without requiring connection to a host computer
- Dual 100 MHz 14-bit ADCs
- Dual 400 MHz 16-bit DACs
- 1 Mb of high-speed SRAM
- Locking to an external 10 MHz reference
- 1 PPS (pulse per second) input
- Configuration stored on standard SD cards
- Standalone operation
- The ability to lock multiple systems together for MIMO
- Compatibility with all the same daughterboards as the original USRP
USRP2 is initially supported on Linux, but drivers will be available also for Windows, Mac OS X, and other operating systems.
GNU Radio applications
The GNU Radio package is provided with a complete HDTV transmitter and receiver, a spectrum analyzer, an oscilloscope, a multichannel receiver and a wide collection of modulators and demodulators. Other advanced projects are still in the feasibility phase or in progress:
- A system able to recording multiple stations simultaneously
- Time Division Multiple Access (TDMA) waveforms
- A passive radar system that takes advantage of broadcast TV for its signal source
- Radio astronomy
- Digital Radio Mundial (DRM)
- Software GPS
- Amateur radio transceivers
Curious about writing your own block?
Eric Blossom has prepared an excellent tutorial which explains in detail how to write a block for GNU Radio: if you are interested in it, try and enjoy it.
Reference
GNU Radio - The GNU Software Radio
How to write a block for GNU Radio
Read the Italian version: GNU Radio: la radio open-source definita dal software
- slovati's blog
- 25234 reads





Timer Control
Would it be possible to code software for USRP so that it can change FM frequencies at a set time?
You can first look for an
You can first look for an answer on the Frequently Asked Questions area of the Gnu Radio official site (http://gnuradio.org/trac/wiki/FAQ), that has a specific section related to Universal Software Radio Peripheral (USRP).
If your question is not answered over there, I suggest you to subscribe to the Gnu Radio mailing-list (http://gnuradio.org/trac/wiki/MailingLists): it is the proper place to submit your question and other problems related to Gnu Radio.
Kind regards,
slovati
As someone who has some
As someone who has some familiarity with GNU Radio I would say yes, very easily in fact.
Also popular among amateur radio enthusiasts
The concept of SDR has been around for some time and probably started in the field of military research. It however, has evolved now into an important commercial technology. It is also popular in amateur radio applications especially in the HF-SSB band where audio signal quality is a problem. With the combination of DSP (digital signal processing) and SDR technologies, it is now possible to attain very good quality voice communication within very limited SSB bandwidth.
Low Cost?
Low Cost hardware added to your computer? These USRP boxes cost $700! For $700 I can buy a 1 Mhz to 30 Mhz receiver with an amateur band transmitter and have money left over. For $370 I can buy a 100 kHz - 30 MHz receiver that supports DRM digital shortwave broadcasts.
Let me know when the low cost hardware comes out.
That's the (one) seriously disappointing aspect of this project
Other than the more-than-half-a-grand entry fee to play, this is an incredibly cool open-source project.
One of the early stories I read about this years ago had a tantalizing reference to one of the developers using the code to listen to (as I recall) HAM radio broadcasts by literally plugging the long antenna wire directly into the input of his sound card. I've not been able to find any further information about it, though. I imagine there could be other fun uses the require only inexpensive, easily-homebuilt-by-amateurs simple circuits, but last time I looked I could find absolutely no references to such things - only projects using the "costs two netbooks" USRP boxes.
(If anyone knows of *affordable* projects using gnuradio, PLEASE post links - I'd love to play with it myself...)
SoftRock
Google for softrock, it's software defined radio hardware that costs about $15.
-Max
Definitely affordable and fun
Google on Softrock40. You need to subscribe to the yahoo group in order to get at the Files.
I'm this moment listening to 80m SSB on the Softrock v6.3 transceiver and my other commercial transceivers hardly ever get switched on since I started with the SR v6.3.
Next thing I have to do is plug in the Automatic switched BPF module I have built to have a 1W 0 - 30MHz transceiver - just a small amount of cabling needs to be done.
It's so simple and yet is a top performer.
Unfortunately the orders for kits are stacking up faster than Tony (kb9yig) can get parts in to fill the orders and he is shipping loads of them, so he's temporarily not taking new orders.
Both the Softrock kits and the much costlier TAPR HPSDR have generated a level of homebrewing I haven't seen in a few decades.
One guy also is testing a prototype board for a 0 - 700 Mhz transceiver and hopes to have a production board available in the not too distant future.
Exciting times.
For $700(USRP) + $100 (TVRX
For $700(USRP) + $100 (TVRX board) + $ 150 (DBSRX board) You can receive the whole band from 50MHz to 2450MHz. For extra $275 you can receive any signal from 2300Mhz to 2900MHz (So with these 3 boards you can receive signals from 50MHz to 2900MHz). With other boards you can also transmit in these bands.This is the power of USRP.
See : http://www.ettus.com/orderpage.html
Amazing stuff.
This kinda makes me wonder about the future of wireless networking with computers. I hope that one day upgrading your pc's wireless card to the latest standard and fastest speeds will just be a quick download and install instead of buying a newer card.
PCB USRP?
This is a great design, no doubt!
However, it should be better if someone could produce the USRP pcb's and sell them (since the schematics are freely available). This would allow many students to buy it and also to build (assuming it has all the skills and tools for SMD...) a version that is cheaper. Since the new ethernet version of usrp is available, this could be done with the older version allowing more students to build it and learn it.
Wow thanks for the amazing
Wow thanks for the amazing review. It looks like Gnu radio software is an amazing thing. First of all because it is open source. Secondly because it can be reconfigured and upgraded easily, you only need the newest software. I think I will purchase this software and try it. Thanks one more time for posting a nice review about GNU radio.
I didn't thought that it is
I didn't thought that it is about 10 years to Software Defined Radio now. What I can say about this software? It is absolutely amazing, everyone will agree with that. It is easily upgradeable, you can listen to few channels at the moment.. What can be better? I think nothing. Thanks for the intriguing article about this wonderful software. I will be keeping an eye on your blog and waiting for other nice entries from you in the nearest future.
Flexible and powerful
I would like to answer to the authors of the last two comments: both of you are right! Software Defined Radio, and GNU Radio is a good example of how it can be achieved, is indeed a powerful and flexible system. Hardware is very important and it must be designed since the beginning in order to allow the requested features; besides, GNU Radio hardware adds an important advantage: since it includes high performance FPGAs, it can be configured and reconfigured just changing the FPGA image (maximum flexibility). Software running on top of this hardware will then make the difference. Please, keep on reading Your Electronics Open Source blog: new interesting articles will arrive!
Post new comment