Why building radio software is fun again

I've been looking for a new open-source project to work on for a while, and I think I've found my new hobby.

I'm happy to announce that my terminal based, software defined radio application is ready for trying out!

You can use it to discover and listen to radio signals, using a device like the RTL-SDR or using any of the public internet receivers.

Amateur radio is dead... right?

Well, yes and no.

In some ways the popularity of the amateur radio is not what it used to be. After all, we have the internet to communicate and that did give a blow to the hobby.

But in other ways, the combination of software and radio is booming. With fun things like Meshtastic (messaging over LoRa) interest is sparked again. You do not need super expensive specialised hardware any more to get started with listening. Devices like the RTL-SDR offload much of the signal processing to software - making the hardware lighter and more flexible.

This was not a good start

For me, I found the SDR space some years ago. I got an RTL-SDR device and went straight to finding some interesting signals. There were two reasons why I didn't continue back then.

First, I didn't know just how much there is out there in the air. I live in a big city, signals here can be hard to receive. I could listen to the FM stations and to ADSB for some aircraft information, but that was about it. I figured that with that much noise, and no place to mount a big antenna, I'd be doomed.

And secondly, the software is just not always that great. There is great software out there (SDRAngel!), but depending on what protocol you want to decode you need to run some old, Windows-only software that looks not great. I'm a software engineer, and I want to make my own software if no other software fills my needs. But what blocked me here was that I just do not have the digital signal processing knowledge to build something from scratch. pysdr.org has been a tremendous resource, but progress on my own sdr software was too slow. So I gave up.

What was missing

But this has changed. I have learned that there are many, many people out there who allow their antenna and sdr device to be accessed from far away over the internet. This makes it much, much easier to listen and explore the signals you're interested in.

And now with "agentic coding" I find that writing complicated signal processing and decoding is much, much more doable. I would lie if I said I could write that code myself, but I know how to steer the agent, to allow the right tests to be written, to let it do the right thing.

And I know the audience of my software - hobbyists like me who like to tinker and see what signals are out there. It's OK if it has bugs. It's OK if it isn't perfect. I plan to write more about this because this is a big change in the space. Most of my software is GPL and for TSDR this is no different. Much of the code is written by agents, but it is ported and tweaked from other (GPL) software (often from C/C++ to Python) that people have spent a tremendous amount of time on.

And finally, I needed to fill a gap, and a TUI was what I found. A keyboard driven, scriptable SDR suite for "power users", in a programming language that is easy to get started in (Python). The amount of knobs and panels in the average GUI SDR software explodes with its increasing complexity. What I did is that the complex stuff is accessible through a pseudo-TTY driven by commands. A set of unix-flavored commands is much easier to expand on than to bolt on yet another knob to an already full UI panel. Did you know we can show images in modern terminals these days? I'm using this to show an (optional) high resolution image of the spectrum and waterfall, something you do want a image for, not just some braille symbols.

Have fun

And that's the whole thing. It isn't perfect, but I'm having so, so much fun building this thing.

Please do check it out - I hope you like it: github.com/floens/tsdr