Bald Yak, scene 5, debugging

Bald Yak, scene 5, debugging

Author: Onno (VK6FLAB) December 28, 2024 Duration: 5:02
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


For anyone curious about the crackle of a distant voice emerging from the static or the thrill of making a contact across the globe using nothing but radio waves, Foundations of Amateur Radio offers a friendly, steady guide. Hosted by Onno (VK6FLAB) from Australia, this long-running podcast acts as a companion for newcomers navigating the initial, often overwhelming, steps into this vast hobby. Each episode deliberately unpacks a single facet of amateur radio, breaking down technical concepts, equipment, and operating practices into digestible pieces. You'll hear practical advice on how to get started, find your place within the global community, and discover which of the hobby's countless avenues-from building antennas to satellite communication or emergency service-might spark your passion. It’s not about dry theory; it’s about demystifying the process and sharing the genuine rewards that keep enthusiasts engaged for a lifetime. Having evolved from its earlier incarnation in 2011, this podcast builds from the ground up, week by week, creating a solid resource that grows with you. Tune in for a down-to-earth conversation that makes the airwaves feel a little more accessible and a lot more inviting.
Author: Language: en-au Episodes: 100

Foundations of Amateur Radio
Podcast Episodes
What's the story you'd like to tell yourself? [not-audio_url] [/not-audio_url]

Duration: 4:20
Foundations of Amateur Radio When you joined the global community of radio amateurs you did so with a perspective that represented, at the time, what you thought the hobby was and how it operated. Since then, years, mont…
Bald Yak, universe 10, how does all fit together? [not-audio_url] [/not-audio_url]

Duration: 7:09
Foundations of Amateur Radio Recently I received a lovely email from Michele IU4TBF asking some pertinent questions about the Bald Yak project. If you're unfamiliar, the Bald Yak project aims to create a modular, bidirec…
Bald Yak, droplet 9, fosphor and the impertinence of software [not-audio_url] [/not-audio_url]

Duration: 5:07
Foundations of Amateur Radio Have you ever come across a solution to a problem that you sort of knew you had, but didn't really appreciate until that moment? I had one of those recently. To set the scene, fair warning, w…
Bald Yak, arena 8, paying attention to the details [not-audio_url] [/not-audio_url]

Duration: 5:46
Foundations of Amateur Radio Recently I built a first attempt at a noise cancelling circuit, on my couch, in GNU Radio, without holding a soldering iron and running the risk of the room smelling like burnt chicken, becau…
Finding your path in this hobby [not-audio_url] [/not-audio_url]

Duration: 3:48
Foundations of Amateur Radio As you might recall, recently I stumbled on an excellent list of 52 weekly challenges put together by Fabian, DJ5CW and friends. You can find it at hamchallenge.org. As I've previously mentio…
Bald Yak, scene 7, building a circuit without burnt chicken smell [not-audio_url] [/not-audio_url]

Duration: 5:56
Foundations of Amateur Radio The other day I was sitting on the couch lounging about when I came up with an idea and there and then I picked up a circuit board, soldered down a hundred or so components and built a noise…
WSPR beacon QSY to 15m [not-audio_url] [/not-audio_url]

Duration: 5:02
Foundations of Amateur Radio For quite some time I have operated a WSPR or Weak Signal Propagation Reporter beacon on the 10m band. If you're not familiar with it, I've dialled the power right down to 10 dBm, or 10 milli…
Ham Challenge [not-audio_url] [/not-audio_url]

Duration: 3:37
Foundations of Amateur Radio The other day I noticed a flurry of QSL card designs come across my screen and it sparked me into action on actually creating such a card for myself. I've previously talked about what I think…
Bald Yak, scene 6, chaos will reign [not-audio_url] [/not-audio_url]

Duration: 6:13
Foundations of Amateur Radio Life is messy. This is not a revelation. We attempt to organise this chaos by using all kinds of magic incantations, to-do lists, new year resolutions, plans, projects and anything else you m…
Bald Yak, week 4, time [not-audio_url] [/not-audio_url]

Duration: 5:13
Foundations of Amateur Radio In the analogue world you throw up an antenna, turn on your radio, tune to a station and sound comes out. Aside from propagation restrictions, you don't particularly care when you do this. In…