KC7MM Wiki

Amateur Radio with KC7MM

User Tools

Site Tools


GNU Radio Companion


[NOTE: This page originated as notes for the September 2, 2019 session of the Linux User Net ]

This section documents my experience with GNU Radio Companion. All of my computers run Linux, so that's what is covered here. This software should work on Mac and Windows, as well.

I expect this page to be in a state of contstant revision as I record my experience with GRC and my SDR devices.


  • Get an SDR USB dongle that has a Realtek RTL2838 chip .
  • Install rtl_sdr utilities on your computer.
  • Install GNU Radio Companion.
  • Python 3 should already be installed on a Linux box.





[Note: Follows along with Building Software Radios With A Little Bit Of Python,**Hak5 1526 (YT)]**

Plug in + test with rtl_sdr utilities

1) Plug in the dongle and run rtl_test to see whether there are packet losses. None.

2) Run rtl_fm, pipe output to aplay

  • Don't use the -W switch.
  • Listened to the Sylvan repeater with:

rtl_fm -f 147.04e6 -s 240000 -r 96000 - | aplay -r 96000 -f S16_LE

  • NOTE that the output can be redirected to a file for later playback.

Start working with GNU Radio Companion

3) Launch GNU Radio Companion

To be continued…

Notes so far

  • GRC comes from GNU project: FSF, GPL, Richard Stallman.
  • The project head (up to 2016) was a ham, KB3UKZ, Tom Rondeau.
  • GRC processes lots of kinds of signals, including audio and generated waves.

If you really want to understand Software Defined Radio, then get an SDR device and start using GNU Radio Companion. I recommend trying it even if you're not interested in SDR in particular, but just want to learn more about how radios work.

What the program does is to enable you to assemble a virtual radio by making a flow graph of functional blocks. Each block has inputs and outputs, which are chained together such that the output of one block is the input of the next block in line. You already know how this works — it's exactly the way Linux utilites are chained together in a shell command using pipes and redirection. The resulting graph constitues a functional model that can be executed in real time.

Each block in the graph represents some function essential to radio, such a demodulation and filtering. Although they are performed digitally on the computer when the model is run, it's worth keeping in mind that they are exactly the same the same functions that are performed by the electronic circuits of analog radios. This is a fantastic learning tool.

I also should mention that GRC is not limited to just radio. It can process any type of waveform, including audio and generated waves — sine, square, sawtooth. One thing I want to try is feeding in the audio output of one of my radios and running that through some DSP functions to see what I can do with it.

Software installed

On my laptop, from the Mint 19.2 repository:

  • Installed gnuradio package from the repository, which includes GNU Radio Companion. [Apt placed it in the Programming menu.]
    • Had to change my GTK theme (iusing Cinnamon) because dialog boxes for the functional blocks were unreadable with my preferred dark theme. Found a dark gray theme (Cinnamon-rhino) that worked with all my applications — which have colors chosen for a dark theme. The rest of the UI worked with the original theme.
  • Also installed gqrx-sdr package, which depends on GNU Radio. [Apt placed it in the Internet menu]
  • Also installed cubicsdr package. [Apt placed it in the Other menu]

Switched to the Debian 10 desktop, with the same software installed. Dark scheme worked fine in GRC. Having a 27-inch monitor is a nice bonus, compared to the 15-inch laptop screen.


I have several SDR devices available for use in experimenting with GRC. I intend to try them all.

  • An RTL-SDR dongle that plugs directly into a USB port.
  • An SDRPlay RSP2, rated for 1KHz to 2GHz
  • An Ettus Research USRP B100
sdr/gnu_radio.txt · Last modified: 2021/01/04 23:20 by KC7MM