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: 50

Foundations of Amateur Radio
Podcast Episodes
Bald Yak 14, choices and software flexibility [not-audio_url] [/not-audio_url]

Duration: 8:19
Foundations of Amateur Radio Let's start with an observation, I'm a geek, have been all my life. Since my early teenage years that evolved as a predilection for computing. As you might already know, I became a radio amat…
I have a problem .. with logging. [not-audio_url] [/not-audio_url]

Duration: 8:45
Foundations of Amateur Radio The first step in solving any problem is recognising that there is one. In my case the name of that problem is "logging". Specifically the storage and collection of my amateur radio contact l…
How to make our hobby and community resilient? [not-audio_url] [/not-audio_url]

Duration: 6:37
Foundations of Amateur Radio The other day I was stuck in traffic behind a vehicle proudly proclaiming that it was "electric". I'd seen the model before, just never connected it with being available as an EV. I wondered…
A new year with new services to the public .. in 1905 [not-audio_url] [/not-audio_url]

Duration: 7:18
Foundations of Amateur Radio Recently I spent some quality time digging into the origins of a word in common use. In doing so, I contacted the Postal Museum in the United Kingdom and received a lovely reply that included…
What do you call that .. radio? [not-audio_url] [/not-audio_url]

Duration: 7:37
Foundations of Amateur Radio If you use a word often enough it starts to lose its meaning. The other day, during breakfast, well, coffee, whilst playing one of our start-the-day with a smile word games, the word "RADIO"…
On the origins of the RF circulator [not-audio_url] [/not-audio_url]

Duration: 6:04
Foundations of Amateur Radio Recently I explored the use of a radio device aptly described by a fellow Aussie Electronics Engineer, "ozeng", as "Absolute witchcraft." .. I'm talking about an "RF circulator", one of which…
Going around in circles, one-way. [not-audio_url] [/not-audio_url]

Duration: 6:14
Foundations of Amateur Radio The other day I saw a post by fellow amateur Gary N8DMT who mentioned an "RF circulator" and a PlutoSDR in the same sentence. Amplified by a response from a fellow Aussie Electronics Engineer…
Bald Yak 13, Monitoring the Sun .. small steps [not-audio_url] [/not-audio_url]

Duration: 5:46
Foundations of Amateur Radio The other day I received an email from Frank K4FMH asking me about an idea I'd worked on some time ago, namely the notion that I might monitor solar flux at home using a software defined radi…
When your hobby revolves around electricity ... [not-audio_url] [/not-audio_url]

Duration: 11:53
Foundations of Amateur Radio The other day I went on my first POTA or Parks On The Air adventure, this time I was on my own. If you recall, my power company announced yet another planned network outage and I felt that I…