GreatFET and GNURadio

The GreatFET platform can easily interface with GNURadio – and several gnuradio-companion blocks are available to make using GreatFET+GNURadio easier. These blocks include support for various neighbors (e.g. Gladiolus blocks for Software Defined Infrared) and a variety of other inputs and outputs, which are lumped into the ‘Software Defined Everything’ category.

Requirements

You’ll need an up-to-date GNURadio environment to use our blocks. This means:

  • GNURadio >= 3.8, built with python3*

  • python >= 3.9

It’s possible these blocks will work with GNURadio on lower python versions; but these aren’t our development targets and aren’t fully supported.

Adding our blocks to GNURadio-companion

The easiest way to add our blocks to GNURadio is to modify our local GNURadio configuration. On Linux and macOS, this file is located at ~/.gnuradio/config.conf.

Open this file, and find the section that’s headed [grc]; or create the relevant section if it doesn’t exist.

[grc]
<existing keys here>

We’ll want to add the location of our blocks to the configuration file’s local_blocks_path. We can determine the location of our blocks using the gf info command:

$ gf info --host
Host tools info:
    host module version: 2019.5.1
    pygreat module version: 2019.9.1
    python version: 3.9.0 (default, Oct 23 2019, 18:51:26)

    module path: /home/user/.local/lib/python3.9/site-packages/greatfet
    command path: /home/user/.local/lib/python3.9/site-packages/greatfet/commands
    gnuradio-companion block path: /home/user/.local/lib/python3.9/site-packages/greatfet/gnuradio

In the output above, the last line points out our GRC block path. We’ll add this to the local_block_path entry in our configuration file:

[grc]
local_blocks_path = /home/user/.local/lib/python3.9/site-packages/greatfet/gnuradio

If you want to have multiple entries, here – for example, if existing entries are already present – you can separate multiple paths using colons, similar to Linux paths:

[grc]
local_blocks_path = /home/user/.local/lib/python3.9/site-packages/greatfet/gnuradio:/home/user/my_blocks

The next time you start GRC, you should see new headings (e.g. SDIR and Software Defined Everything) in your list of available blocks.