As previously announced, this weekend we held a workshop in GNU Radio in collaboration with the Department of Electronic Systems at NTNU. The content was divided into three lectures and one practical session. None of the lecture holders are experts in their own right, but we believe the combined best effort result was solid.

LA3WUA Øyvind started out by introducing the course, and gave a talk on Software Defined Radio (SDR), the hardware that enables it, and why SDR programming has become so relevant recently.

LA3WUA demonstrates why it is so complicated.

Next LB6RH Jens gave an overview of what GNU Radio is, and held a live demonstration of block based graphical programming and the use of GNU Radio Companion.

LB6RH draws and explains.

NTNU kindly provided free lunch for all the attendees. After some relaxation and downtime, the attendees got to play around with GNU Radio in the SDR-lab. Each of the computers were set up with GNU Radio live provided on a USB drive, and a USRP.

The practical part consisted of a series of tasks. First the attendees familiarized themselves with GNU Radio Companion and the signal space by receiving a test signal from a signal generator. For the second task the challenge was reception of a FM transmitter set up somewhere in the 2.4 GHz ISM band. The last tasks were oriented towards guided free play, where some went on to receive a DAB+ station and install a DAB+-enabled fork of gr-dab, others went on with their own small projects of receiving APRS or similar, and some attempted to receive one of ARK’s CW beacons or other signals in the surroundings.

LB0OH, LB6RH and LA6YKA hard at work.

Proud GNU Radio Companion user Amund showing off his sliders.

LB0VG is slightly confused over the binary output in his terminal.

Though we could have gone on for a while, we had to stop the practical part of the workshop after the allotted time and continue with the next lecture. Here, LA9SSA Asgeir gave a basic introduction to the relationship between the blocks seen in GNU Radio Companion and the actual implementation of the blocks, the organization of the GNU Radio source code and how custom blocks can be written.

As mentioned, the course contained a large amount of improvisation and live demonstration. The slides themselves do not give the full picture, but the tasks from the practical session are provided here for those who may find use for them. A summary of links for further investigation of block programming is provided below:

Overall, we think we were able to cover quite a bit, with the whole range from the SDR hardware and basic use of GNU Radio to familiarization with the graphical programming part. Having covered the basics, and the participants now being familiar with the flowgraph thinking, we could go on to show the more complex details in block programming. We are also quite satisfied with our development of the practical part, as we sat down on the SDR-lab Saturday morning with a concept of quite different tasks than we ended up with in the document above. Once we started testing our ideas, and adjusted them, we arrived at a solution we think was sensible.

We hope that the participants were satisfied, and can get started with SDR programming in GNU Radio. We also hope that they will now know where to look if they ever want to do more advanced stuff :-).