Introduction: Receiving Images From Passing Weather Satellites (NOAA and METEOR M2) Using a Cheap SDR
While everyone knows that there are satellites in orbit, most people don't think much of them or their capabilities, beyond making the TV work. But many of the satellites in orbit aren't just used for TV broadcasts. From weather imaging, to collecting science data, to relaying information between probes throughout our solar system, to telecommunications, to GPS, satellites are everywhere in our lives. What surprises people is that some of the satellites transmit signals that anyone can receive and decode. Encoded in those signals is everything from high res images of the earth, to the locations of arctic foxes in Canada, and a mountain of science data. Best of all, the equipment to do this is very cheap or can be made out of readily available materials. In this tutorial we'll be taking you through the whole process, from building your own antenna, to receiving the signals, to finally decoding the signals.
We've made 2 videos on this process already, so if you prefer to watch over reading we've added them above. There are 3 satellites that will be covered in this instructable. The US NOAA 15, 18, 19 satellites.
In another instructable we will cover the Russian Meteor M2 satellite. The equipment required is the same (so much of what is covered here still applies), but the software is a little different.
Step 1: Materials
Most of the materials for this project can be found at the local hardware store or ordered online.
To build the antenna you'll need:
-A long piece of wood. Ideally about 2-3 inches wide, 0.5-1 inch thick and 6-7 feet long.
-2 shorter pieces of the same wood. Both pieces 21inches long.
-4 8 inch pieces of half inch dowel rod
-At least 10 feet of 50ohm coaxial cable. You'll want something on the thinner side so it's still reasonably flexible. If the inner has a solid core, it's usable, but will make connecting things more difficult.
-Some sort of metallic conductor, either rod or wire, that can hold it's shape. Galvanized gardening wire works really well for this, but aluminum or brass rods would also work. You'll need 8 pieces cut to 21 inches long.
-An SMA connector. Female connectors work well as most SDR dongles have a male connector built in
-Drill, drill bit and some 2 inch screws.
-Strong tape, epoxy, or staples
-a knife will also come in handy
To receive the signals you'll need:
-An SDR (Software Defined Radio).
There are lots of these to choose from. On the more expensive side you have things like the HackRF, while on the less expensive side you have the RTLSDR dongles ($20-30). We've used both the HackRF ($300) and the NOOELEC NESDR SMART ($20-30) with great success. Both of these can be purchased online easily (both are currently on Amazon at the time of writing)
Step 2: Building the Antenna (the Basics and Making the Dipoles)
There are many types of antenna, but the one we've found that works most reliably is a double cross antenna. A double cross antenna is 4 dipole antennas mounted together (a dipole antenna being just 2 pieces of bare wire), one at each cardinal direction and tipped at an angle. This allows the antenna to be omnidirectional and receive signals regardless of where the satellite is in the sky. We mount the dipoles at an angle to the axis of the pole(see next section) because the signal from the satellites is right hand circularly polarized.
A note : We're using wood because that is what was on hand. Using things like PVC are also fine, and doing it that way also allows you to make versions that are weatherproof and can be left outside.
First assemble the dipoles:
If you're using some sort of wire akin to ours make sure you've cut and straightened it as well as possible before beginning. The wires are the length they are, because we're making an antenna tuned to 137Mhz. Each wire is 1/4 of the length of a 137Mhz wave, while the pair together is 1/2 a wavelength. Add a small bend at one end of each wire to make it easier to solder to later. Attach 2 pieces of wire to each of the 4 pieces of dowel. (You don't necessarily need to use dowel for this, plastic, or other thin pieces of wood also work) Place the pair of wires end to end on the dowel, leaving a 1 inch gap in the middle. Making sure the wires line up as well as possible, secure them to the dowel. Tape, staples, zip ties, epoxy all work for this, so use what you think will be the strongest and more durable. When all 4 dipoles are assembled we can move on to the next step
Step 3: Building the Antenna (main Structure)
Building the main structure of the antenna:
First drill a hole in the center of the flat side of the 2 short pieces of wood. Also want to predrill the top of the long piece of wood. Lay the two short pieces on top of each other so the holes line up then put a screw in partially so that the two pieces are connected but the screw isn't sticking out of the bottom too much. Then take the now connected boards, line up the screw with the hole we pre-drilled in the top of our long piece and finish putting the screw in. Turn the 2 short pieces so they form a cross pattern, then tighten the screw down all the way. At this point you may want to drill another hole and add a second screw in the top to prevent this from rotating. Now with the cross assembled and mounted to the main pole, add the dipoles made earlier.
Drill a hole in the center of the 1 inch gap left between the two pieces of wire. Also pre drill the ends of what is now the cross in the center so you can attach the dipoles. Making sure the bent ends of the dipoles are facing directly outwards, use a screw to attach each dipole to one side of the cross. Once they're all attached, bend the dipoles so they are all at 30 degree angles with the higher side on the left. You may want to add a second screw here to prevent the dipole from being angled too far
Step 4: Building the Antenna (wiring)
The wiring of the antenna looks difficult but is straightforward. We'll be attaching 1 piece of coaxial cable to each dipole, then connecting them all together in a specific pattern.
There are a few things we need to take into account.The first is that because of the way the signal interacts with the antenna, 2 of the 4 dipoles will be receiving their piece of the signal slightly delayed from the other two. To account for this and to make sure everything lines up properly on the output wire, we need to delay the signal from 2 of the dipoles. This is called phasing.
Because of how quickly the signals move through the wires, the easiest way to do this is to make 2 of the 4 pieces of coaxial cable longer than the others. We want the two longer pieces to be 1/4 wavelength longer than the other pieces. For simplicity, it best to just cut 2 pieces 1/4 wavelength (21 inches) long and the other pieces 1/2 wavelength (42 inches) long. We'll divide the dipoles into opposite pairs. You'll want to number the first pair 1 and 2, and the others 3 and 4. Strip the 4 pieces of coax on both ends.
Starting with the two shorter pieces of coaxial cable, solder the inner wire to the top wire of dipole 1 and the shielding to the bottom wire. Repeat with dipole 2. Do the same thing with the long pieces for dipoles 3 and 4. Now we just need to connect all 4 pieces together, and add our output wire. I've added a wiring diagram here to show what gets connected together.
For the output wire, you'll want to use a piece of coaxial cable that is on the longer side. This will give you more room to move the antenna around. If you want to make the antenna a permanent feature on a roof, you'll need to add sufficient coaxial cable for it to reach. However something to keep in mind, the longer your wire the weaker the signal. For this instructable, that isn't a huge issue because of how strong the signal is, but it becomes more important for other satellites.
To the end of the output wire, add a female SMA connector. This can be done by first stripping the coaxial cable to the shielding and peeling it back. Then strip just enough of the inner wire to allow you to solder on the inner pin of the SMA connector. Make sure not to leave globs of solder to avoid shorts. Slide on the outer piece of the connector and solder the coax's shielding to it. Remember to slide the metal sleeve that comes with the connector onto the coax cable before adding the connector. Either crimp it in place once all the soldering is done, or solder it to the outer piece of the connector as well.
And with that, our antenna is done!
Step 5: Setting Up the SDR (SDRsharp)
With the antenna made, we can now connect the output line to our SDR and plug the SDR into the usb port of a laptop. Some SDR dongles will work out of box, but some require extra installation steps which we won't be covered here as they vary between dongles.
To control the SDR we need to download a piece of software called SDRsharp. This isn't the only SDR program, but it's fairly straightforward to use, and has a long list of compatible plugins that can add more functionality, so it's the one we prefer to use.
It can be downloaded from the Airspy website: http://airspy.com/download/
The windows package comes with more than just SDRsharp and includes other very useful tools for other radio projects.
SDRsharp runs without an installer, but keep in mind where you save the folder containing the program. To make use of plugins, files will need to be added to this folder, as will the tracking program we'll use to figure out where the satellites are.
Step 6: Tracking the Satellites (using Orbitron)
Since the satellites that we're interested in are in polar orbit (they orbit the earth around the poles) we can't listen for them whenever we want. We need to wait until we know they're overhead. This means we need a tracker to figure out where they are, and predict when they'll be passing at a high enough angle to be useful.
One of the best programs for this is called Orbitron, though there are online options as well like www.n2yo.com/
Orbitron can be downloaded here: http://www.stoff.pl/
Download the installer and follow the directions. When it asks you where to put the files, be sure to direct it to the folder where SDRsharps files are located.
Orbitron uses a set of numbers for each satellite called the Kepler elements (or Two Line Elements/TLE) to determine where the satellite is supposed to be. The program comes with lists of satellites and their TLE numbers which you can select by clicking LOAD TLE. You can make custom lists by making a txt file with the TLE numbers for the satellites you're interested in. Just follow the same format as the other lists, and put the new file in the same folder with the others.
If you haven't made your own list, load the NOAA list by clicking LOAD TLE and selecting it, before clicking open. When it's loaded, check NOAA 15, 18 and 19, and deselect anything else.
In the Prediction setup tab, set Satellite elevation to a number between 30 and 45 degrees. This way the program will only show you passes where the satellites are high enough in the sky. This provides the best time to collect images. Then in the Prediction tab, click Predict. When it's done the calculation, click OK. You should see a list of dates and times, and when the satellites will be at their peak elevation. Make sure to have your antenna and everything else set up at least 10 minutes before that time to make sure you catch the pass. If you click on the Rotor/Radio tab and then click on the satellites dot on the map, the program will show you what it's current elevation is. This allows you to follow the motion of the satellite as the pass happens. You may also want to click the Lock Icon to lock to the current satellite so it doesn't jump to another one if it comes over the horizon.
Pick a good pass, and then grab your gear and head outside.
Step 7: Receiving a Signal
When the antenna and SDR are plugged in and ready to go, open SDRsharp. Each satellite broadcasts at a slightly different frequency, so look up what the expected frequency for the satellite pass you've chosen. They'll all be at 137 Mhz but differ by several hundred Kilohertz. NOAA 15 for example broadcasts at 137.63 Mhz. To set SDRsharp to that frequency, click above or below the number you want to change in the frequency selector at the top of the program. Right clicking a number will set it, and every number after it, to 0.
In the SDR settings menu, set the type of radio to Wide band FM (WFM). The signals bandwidth is about 50 Khz but you'll want to set the SDR's bandwidth wider than that. As the satellite moves the signal is doppler shifted based on if the satellite is moving toward or away from you. Adding some extra bandwidth helps account for that.
In the Recording settings, uncheck Baseband, and select Audio.
Press the play button at the top left to start receiving radio signals. As the satellite comes over the horizon, you should start seeing a wavey peak that leaves very distinct line on the waterfall. You should also hear a distinct beeping. You can adjust the gain settings by clicking the gear in the top left.
To get the signal to come in clearly, you may need to rotate and shift the antenna around and play with the gain. Once that is done, and you can hear little to no static, click the record button in the audio recording menu. Make sure the frequency selector stays roughly centered on the signal until the satellite sets. When the signal gets too bad or the satellite has set, stop the recording and click stop in the top left to turn off the SDR.
Now we can start turning the beeping we recorded into an image.
Step 8: Resampling the Recorded Audio
The audio that's recorded by SDRsharp is too fast for our decoding program, so we need to resample it at a lower speed. The easiest way to do that is with a program called Audacity, though there is a command line tool called Sox which also works for this.
If you don't already have a copy, download Audacity here: http://www.audacityteam.org/download/
Install it and open it up. Load in the recording from the satellite pass. New recordings are saved in the same folder SDRsharp is in by default. Find the new recording and rename it, then in Audacity, in the file menu click Open, navigate to the new recording and open it. You'll be asked if you want to work directly on the file, or make a copy. Either works, but the latter is safer.
By default there are 2 tracks, but they're identical so 1 can be deleted.
In the bottom left corner there's drop down menu called Project Rate. Click it and select 11025. Then click the Tracks menu at the top, click Resample and then again select 11025 if it doesn't show up on it's own. Then click Resample. With that done we can save our file by clicking Export Audio in the File menu.
Now all that's left is to decode our image!
Step 9: Decoding (WXtoIMG)
We'll be using a program called WXtoIMG to decode our recording. It can be downloaded here: http://www.wxtoimg.com/downloads/
The program just runs and is very straight forward to use. When you open in, there'll be a few second delay. Then, in the File menu click Load Audio. Navigate to where you saves the resampled recording and select it. And that it! The program will automatically decode the file and produce an image when it's done. You'll see 2 channels. A much darker image which is the visible channel, and a much lighter image which is the infrared channel. There are lots of options to play with in the Enhancements menu, and the program can mix and combine the two channels in a variety of interesting ways.
You can adjust your location by selecting "set basestation location" and putting in your GPS coordinators. If you update the TLEs by clicking the Update TLE option in the File menu, the program will even try to overlay a map on the image.
If you load in your image and only see static, then your signal wasn't clear enough.
Step 10: Results!
Easily the best part of this whole project are the results. After all the work building the antenna, receiving the signal and then finally decoding it, it always feels good to see a nice clean image. Depending on the amount of time the satellite is in the sky, the images can be quite large. Our largest capture gave us more than half of North America in a single image!