Home » Radio » Software Defined Radio » Explore GNURadio – Great Tool for SDR Experiments

Explore GNURadio – Great Tool for SDR Experiments

explore gnuradio

Did you ever dream of designing and building your own software defined radio? Explore GNURadio to discover how easy this is to do, without writing a line of code. 

GNURadio Companion is a visual programming environment for creating software defined radios. Back in 1983, a bunch of programmers, scientists and engineers started the GNU Project. Closely linked to the Linux ecosystem, GNU project has the goal of collaboratively creating free software. Eventually, this led to GNURadio about fifteen years ago, and more recently the GNURadio Companion front-end software.

GNURadio is an infrastructure built on C++ signal processing blocks, all glued together with Python scripts. It is comprised of optimized source, sink and processing blocks. Sources include a variety of SDR hardware, as well as the ability to play previously recorded data. Sinks include audio sound cards. So, briefly, you source radio data from a hardware device and sink the processed data as audio or data output. In between the source and sink, you use a bunch of signal processing blocks. There is a processing block in GNURadio for almost every DSP function you might want to use.

As you explore GNURadio, you will quickly discover the Companion. Companion is an integrated development environment similar to the Visual Studio IDE. You just drag blocks into a flowchart and connect them together. This is called data flow programming. It lets you use precompiled blocks of software to do stuff, in this case DSP and software defined radio. In addition to blocks, Companion provides a GUI for radio controls and signal displays.

Companion automatically generates the Python code needed to create and run your radio design. You work at a very high level, simply defining what you want to happen. The GNURadio infrastructure does the rest under the hood.

The upside of GNURadio is its enormous capability and a huge community of users, similar to the Arduino ecosystem. The downside is that GNURadio is a Linux project. However, most of its features also work on Windows, which is where I am going to start. Later, I may experiment with the Linux version which supports a wider variety of radio hardware.

Explore GNURadio – Experimenting with your RTL-SDR

By now, most hams and SWL have a cheap RTL-SDR dongle. These amazing devices provide a wideband radio receiver for around $20. Typically, you just connect it to your computer and use various SDR programs like SDR#, HDSDR or SDR-Console to provide a full featured software defined radio.

But if you are more adventurous, you can use GNURadio to write your own SDR for use with the RTL-SDR dongle. It’s a great way to get more use from your RTL-SDR and learn a lot about digital signal processing. GNURadio provides a source block that seamlessly connects to your dongle, and tunes to any frequency in its range. The source then provides the IQ sampling data to your GNURadio creation.

You can design your own radio using filtering and demodulation blocks. In future articles, I will describe some beginners projects using GNURadio and RTL-SDR to create FM, AM and SSB receivers without a single line of code.


  1. Mohamed Albuflaseh says:

    Hi John,

    I accidentally found your YouTube channel while i was searching for GRC tutorials about SSB blocks. Then, I came to your web site for more details. Surely, I am not disappointed. A great place to start reading.

    The only downfall of gnu radio is the linux OS. (if you never used it before)
    I spent hours after hours trying to install (compile or whatever they call it) only to see repeated error messages.
    The authors of the Git hub when they give instructions expect the user to be familiar with all the commands and build process. so they start with clone the repositories, check for dependencies and build it….etc..
    I hope one hero write a guide or make a linux distribution for software defined radio and include all the programs. I found skywave but it is a bit old and no GRC in it.

    now i use GRC on windows, its ok but buggy and crashes a lot.

    Anyway, I would like to thank you and your web is just great. Keep up the FB work.

    Mohamed A92GR

    • John VE6EY says:

      Thanks for your kind comments, Mohamed. Yes, GNURadio can be a challenge at times. Linux seems to be a good news – bad news situation. I also run GNURadio in a Linux Virtual Machine, if I want to try that.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.