Foundations of Amateur Radio
Streaming a dozen repeaters with an RTL-SDR dongle
A while ago as part of my ongoing exploration into all things radio I came across a utility called rtlsdr-airband. It's a tool that uses a cheap software defined radio dongle to listen to a station frequency or channel and send it to a variety of different outputs. Originally written by Tony Wong in 2014, it's since been updated and is now maintained by Tomasz Lemiech. There are contributions by a dozen other developers.
The original examples are based around listening to Air Traffic Control channels. I know of a local amateur who uses it to listen to and share the local emergency services communication channels, especially important during local bush fires.
While sophisticated, it's a pretty simple tool to use, runs on a Raspberry Pi, or in my case, inside a Docker container. It's well documented, has instructions on how to compile it and how to configure it.
Before I get into what I've done, as a test, let's have a look at the kinds of things that rtlsdr-airband can do.
First of all, it's intended to be used for AM, but if you read the fine documentation, you'll learn that you can also make it support Narrowband FM. It can generate output in a variety of different ways, from a normal audio file, to an I/Q file - more about that at another time, and it can also send audio as a stream to a service like icecast, broadcastify or even to your local pulse audio server. If that last one doesn't mean much to you, it's a local network audio service, popular under Linux, but it runs on pretty much anything else thanks to the community efforts of many.
So, on the face of it, you can listen to a channel, be it AM or Narrowband FM, and send that to some output, but I wouldn't spend anywhere as much time on this if that was all there was to it.
The software can also dynamically change channels, support multiple dongles, or simultaneously listen to several channels at once and output each of those where ever you desire.
Another interesting thing and ultimately the reason I thought to discuss it here is that rtlsdr-airband also supports the concept of a mixer. You can send multiple channels to a single mixer and output the result somewhere else.
Using a mixer, in addition to setting cut off frequencies and other audio attributes, you can set the audio balance for each individual channel. This means that you can mix a channel exclusively to the left ear, or to the right ear, to both, or somewhere in between.
Now, to add one extra little bit of information.
In my location there's about a dozen or so amateur repeaters most of which can be heard at some time or another from my QTH. The frequency spread of those dozen repeaters is less than 2 MHz. A cheap RTL-SDR dongle can handle about 2.56 MHz.
Perhaps you've not yet had the ah-ha moment, but what if you were to define an rtlsdr-airband receiver that listened to a dozen amateur radio repeaters - at the same time - and using the audio balance spread those repeaters between your left and right ear, you could stream that somewhere and listen to it.
I'm sitting here with my headphones on, listening to the various repeaters do their idents, various discussions on different repeaters, a local beacon, incoming AllStar and other links, all spread out across my audio horizon, almost as if you can see where they are on the escarpment, though truth be told, I've just spaced them out evenly, but you get the idea.
My original Raspberry Pi wasn't quite powerful enough to do this in the brute force way I've configured this, so as a proof of concept I'm running it on my main computer, but there's nothing to suggest that doing a little diligent tweaking won't make my Pi more than enough to make this happen.
As for audio bandwidth, it's a single audio stream, so a dial-up connection to the internet should be sufficient to get the audio out to the world.
I will point out that there may be legal implications with streaming your local amateur repeaters to the world, so don't do that without checking.
For my efforts, this is an example of: "I wonder if ..."
As it turns out, Yes you can. As it happens, my next challenge is to use this code on a PlutoSDR where the bandwidth is slightly larger, mind you, I'll have to do some fancy footwork to process the data without overwhelming the CPU, but that's another experiment in my future.
What kind of crazy stuff have you tried that worked?
I'm Onno VK6FLAB
This article is the transcript of the weekly 'Foundations of Amateur Radio' podcast, produced by Onno Benschop, VK6FLAB who was licensed as radio amateur in Perth, Western Australia in 2010. For other episodes, visit http://vk6flab.com/. Feel free to get in touch directly via email: firstname.lastname@example.org
If you'd like to join a weekly radio net for new and returning amateurs, check out the details at http://ftroop.vk6flab.com/, the net runs every week on Saturday, from 00:00 to 01:00 UTC on Echolink, IRLP, AllStar Link, Brandmeister and 2m FM via various repeaters, all are welcome.