Bald Yak 17: Adventures in Radio Data Systems

Bald Yak 17: Adventures in Radio Data Systems

Author: Onno (VK6FLAB) March 21, 2026 Duration: 5:01
Foundations of Amateur Radio

While spending some quality time discovering what I don't know about GNU Radio, I explored the notion of attempting to at least understand a little more about how an FM signal works. Depending on your background, the letters FM mean different things. In amateur radio it's a way to encode information, generally audio, using something called frequency modulation. Outside the hobby, the letters point at commercial broadcast radio.

While the two are related, they're not the same thing.

In amateur radio use, FM is a single channel of mono-audio, however, in commercial broadcast radio, there's a whole lot more going on, interesting because it gives you ready-made access to a composite signal that's just complicated enough to be challenging without being so complex that you need to spend hours on understanding the thing.

In essence, a commercial FM broadcast signal is multiple channels encoded in a specific and documented way. This is helpful, since you can compare the documentation against ready made examples and replicate the process for yourself.

In case you're new here, I'm in the process of building a radio system, in software, using GNU Radio in a project called Bald Yak. Specifically, the Bald Yak project aims to create a modular, bidirectional and distributed signal processing and control system that leverages GNU Radio. It's called Bald Yak because by the time I'm done, the Yak is likely well and truly shaved.

One of the easy things to forget when you're using GNU Radio Companion, is that the blocks you're connecting together on the screen into a flowgraph actually represent software, generated when you either build or run the flowgraph. This code is currently generated in either Python or C++, making me wonder, what does the code look like, and more specifically, what code would be needed to decode FM?

It turns out that an old friend, the PySDR.org website has a whole chapter dedicated to this process. Chapter 18, the End-to-End Example, details how you can decode one of the channels embedded within a commercial FM broadcast, the RDS or Radio Data System signal.

If you're not familiar, the PySDR.org website represents a whole book about software defined radio and python. It goes into as much or as little detail as you want, to explain how this whole software malarkey works, and takes you by the hand down the path of discovery.

So, armed with a working example, I followed along the bouncing ball and made a working RDS decoder and I think, understood most of it. There's a few interesting wrinkles that I've contacted the author, Dr. Marc Lichtman, about and we'll see what comes of that.

Here's the kicker.

The author, who is also a senior member of the GNU Radio team, started with a GNU Radio flowgraph and reverse engineered what was happening to get to the point of the code that's available in PySDR.org Chapter 18. This is significant because it creates a relationship between the code I have in front of me and the code generated by GNU Radio, which means that when I start with a new flowgraph, not only do I know the steps required, I also know that the outcome is predetermined, as-in, I already know that there's a solution. Having professionally written software for over 40 years, I can tell you that this is not often the case.

I realise that I can search the Internet for an RDS decoder flowgraph, but that's unlikely to get me to a better understanding of what GNU Radio is doing.

Once I've clarified with the author, I'll add the code to my GitHub project, "Fifty Things you can do with a Software Defined Radio", specifically, "Receive road traffic information", since among other things, that's carried by RDS.

As an aside, Rohde and Schwarz have a lovely YouTube video on the topic, "Understanding the Radio Data System", which is giving me a whole set of ideas about things we might attempt with amateur radio repeaters, but that's a story for another time.

Meanwhile, have you considered what other signals exist on the RF spectrum that you might want to decode and how you'd go about this?

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
Bald Yak 20: More Pi with the Soap [not-audio_url] [/not-audio_url]

Duration: 4:48
Foundations of Amateur Radio The thing I think I love most about the hobby of amateur radio is the challenges it represents, not in terms of life or emotional ones, though I will admit that there's some of those .. in no…
Bald Yak 19: SoapyAudio adventures [not-audio_url] [/not-audio_url]

Duration: 5:16
Foundations of Amateur Radio Previously I've talked about a piece of software called SoapyAudio. It's part of the toolkit called SoapySDR which in turn is part of a whole ecosystem called the Pothos framework, coordinate…
Why not use LoTW? [not-audio_url] [/not-audio_url]

Duration: 9:34
Foundations of Amateur Radio The other day I witnessed a fellow amateur attempting to guilt another into using LoTW with comments about how their QSO partner would appreciate confirmation via the service, even if they di…
Some days are like running in place ... [not-audio_url] [/not-audio_url]

Duration: 4:54
Foundations of Amateur Radio Recently I discovered that the antenna that I had connected to my WSPR or Weak Signal Propagation Reporter beacon was not a 40m antenna, instead, it turns out to be a 15m antenna. The how and…
Keeping track of your adventures [not-audio_url] [/not-audio_url]

Duration: 8:21
Foundations of Amateur Radio About a year ago I set upon a new adventure, to determine if the dummy load I own, traditionally seen as a device that doesn't emit any RF, to determine if it was in fact imbued with the abil…
Dealing with Complexity [not-audio_url] [/not-audio_url]

Duration: 6:00
Foundations of Amateur Radio Several years ago, I forget exactly when, I was gifted a device called a "Wio Terminal". It's a micro-controller in a box with a screen, buttons, Wi-Fi, Bluetooth and a boat load of sensors,…
What does amateur radio bring to your life? [not-audio_url] [/not-audio_url]

Duration: 5:36
Foundations of Amateur Radio The other day I went for a walk around the block for the first time in a while. It's something I did for a time and then for several reasons, mostly to do with health, didn't. For me it's the…
You don't need an excuse to make noise! [not-audio_url] [/not-audio_url]

Duration: 3:40
Foundations of Amateur Radio The other day I came across a post on mastodon.radio by Keith W6KME announcing the resumption of the Micro Field Day, spelled using the 12th letter of the Greek alphabet, Mu. This was news to…
What's in an S-unit? [not-audio_url] [/not-audio_url]

Duration: 10:43
Foundations of Amateur Radio The other day fellow amateur Randall VK6WR raised an interesting question. Using his HP 8920A RF Communications Test Set, which you might recall from our adventures in measuring radio harmoni…
Where is the spark .. gap? [not-audio_url] [/not-audio_url]

Duration: 8:35
Foundations of Amateur Radio The thing I love most about this amazing hobby of amateur radio is the sheer size of the community and the depth of knowledge that comes with it. Case in point, the other day I mentioned the…