A plan for distributed SDR decoding

A plan for distributed SDR decoding

Author: Onno (VK6FLAB) October 29, 2022 Duration: 4:29
Foundations of Amateur Radio

Yesterday I finally discovered the missing piece of information that will allow me to create a project that I've, if not outright spoken about, at least hinted at.

In an ideal world by now I'd have built a proof concept and would be telling you that I've published a GitHub repository under my callsign for you to explore. If wishing made it so. Unfortunately, currently sitting at a keyboard for anything longer than ten minutes or so makes it nigh on impossible to stand up, so you'll have to make do with hand waving and gesticulation rather than actual code, but for now, that's all I have. Consider this a design specification if you're so inclined.

So, big idea.

Imagine that you have a device that can listen to radio frequencies. This device is connected to a network and it shares the data to any number of different listeners which might each do something different with the information.

If you were to do this in the way we watch YouTube or listen to streaming audio, each listener would get their own unique copy of the data. If you have ten listeners, you'd have ten streams crossing your network, even if everyone was enjoying the exact same video or audio at the exact same time.

Instead I want the data coming from the device to have only one stream on the network and for as many different listeners or clients to access it as required at the same time.

Let's get specific here for a moment. I'm talking about using a software defined radio, could be a $25 RTL dongle, could be any SDR, that is tuned to a part of the spectrum, let's say the entire 40m band, and sends that radio information digitally onto the network. This network could be your local network, or it could theoretically be the internet, for now, let's just put it out on our own network.

So, you have a copy of the entire 40m band streaming across your network. Great, now what? Well imagine that you want to decode RTTY on 7.040. You fire up your decoder, point it at the network stream and decode RTTY.

Then you want to decode a WSPR signal, at 7.0386. You fire up your WSPR decoder, point it at the network stream and decode WSPR.

Then you want to decode FT8 on 7.056, same deal, fire up your decoder, point it at the network stream and decode FT8.

Now you want to compare two different RTTY decoders. Fire them both up, point them both at the same stream, decode both, simultaneously.

Of course you could do this with CW signals, with SSB signals, with any decoder you have lying around, Olivia, Hellschreiber, AM, Packet, whatever. All these decoders could be running independently but together on the same band.

You could add a tool that shows a waterfall display of the same data on a web page, or play some of the decoded data to your headphones, or record it to disk, or do spectral analysis, all at the same time.

The information that you're processing is on the network once. You don't have to flood your network with multiple copies of the 40m band, the only limit is how much CPU power you can throw at this and to be frank, most computers on the globe today spend much of their time waiting for you to do something, so processing a bit of data like this is not going to tax anything built in the past 20 years or so.

The missing ingredient for this was a Linux tool called netcat, or nc. It allows us to distribute the information across the network using a technique called broadcasting.

So, RTL dongle, data extracted by a tool called rtl_sdr, distributed across the network using netcat and used by as many clients as you can think of.

The proof of concept I'm working on uses Docker to build a bunch of different containers, or clients if you like, that each can do a different task with the same stream. When I've got something to show and tell, you'll find it, predictably, on my GitHub page.

Oh, if you want to run the same thing for say the 80m band, you can. Now you have two network streams, one for 40m, one for 80m and as many decoders on your network as you have CPU cycles to play with.

If all this sounds like magic, you've seen nothing yet.

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: English Episodes: 579

Foundations of Amateur Radio
Podcast Episodes
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, scene 5, debugging [not-audio_url] [/not-audio_url]

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 leverage…
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…
Bald Yak - week 3 - Push To Talk [not-audio_url] [/not-audio_url]

Duration: 5:39
Foundations of Amateur Radio When you key your transceiver, as-in, you trigger the Push To Talk or PTT button, you close a switch that activates the transmitter and in turn allows your voice to make it through the microp…