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.

Monday
Jul282014

European Hackfest hosted by TU Delft

If you follow GNU Radio at all, I'm sure you've heard about our Hackfests. This is where a lot of GNU Radio developers get together for a few days to a week at a time and hack out GNU Radio code. We've found these fantastic ways to improve the project as it gives us time to plan, discuss specific topics, hang out and get to know each other, and code code code! A large amount of the code making up GNU Radio has either come directly from or been inspired by these events.

Mostly, we've done these in the US. Ettus Research has been a fantastic host to a number of our hackfests as has Virginia Tech. Just recently, Karlsruhe Institute of Technology hosted a mini hackfest right after the WSR and a full hackfest a few months later. These were our first events held in Europe, and though I personally missed the second one, the post-WSR hackfest was great fun and hugely successful.

Following up on this, I wanted to announce and give a pre-emptive thanks to TU Delft in the Netherlands who has agreed to host a hackfest early next year! The plan is to hold the hackfest on TU Delft campus during the last week of January so that we can go straight from Delft to Brussels for FOSDEM that weekend (partly assuming that we have an SDR dev room at FOSDEM again this year). I think having these two events back-to-back is, pardon the Irish, going to be great craic. 

Want to come to the hackfest? We certainly don't want to discourage anyone, but I also want to point out that the hackfests are usually smallish affairs of 10 to 20 developers, usually people heavily involved in either writing or using GNU Radio regularly. So the facilities are on the small side to fit us, and you're on your own for housing, food, transportation, etc. But, if this is something that excites you and you can make it to Delft, please let me know if you'd like to come. Just shoot me an email. And if you don't know my email address, then you probably haven't been using GNU Radio that much :p

Monday
Jul212014

Release of 3.7.4

Well, I mentioned it here a few weeks ago and last week we did it. GNU Radio version 3.7.4 is now out and about. We're really happy with the release for a number of reasons. If you take a look at the release notes, you can see not only a lot of new features we've added on, but also the huge number of contributors. So not only are we feeling really good about the project itself, we have a great community of users that are doing really neat things and helping us improve our code. So a huge hand and big thanks to everyone!

I think that the release notes give you the basic idea of what's going on in this version, including ZeroMQ blocks for improved connections between networked flowgraphs over the UDP or TCP sources/sink, better QTGUI handling, and some nice improvements to the GRC interface. Also, as I mentioned in my last post, we now have our new FEC API concept included in gr-fec. Oh, and on that last note, we're very close to having some of the LDPC work done during last summer's GSoC integrated with the FEC API so we can all start to use it in our flowgraphs!

The good work is never done, though. We still have so much we can and want to do in this project, and so we've already started laying out some ideas and plans for release 3.7.5. There's some really fun work going on in GRC that I think everyone's going to love, and we're going to be one step closer to defaulting everything to QTGUI (don't worry! WXGUI will have a long lifetime as we migrate over!). We haven't made the full decision, yet, whether to switch the GRC defaults to QTGUI in this next release of wait until 3.7.6. I think we'll make that decision about midway through this release cycle to make sure we have enough time at get the development branch settled on that before the release.

Now, no guarantees, but I'm hoping we can get 3.7.5 out in time for GRCon14. That's a bit shorter than our normal time period between versions, but then again, we took a bit of extra time before 3.7.4. I think that it'd be nice going into the conference with a brand new version, plus a lot of features like some of the QTGUI and GRC updates are already done. We'll see what things look like by the end of August if it really makes sense to get 3.7.5 out the door by the conference.

Finally, I've said it elsewhere, and probably on other posts on this blog, but just a quick mention of 3.8. We have started collecting some ideas on what we're looking for with 3.8, but we haven't made any substantial efforts on it, yet. We're going to stick with 3.7 for a while longer because we feel like we're able to get a lot of work done with this API version without having to move on. In 3.8 we plan on updating our dependency list so we can be a little more free with features from our dependency libraries, and it'll help us fix a few holes we have in the runtime API that's causing some bugs that we've been tracking. But there's nothing really pushing us to a new API, yet, unlike our previous few API releases where we had some big changes. Instead, all of our big changes are all coming in our "minor" releases. But the only thing minor about it is our version naming scheme!

Tuesday
Jun242014

Update and 3.7.4

It's been a while since I've provided an update. Lots of travel, both work and otherwise, has kept me from letting everyone know what's been going on in GNU Radio. So let me see if I can start to fix that.

I think that our most interesting and fun development was the success of the ISEE-3 reboot team, including our own Balint Seeber (ok, so he's technically with Ettus, but for all of his work with GNU Radio, I'll claim him; at least partially) and John Malsbury. This was an incredibly cool and successful project, and Balint, John, and the rest of the reboot team have done and continue to do an amazing job. I'm not going to try and poorly rehash the work here. But there's been plenty of articles written on the effort and the links provided above here will give you a much better review of what happened and how.

In other news, we're close to releasing GNU Radio 3.7.4. I was really happy with our 3.7.3 release a few months ago, and this next release continues to strengthen the project. We have a lot more support and have debugged a few issues with the message passing infrastructure. I see the use of the message passing system as a growing trend in GNU Radio, especially for control and updating parameters of blocks.

Another development is a massive update and improvement to gr-atsc. While the original work here was great, it was based on GNU Radio ideas and capabilities from probably 10 years ago or so. Andrew Davis and Johnathan Corgan have done a wonderful job bringing this up to date and improving its speed and stability. This is part of a trend that we're working on (hopefully in the next version release) for more support of other digital TV standards, both transmitter and receiver code. Keep an eye out for gr-dtv in the near future.

A huge part of my work recently has been in the integration, development, documentation, and building examples for our new FEC API that is now a part of gr-fec. Historically, GNU Radio hasn't done a very good job with managing or allowing use of forward error correction (FEC) techniques. It's a difficult problem to solve to allow us to easily integrate different types of FECs in transmitters and receivers, either for streaming or packet-based communication links. Each FEC has different properties and conditions for use in the different types of comms links, and they can have different input/output data types that they are built to work with. The new FEC API that's been introduced allows us to handle these situations more seamlessly within a GNU Radio flowgraph.

The new gr-fec includes FEC encoders and decoders for a convolutional code (K=7, Rate=1/2, polynomials=[79, 109]) that has been highly optimized with SIMD (through VOLK), a repetition code that simply repeats each bit N times, and a dummy code that actually does no coding but provides a simple mechanism to use and study the API. We are also providing different blocks, called “deployments” in the FEC API, that allow us to make use of these encoders/decoders in streaming, tagged stream, and PDU message-passing flowgraphs. I was able to use the convolutional code FEC encoder and decoder in the gr-mac project for full network communications between multiple computers. This work can be found in the “fec_gmsk” branch of my fork of gr-mac.

The GNU Radio manual covers the API and deployments in a fair amount of depth. Obviously, you can always build the docs yourself with GNU Radio, but the main manual page on gnuradio.org will be updated to include this when 3.7.4 is released. Likewise, there are examples for the use of the codes and deployments that are distributed and installed with GNU Radio.

So that's just a brief review of what we've been up to the past few months. There are plenty of little fixes, tweaks, and additions that we've been making to the code base in this time that I've left out. But I'm really pleased with the progress and rate of progress we've been making lately. Lots of new, good stuff to help us fill a few gaps in capabilities we've had.

Thursday
May082014

GRCon14 Agenda Posted

Earlier today, John Malsbury posted the following to the GNU Radio mailing list:

Greetings,

It's been a few weeks since our last update on GRCon14.  Here's the latest:

Conference Agenda is Posted

I am happy and proud to announce that the agenda for GNU Radio Conference 2014 has been posted. We received an variety of great, high-quality proposals on topics ranging from wireless security to satellite communications and networking. Tom Rondeau and Michael Dickens spent a great deal of time sorting through the presentations and assembling an agenda that is packed full of interesting and educational content.  While some minor details may change, you can find an up-to-date agenda at the following link.  If you are a presenter and need to modify your entry, please contact Michael Dickens to do so.

http://gnuradio.squarespace.com/grcon14-agenda/

Help Promote GNU Radio Conference

On another note its worth mentioning that we have been keeping a pulse on registration. Based on the current run rate, we believe that this is going to be the largest GNU Radio conference, by far.

With the conference agenda assembled and great forward momentum, we would like to ask this awesome community to help us promote this event. GRCon14  is on the verge of becoming one of the largest and most influential events with a focus on SDR and wireless implementation. With a community-driven effort, we could really put ourselves on the map this year and generate even more excitement with potential users and developers.

Whether you simply remind your fellow GNU Radio developer, or invite someone new to join us for this event, we think your enthusiasm for the event is the thing that will make the difference.

Register for the Event

If you would like to register for GRCon14, follow this link:

http://grcon14.eventbrite.com/

We look forward to seeing you in September!

Best Regards,

John Malsbury
GNU Radio Conference Chair

Wednesday
Mar192014

Release 3.7.3 and the WSR Hackfest

In case you missed the announcement, we've released version 3.7.3 of GNU Radio!

We're really pretty excited about this release. If you look at the news announcement or our changelog, you can see that we had many contributors to this release. It's also about a month overdue from our normal (though unspecified) timeline. But the result is something that we are really happy with.

One thing that strikes me with all of the contributions on this one is the amount people are really using GNU Radio for interesting stuff. They are testing all sorts of use cases, corner cases, and types of cases we don't yet have names for. Hard to find all of those issues without that kind of testing and use. So I feel good about the state of where we are with this version.

And then came the Workshop on Software Radio (WSR) in Karlsruhe. I presented two papers. The first was from Tim O'Shea and myself on our work on gr-benchmark and stats.gnuradio.org, and the second was on using our polyphase filterbank blocks in GNU Radio.

Following WSR, however, was our first European GNU Radio Hackfest. It was two and a half days and went brilliantly. Lots of fun, lots of good discussion, and lots of code written (and rewritten). There were a number of issues posted and pull requests made for new features or minor issues. In a way, it's a shame that some of these didn't make it into our 3.7.3 release, but we can't just keep waiting, so these will all make it into 3.7.4. I think we're just seeing a lot of interest and energy with the project and so we have to mark some time to get the releases out when we can.

We've logged our work from the hackfest as we always do. And I believe I have taken care of all issues and pull requests, so you'll find all the new (working and available stuff) already in the GNU Radio master branch.

Specifically, it was important to wrap up the loose ends of that hackfest as quickly as possible because we're heading right into our next hackfest at Ettus Research next week in California! So I expect more great stuff to come soon.