Project Overview

GNU Radio is a free software development toolkit that provides the signal processing runtime and processing blocks to implement software radios using readily-available, low-cost external RF hardware and commodity processors. It is widely used in hobbyist, academic and commercial environments to support wireless communications research as well as to implement real-world radio systems.


Two Releases in One Month!

We've been busy producing a lot of new material for GNU Radio. We've fixed a number of bugs, improved the code, added a few new features (like support for the FunCube Dongle). Since the last news update here, we've released 3.5.2 (and a bug release of and just yesterday released 3.5.3.

Here's the email to the GNU Radio Mailing List from Johnathan Corgan about the release:

GNU Radio release version 3.5.3 is now available for download:

The release notes are here:

This is the last planned 3.5 API compatible release; there may be bug
fix releases along 3.5.3.x, but no new 3.5.4 release is planned.  Work
on the master branch will be focused on generating a 3.6.0 release.

Contributors this release:

Achilleas Anastasopoulos
Alexandru Csete
Ben Reynwar
Dimitri Stolnikov
Johnathan Corgan
Josh Blum
Michael Dickens
Nicholas Corgan
Philip Balister
Tom Rondeau


We're on the path for a 3.6.0 release shortly where we'll be going full cmake build.



GNU Radio 3.5.1 Released

Version 3.5.1 of GNU Radio has recently been released. The download can be found here:

The release includes the following:


  • Added new SNR estimators to gr-digital; both a probe (sink) and an inline block that copies input to output and sends tags with SNR.
  • Ability to set an upper limit on the noutput_items blocks receive. Allows control over latency.
  • Cmake build enhancements and bug fixes.
  • Support for different over-the-wire data types in UHD.
  • Python GIL fix for gr_bin_statistics.
  • Doxygen documentation bug fixes and enhancements.
  • Added more get/set functions for various blocks (digital_fll_band_edge, gr_noise_source, gr_channel_model).
  • General bug fixes.




New Latency Controls

´╗┐There's been an expressed desire for better control over the latency of a GNU Radio flowgraph. We have added this capability as of version 3.5.1. Now, when you call tb.start() or, these functions take a parameter that specifies the maximum noutput_items a block can ever receive. This means that the most latency you'll see in a block is based off this number.

If you don't change anything in any existing applications, nothing will change as the default is a huge number that no block will ever be asked to process.

Also, for running wxGUI applications, you set this value when create the stdgui2.stdapp as the last parameter called max_noutput_items like in the app:

app = stdgui2.stdapp(app_top_block, "UHD FFT", nstatus=1, max_noutput_items=8000)

Right now, this method exerts global control over the flow graph. In the future, if this global control isn't quite enough, we can look into adding a set function to the gr_block class to allow us to set a max noutput_items value for each block that would supersede the global value.

We are really interested to hear feedback from our users who have been requesting this kind of control over latency.



Annual GNU Radio User's Group Meeting


Once again, Matt Ettus and I will be hosting the GNU Radio User's Group Meeting in DC in conjunction with the Wireless Innovation Forum's SDR'11 WinnComm conference.

As you can see in the program, we are on for 8PM on Wednesday, Nov. 30. We don't have a room yet, but it will be located in one of the conference rooms at the Hyatt Regency Crystal City, Arlington, Virginia.

Everyone is invited, even if you are not attending the conference.





Ubuntu 11.10 Troubles

After upgrading to Ubuntu 11.10, I noticed some serious issues compiling and building GNU Radio. I spent the weekend working these out, and I'm happy to report that as of Sunday night, the git maint/master/next branches can all be built on Ubuntu 11.10 (and all previous builds, too, of course).

The work isn't quite done, yet, I'm afraid. There are still some bootstrap issues as the autotools guys have becomes a bit more restrictive/careful. The warnings that are generated are annoying but appear harmless. I worked out what I could, but there's one or two more that are alluding me right now. I'd appreciate any assistance in tracking this down that anyone wants to give me.

The other error was that we didn't explicitly link against the Boost filesystem library in a couple of places. That was another easy one to fix.

But the big issue came because of Ubuntu's change to using Qwt 6. We had been using version 5.2 since we build gr-qtgui. The change to the new API was not trivial, especially when trying to maintain backwards compatibility with 5.2. I'm happy to say that this has been achieved. The code's a lot uglier because of the Qwt version checks, and while I could have probably done it a bit more cleanly, this is still the right way to do things.

While the update to Qwt 6 was pretty painful, the new API and changes that they made have created a much better system. In particular, the waterfall plot has been greatly simplified from version 5.2. Once version 6 starts to take hold in all of our other OSes, I'll go through and clean out the old stuff required in 5.2. This probably won't be for a few years, though, but it will be nice when we can move on and create more simplified implementation.