Foundations of Amateur Radio

One of the many challenges associated with being a radio amateur is actually being able to listen to weak signals. If you’re like me and more than half the planet, you live in an urban area, which comes with the benefits and pitfalls of having neighbours.

From a radio perspective, there’s plenty of noise that drowns out weak signals, so more and more amateurs are finding new and interesting ways to deal with this.

Over the years I’ve talked plenty about so-called web-sdr, or internet accessible software defined radios. Essentially a radio receiver, preferably in a radio quiet area, hooked up to some software that allows you to listen in using a web browser. There’s thousands of internet based services across the globe, the most popular of those are websdr.org and kiwisdr.com.

As a new amateur you might have visited one or more of these and tuned around to listen to various radio stations and QSOs or contacts between amateurs, on bands that you can’t access because you don’t have the gear, or frequencies that are drowned out locally by your neighbour’s pool pump, air conditioner, LED lighting, solar power inverter, television, motor home, cycle, or whatever else they seem to have an endless supply of behind closed doors.

As a crusty amateur, and after about 15 years, I’m probably one of those, you might have started experimenting with building your own, or you might be blissfully unaware of these internet marvels.

Either way, one restriction you run into is the ability to do anything other than listen. You might get the option to pick between Upper and Lower Side Band, or AM, sometimes even FM, but generally that’s your lot.

This means that trying to use such a tool to decode WSPR, or FT8, or RTTY, CW, PSK31, or whatever else takes your fancy becomes a challenge.

It occurred to me that if you’re able to capture the raw signal from a web browser, you could feed that into your decoder of choice. It would also mean that you wouldn’t need any local hardware to start playing.

Before you get all hot and bothered like I did. This is a non-trivial process that several others have attempted to wade through with varying levels of success. Much of the documentation I’ve discovered revolves around virtual audio cables and loop back software, and even the idea that you physically plug your computer’s speaker output into your line input, or even hold a microphone up to your speakers.

Aside from the lack of elegance associated with such contraptions, they require that you install all manner of weird software, and in many cases deal with permissions, since microphones are generally locked for good privacy reasons.

Prompted by the webserial tool by Phil VK7JJ, it occurred to me that if we can talk to actual physical hardware within a web browser, then we can probably use a web browser as an audio source for local decoding software. Before you start hunting for the source code, there is none. I’ve spent the past few days playing around and although I made a waterfall display inside GNU Radio that used the audio from websdr.org, the results were not amazing, and I created a proof of concept by using a tool called BlackHole on the Macintosh I was using at the time. It’s essentially doing shenanigans with audio mapping, not something which I really want to do, but it gives me a pretty picture, or not, as the case may be.

More interesting is the progress being made over in the KiwiSDR community, where there is already an I/Q button, in other words, the raw data needed for processing further down the line. I came across projects that link the KiwiSDR to other tools, but it’s unclear if that’s the hardware, or the web client, I suspect it’s the hardware, but I might be mistaken.

If you’re not sure what this might mean, think about listening to the same frequency at the same time across the globe using multiple web browser tabs, and comparing the signals in real time, or decoding them, or using them for comparing signal strengths, or propagation, or any number of things that are currently only possible with a vast network of radios under your own control.

If you need to nerd out on the technicalities, the idea is that if you can access an SDR via a web browser, it would be cool if we could decode the stream coming back without needing to install software on the computer. There appear to be tools that do this kind of thing to get the audio into “ffmpeg”. If that’s gobbledegook to you, ffmpeg is a tool that allows you to do all kinds of cool stuff with audio and video. Using something called WASM, or webassembly, it’s possible to link web browser audio to ffmpeg. I suspect it’s possible to use the same mechanism to send audio to GNU Radio, or any other decoder, for processing. There also appears to be a thing called a Web Audio API AudioBuffer where the raw audio gets sent to, so perhaps that’s accessible in some way. The point being, that I think this is doable, so much so, that I suspect that someone already did this.

If you know of anything that fits the bill, let me know.

In case you’re wondering, this is tangentially linked to the Bald Yak project I’ve been working on, mainly because I need incoming RF into my shack and my HF antenna situation at present is really not up to the task, urbanite and all.

I’m Onno VK6FLAB