Foundations of Amateur Radio

Bald Yak, scene 5, debugging


Listen Later

Foundations of Amateur Radio

As you might know, a little while ago I started a new project.

"The Bald Yak project aims to create a modular, bidirectional and distributed signal processing and control system that leverages GNU Radio."

In embarking on this adventure I've been absorbing information as I go whilst explaining what I've learnt to anyone who will sit still long enough. Credit to Glynn VK6PAW and Charles NK8O for their patience.

For most people, me included, the introduction to GNU Radio happens via a graphical user interface where you build so-called flowgraphs. These are made up of little blocks that you wire together to get from a Source, where a signal originates, to a Sink, where it terminates.

Each of these blocks does something to the signal, it might be a filter, an amplifier, it might encode or decode a signal like FM, AM, Wideband FM, or some other modulation like Phase Modulation or OFDM, Orthogonal Frequency Division Multiplexing, a way of transmitting digital information using multiple channels. It's used in places like WiFi, ADSL and DSL, Digital Television as well as modern cellular systems.

Those blocks generally expect a specific type of input and generate some particular output.

After you save your design you can run the flowgraph and behind the scenes some magic happens. Your visual representation of signal flow is translated into either Python or C++ and the resulting application is what is actually run, which is why the user interface that you design your flowgraph in is cunningly named, GNU Radio Companion.

So, what if you want to do something that doesn't yet exist? As it happens, that's where I came across a YouTube video by John VE6EY called "GNURadio Embedded Python Block" which neatly describes a fundamental aspect of how the GNU Radio framework actually operates.

One of the blocks available to you is one called "Python Block", which you can add to your flowgraph just like any other block. What sets it apart from the others is that you can open it up and write some Python code to process the signal.

When you first insert such a block, it's already populated with some skeleton code, so it already does something from the get-go and that's helpful because if you break the code, you get to keep both parts.

Seriously, it allows you to figure out what you broke, rather than having to worry immediately about how specifically the code is wired to the outside world, which let's face it, is not trivial. If you're a programmer, think of it as the "Hello World" of GNU Radio.

If not much of that means anything, think of it as a variable electronic component. If you need it to be a capacitor, it can be that, or a transistor, a whole circuit, or just a filter, all in software, right there at your fingertips and no soldering required.

Now I'm under no illusion that everybody is going to want to get down and dirty with Python at this point, and truth be told, I have a, let's call it "special" relationship with the language, but that is something I'm just going to have to get over if this project is going to go anywhere.

For my sins this week I attempted to recreate the intent of John's video on my own keyboard and discovered that debugging code in this environment might be tricky. It turns out that you can actually print out Python variables within your code and in the GNU Radio environment they'll show up in the console inside the companion window, which is handy if you committed one of many Python sins, like say attempting to compare an integer against a list. Don't ask me how I know.

One thing I'm planning to attempt is to get the same thing going for C++ output. By default GNU Radio Companion uses Python, but you can change it so instead of generating Python, it can generate C++. Whilst I have no immediate need for that, I do know that at some point it's likely that I will, like say when I want to run something on an embedded processor, or some other contraption. So, whilst I have nothing to lose, I want to try out the boundaries of my new toy, besides, I have form, in testing boundaries that is.

I'm Onno VK6FLAB

...more
View all episodesView all episodes
Download on the App Store

Foundations of Amateur RadioBy Onno (VK6FLAB)

  • 4.6
  • 4.6
  • 4.6
  • 4.6
  • 4.6

4.6

29 ratings


More shows like Foundations of Amateur Radio

View all
ARRL Audio News by ARRL  The National Association for Amateur Radio®

ARRL Audio News

123 Listeners

icqpodcast's Amateur / Ham Radio Podcast by ICQ Podcast

icqpodcast's Amateur / Ham Radio Podcast

65 Listeners

The Art of Manliness by The Art of Manliness

The Art of Manliness

14,144 Listeners

Freakonomics Radio by Freakonomics Radio + Stitcher

Freakonomics Radio

32,121 Listeners

The Amp Hour Electronics Podcast by The Amp Hour (Chris Gammell and David L Jones)

The Amp Hour Electronics Podcast

230 Listeners

100 Watts and a Wire by Christian Cudnik

100 Watts and a Wire

115 Listeners

Ham Radio 2.0 by Jason Johnston - KC5HWB

Ham Radio 2.0

93 Listeners

Ham Radio Workbench Podcast by Ham Radio Workbench

Ham Radio Workbench Podcast

189 Listeners

Ham Radio Crash Course Podcast by Josh Nass KI6NAZ

Ham Radio Crash Course Podcast

583 Listeners

The Peter Attia Drive by Peter Attia, MD

The Peter Attia Drive

7,782 Listeners

Amateur Radio Topics by VK6LW/VK6T by Kevin Smith VK6LW and VK6T

Amateur Radio Topics by VK6LW/VK6T

2 Listeners

VK6ARN Amateur Radio News - NewsWest by VK6ARN

VK6ARN Amateur Radio News - NewsWest

1 Listeners

On the Air by Becky Schoenfeld, W1BXY

On the Air

103 Listeners

The Ham Radio Guy by Marvin Turner - W0MET

The Ham Radio Guy

8 Listeners

The DX Mentor by Bill Salyers

The DX Mentor

14 Listeners