Facebook Pixel
Foundations of Amateur Radio

What's in a prediction?

Foundations of Amateur Radio
Foundations of Amateur Radio
Foundations of Amateur Radio

Over the past little while I've been experimenting with various tools that decode radio signals. For some of those tools the signals come from space. Equipment in space is moving all the time, which means that the thing you want to hear isn't always in range.

For example.

The International Space Station or ISS has a typical orbit of 90 minutes. Several times a day there's a pass. That means that it's somewhere within receiving range of my station. It might be very close to the horizon and only visible for a few seconds, or it might be directly overhead and visible for 10 minutes. If it's transmitting APRS on a particular frequency, it can be decoded using something like multimon-ng. If it's transmitting Slow Scan TV, qsstv can do the decoding. I've done this and I must say, it's exciting to see a picture come in line-by-line, highly recommended.

The National Oceanic and Atmospheric Administration or NOAA, has a fleet of satellites in a polar orbit that lasts about 102 minutes and they're overhead at least every 12 hours. You can use something like noaa-apt to decode the images coming from the various weather satellites, or a python script and I'll talk about that at some point.

There is a growing cloud of cube satellites with interesting telemetry. They're in all kinds of orbits and you can attempt to receive data from each one as it's in sight.

Keeping track of what's where and when is a full time job for plenty of people. As a radio amateur I'm happy to defer to the experts who tell me where a piece of equipment is and when I'm likely to be able to receive a radio signal from the transmitter I'm interested in.

Previously I've mentioned in passing a tool called gpredict that does this heavy lifting for me. It presents a map of the world and shows what's visible at my location and when the next acquisition of signal for a particular satellite might occur. It talks to the internet to download the latest orbital information. It also has the ability to control a rotator to point your antenna, not that I have one, and it can update the transmit and receive frequency of your radio to compensate for the Doppler effect that changes the observed frequency as a satellite passes overhead. All this works with a graphical user-interface, that is to say, you have a screen that you're looking at and can click on.

Whilst running gpredict, you can simultaneously launch the appropriate decoding tool for the signal that you're trying to receive. If you have a powerful enough computer, you can run multiple decoding tools together. You'll have separate windows for controlling the radio and antenna, for decoding APRS, SSTV, NOAA and if you're wanting to do sunrise and sunset propagation testing using WSPR, you can also run WSJT-X or any other decoder you're interested in.

There are some implications associated with doing this, apart from needing a big enough screen, needing considerable computing power and burning electricity for no good reason, the signal that comes in from your radio will be fed to all the decoders at the same time and all of them will attempt to decode the signal, even when you know that this serves no purpose. That's fine if you don't know what you're listening to, but most of the time you know exactly what it is, even if the software doesn't.

Manually launching and quitting decoders is one option, but what if the next ISS pass is at 3am?

Aside from the computing requirements, so far this works fine with a standard analogue radio like my Yaesu FT-857d. The only limitation is that you can only receive one station at a time.

If you replace the analogue radio with an RTL-SDR dongle, you gain the ability to record and decode simultaneous stations within about 2.4 MHz of each other.

Another option is to use an ADALM Pluto and as long as the stations are within 20 MHz of each other, you can record and decode their signals. If you're not familiar with a Pluto, it's essentially a computer, receiver and transmitter, all in a little box, the size of a pack of cards.

This is where it gets interesting.

The Pluto doesn't have a screen, or a keyboard for that matter, but it's a computer. It runs Linux and you can run decoders on it. I've done this with ADS-B signals using a tool called dump1090. You'll find it on my GitHub page.

One of the sticking points in decoding signals from space was the ability to predict when a satellite pass occurs without requiring a computer screen. Thanks to a command-line tool called "predict", written by John, KD2BD and others I've now discovered a way to achieve that. My efforts are not quite at the point of show-and-tell, but I've got a Docker container that's building and running predict on its own and using a little bash script it's telling me when the ISS is overhead. You'll find that on GitHub as well.

My next challenge is to do some automated decoding of actual space signals. I'm going to start with the ISS, predict and multimon-ng. I'll let you know how I go.

What space signals are you interested in?

I'm Onno VK6FLAB

Foundations of Amateur Radio
Not playing