Updated: Jun 29
In the first article in this series about minimalist radio, I described the basic hardware and software setup I was using for these projects. Previously I described how you can cheaply use an NESDR Smart to set up your own virtual Air Traffic Control radar system.
In this post, I’m going to aim higher - 500 miles up, into the realm of decoding images from weather satellites.
The NOAA APT Weather Satellites
The NOAA satellite family has a venerable history. The currently active ones (NOAA-15, NOAA-18 and NOAA-19) are the latest iterations of a platform which has been continuously orbiting the earth, returning vital weather and earth observation information since the 1970s.
They have two main downlink modes. First of all, high resolution - HRPT - images are broadcast at around 1.7 GHz. These signals need specialised tracking antennas/dishes, and are not really feasible to receive on a shoestring.
On the other hand, they also broadcast a lower resolution signal in the APT format (automatic picture transmission) at around 137 MHz. These are a very different proposition. With a simple setup and a little patience, it’s entirely possible to receive and decode them using the minimalist Radio Airbnb setup.
Sadly for those interested in receiving these birds, there will be no more. In a nod to progress, NOAA-20 does not downlink an APT signal. The technology dates back to the 1960s, and NOAA have decided not to continue supporting it. Once 15, 18 and 19 have gone dark, those beautiful, sing-song signals will cease.
The System Setup
The basic equipment needed to receive NOAA APT transmissions is essentially as we described in the original article. A MacBook Pro running Parallels Desktop, a Nooelec NESDR Smart USB-pluggable radio, and some free software. We also need a special antenna.
In fact, why don’t we start with the antenna…
Antennas For Receiving APT
You’re going to need more than an FM radio antenna sticking out of the top of your radio to receive these signals. Apart from being 500 miles away, they are encoded in a special way. (Right handed circular polarisation, if you’re interested). What this means is that you need a special antenna. The good news is that it isn’t hard to make one.
Historically (but which I mean - 'the last time I was messing about with radio' - about 10 years ago) two main kinds of antenna were used to receive APT weather satellite broadcasts - the Turnstile antenna, and the QFH helical:
The Turnstile consists of 4 elements, each about a metre long. They’re arranged in two pairs at right angles, mounted one above the other. They’re not especially heavy, but they’re bulky and take up a fair bit of space.
The QFH is more compact. It consists of four wires, wound around each other, sort of like a double-double DNA helix.
If you think that sounds complicated, you’re right. It’s difficult to make them accurately by hand, and commercial ones aren’t cheap.
Neither of these antennas are the kind of thing you can stick on a pot with a magnet, or tape to a wall as a temporary setup - and therefore are completely unsuitable for an Airbnb station.
However: around 2015, an amateur radio enthusiast called Adam worked out that you could create an alternative APT antenna which would be almost as effective. It's called a 'V-Dipole' - for reasons which will become readily apparent.
Best of all, it’s really easy to make. You need two elements about 50 cm long, a connector block to link them to the feed wire, and some way to mechanically stabilise them. I immediately started surveying my surroundings for a suitable solution.
The “Little Caesar” Pizza Box APT Antenna
My first attempt was to run two lengths of AC extension cable to the appropriate lengths, and mount them to a pizza box for rigidity. The wires were terminated in a chocolate block type screw connector (a couple of dollars from Mercado Libre, Mexico's answer to Amazon and eBay) , and an RG58 cable with SMA connector provided the output:
I 'mounted' it temporarily between some decorative plastic piping on the terrace:
Perhaps surprisingly, this did actually receive a signal, but it was poor quality and very noisy. Back to the drawing board.
Next I replaced the wires with a coat hanger cut to size. The design was the same, but the coat hanger meant I could more accurately measure the length of each side of the antenna to get it closer to the right dimensions. The elements were now also obviously straighter and more rigid (Note: it takes some time to get all the kinks out of a coat hanger with only a multi-tool!)
The results of this were good enough to start playing with - so let's look at the rest of the setup.
APT Software Setup
Like many older radio data formats, APT is fairly straightforward to receive. It's encoded as a simple audio signal (Click on that link and select 'Play sample' form the right-hand menu to hear what it sounds like).
This means it's easy to tune into it using any radio which covers the right frequency - or, in this case, an NESDR radio combined with CubicSDR to control it.
First Catch Your Satellites
But first of all you need to know when the satellites are going to be overhead.
They speed around the globe in a 'sun synchronous' orbit, designed to give at least one good look at every point on earth around local morning and evening. Depending on the exact details of the 'pass', they're only visible from your part of the world for around 12-15 minutes.
There are a number of sites which let you enter your location and find out when satellites are going to pass overhead: N2YO, Heavens Above, SatFlare and others. If you prefer to do it on your phone, SatSat is a great app (although I think iOS only) and free.
If you're old-school and prefer to run it locally - which also means without having to worry about your internet connection - gpredict is a little quirky, but it's free and powerful. It's available for Linux, Windows and OSX:
Any of these will give you information about the times the satellites you're interested in will be in your sky. They'll show some version of a table similar to this:
The columns here are fairly straightforward. First of all, for each day, it lists the NOAA satellites which will be visible, in order. The 'Dir' column says whether the satellite is flying N->S (S or southbound), or S->N (Northbound).
MEL is 'maximum elevation'. This is important. Satellites don't obediently pass directly over your head, just because you want to receive them 😀 They'll pass off to one side or another - sometimes they never get very high in the sky.
A maximum elevation of 10º means it barely gets above the horizon. 90º means it passes directly overhead.
All other things being equal, the higher the maximum elevation, the longer the pass, the better the signal, and the better results.
'Long' is the longitude of the satellite at its highest elevation. This will be east or west of your longitude - the further away, the lower the MEL will be. 'Freq' is the frequency the satellite broadcasts on - each one has its own.
(You need to make sure you're tuned to the right bird - more than once I've been sitting waiting for a promising pass, only to discover I was tuned to the wrong channel!)
The times given are for the beginning of the pass (in local time or UTC), and the duration is how long the pass will last - ie, how long between rising above one horizon, and setting beyond the other one.
Here's a detailed look at a single pass, generated by SatSat:
Imagine you're standing at the exact centre of the circles. The satellite be will exactly south (180º) at 19:50:50 local time. (AOS = 'acquisition of signal'). Over the following 16 minutes or so it will travel a bit west of you, still rising, until it reaches 46.9º of altitude. This is the highest point it will reach on this pass.
From then onwards it's setting until 20:06:15 local, when it disappears below the horizon (LOS - 'loss of signal').
If you're starting out, I suggest trying for passes with as high an elevation as possible. 60º or more should be fine. Once you're used to how things work, you can aim for more difficult passes.
One other important point: these satellite signals are line of sight, and 500 miles away. They're easily blocked by buildings, foliage, trees, even heavy rain. If you lose signal at some point, have a look at the environment the antenna is in. Compare it with the timings on the pass diagram and see if it drops out when the satellite goes behind a tree or large nearby building!
Tuning The Signal
OK, we have our antenna - pizza box or otherwise - we have it plugged into the radio, and we know there's a good pass in a few minutes. We've tuned into the right frequency - here's a reminder:
NOAA-15: 137.6200 MHz
NOAA-18: 137.9125 MHz
NOAA-19: 137.1000 MHz
If you're doing this in CubicSDR, your screen will look a bit like this:
Shortly after the time the pass is due to start, you'll start to hear a repetitive, electronic sing-song sound. It repeats constantly about twice a second without pauses. Once you've heard it you'll instantly recognise it in future.
You can either record the signal and process it later, or process it in real-time. For the purposes of this exercise we'll just record it.
Make sure you've selected a recording path in CubicSDR ('Recording/Set Recording Path...') and click on 'Start Recording'.
Once the pass has finished (you'll hear the signal fade and die out) stop recording. Let's see what we've captured!
Decoding The Signal
There are a number of pieces of software out there to decode APT signals. Sadly, most of them are quite old - it's not really a good investment of time to develop software for end-of-life satellites.
After trying a few of them, I came to the conclusion that the best one is still the one I was using last time round - WXtoImg ('weather to image'). The software is so old, in fact, that the author has abandoned it. It's being kept alive by enthusiasts at the site "WXtoImg Restored". It's available for Mac, Windows and various versions of Linux (including a beta version for ARM processors which works on Raspberry Pi).
I followed the process above. I could hear the signal and waited till it was saved to disk. I opened WXtoImg and asked it to open the .wav file containing the audio.
After a minute or so of processing, it produced this:
OK. That image isn't going to win any prizes. There's very little detail - the volume was too high, the audio bandwidth too low, there was a lot of noise above and below that I cropped out.
But I was still receiving signals from space with a coat hanger! 😜
If you run WXtoImg at the same time as you're receiving, it's possible to watch the image being built up line-by-line, and adjust the gain at the same time. You want to aim for a green volume signal about 65-85:
After tweaking settings over a few passes, and working out the radio a little better, I started getting some better quality images:
But they were still noisy, and I was still only getting a signal on high passes.
I knew I could do better...
Improving The Setup
A general rule of antenna installation is to 'get it as high as you can'. In its position, the pizza box was really under the eaves of our apartment, surrounded on all sides by buildings. No wonder it was struggling.
I made a few changes.
Firstly, I dismantled the antenna, and re-measured the lengths of the two dipole elements - remembering that the RF length is from the tip of the dipole to the point where it enters the coax. I trimmed about 15 mm off one, and 5 off the other.
Next, I sadly bid farewell to the pizza box itself. Using insulating tape, I wrapped the mount point of the antenna solidly so it didn't need the support of the cardboard. I taped it to the end of a broom handle and lodged it in such a way that it was securely, if temporarily, sticking a couple of metres above its previous position:
Finally, I re-routed the feeder cable (15m of RG58) to get rid of kinks, and more importantly run a path which kept it away from as much obvious electrical noise - TV, wifi router, etc - as I could.
The difference all this made was incredible:
Are they perfect? Of course not. There are many ways they can be improved (see below). But I keep having to remind myself that they're being recorded by a minimalist setup, using inexpensive home-made equipment, a cheap radio, and free software.
I started this blog because I wanted to document my travels - because of the virus, physical travel is difficult or impossible. But at least like this, I can look down on our situation, and dream of the places we're going to travel to when things get back to some kind of normality.
Further Ways To Improve
It's quite possible to get even better signals and decoded pictures. There are a number of options:
Get the antenna higher: As described above, this will definitely clear the horizons and local foliage, and improve the signal. However, I've no way to mount one safely, and can't really ask our host to install something on the roof of the building. So that's out.
Buy a professional antenna: See above. I'm not in a position to install a QFH or turnstile, and even if I could, it goes against the whole 'travelling light' minimalist philosophy.
Install an amplifier: People who are serious about APT reception often install an LNA - a low noise amplifier - right at the antenna. If blocks signals other than the weather satellites and amplifies the signals we do want to hear. At around £40-50 I'm tempted; but as most of my problems come from my location, I'm not sure it's worthwhile. They're also useless for anything other than listening on these specific frequencies.
Install an FM filter: In the centre or Guadalajara, like most large cities, the local FM broadcast stations are very powerful. Even though they're not on the same frequency band as the satellites, they can ''drown out' or overload the sensitive radio we're using. FM filters are cheap and I've one on order - it may make a modest improvement.
Summary And Thoughts
Decoding NOAA weather satellites is pretty straightforward, if you have a reasonable understanding of computers, and don't mind putting your Blue Peter engineering skills to use. Once you get into the routine, it's pretty straightforward to set up CubicSDR and WXtoImg and routinely generate pictures for each day's passes.
And being weather, of course, it's always changing, and so always interesting.
But I think I've reached the limit of what I can achieve with the Airbnb setup. I'm very pleased with the results, and I'll keep tweaking, but I think these are about as good as I can do.
On the other hand, there's another weather satellite which can be decoded at much higher resolution. It's Russian, and it's much more of a technical challenge.
Keep watching for more details of my investigation into decoding Meteor M2!
If you enjoyed this article, I'd love you to share it! You can use the buttons below 👍🏻