Introduction: NOAA Satellite Signals With a PVC QFH Antenna and Laptop
This instructable covers everything you'll need to get started in being able to receive the APT (Automatic Picture Transmission) signals from the NOAA Satellites (NOAA-15, 18, and 19) flying overhead (and can be a foundation for listening to other satellites as well).
It all starts with a simple SDR (Software Defined Radio) which is a radio where the traditional and complicated parts, the modulators and amplifiers, are now done by computer software rather than the hardware. So a small, cheap ~$15 radio dongle, containing two chips the RTL2832U and R820T tuner IC, is capable of recieving radio signals that cover a broad range, 25MHz-1700MHz, of the spectrum.
The SDR tuner will allow us to receive the transmission but we need a good antenna tuned to the APT signals in order to receive a clear picture. This is where the QFH Antenna comes in, it's actually two antennas, a small one inside a bigger one, that is of the proper dimensions so that it blocks out surrounding interference and receives signals very well on the 137.5 MHz frequency band that the NOAA satellites transmit around. You can build QFH Antenna's of various sizes that are sensitive to different frequency bands, but we'll be focusing on the dimensions for 137.5 MHz in this instructable. The QFH is very easy to make and is an omnidirectional antenna, meaning that you don't have to aim it to have it pick up the signals and it has excellent performance across the whole sky. This means you can pick up the signal from a NOAA satellite when it is just above the horizon, receive it as it tracks across the sky (~10 to 15 mins for the pass), and will lose the signal when it's just about set on the other horizon.
Finally, we'll go over the various pieces of software we will use to find the satellites, listen to them, and then take that transmission and turn it in to a picture like the one on this page.
There's a bunch of files throughout this instructable including the plans and dimensions, so I've made a GitHub Repository to keep it all in. It can be accessed here:
Step 1: Materials and Plans
These are the materials needed
- PVC piping in two sizes:
- 2" pipe roughly 4' in length for the "body", I got precut sections of 2' in length which made gluing the middle easier, but isn't a huge advantage.
- 1/2" pipe roughly 6' in length for the "supports". I got precut sections of 2', which for this build wasted a lot of material, I would recommend one long section if you can.
Attached to this page is the SketchUp diagram of the antenna with dimensions added, (my cable curves are a little ugly but give the general idea, I am terrible at curves in Sketchup). The dimensions came from this particular site: http://jcoppens.com/ant/qfh/calc.en.php which allows you to enter in the parameters of the frequency you are trying to tune to, along with some info about your materials, and it gives you not only the dimensions of everything you need but a PDF cutting guide which you'll need in the next steps. I used metric for the plans and dimensions because it just made the measuring easier and was simplier then trying to convert the metric in the calculator to fractions of inches.
One of the images above is a screenshot of the results for our antenna, our hole drilling template comes from the same site (or the "Hole Cutout Guide.pdf" file in the GitHub repo). You can also see that the two different antenna's are color coded: Blue for the large outer, Green for the smaller inner, this color coding comes in handy for not getting confused and getting the right dimensions and lengths.
Step 2: QFH Antenna - Holes for the Supports
To avoid mistakes, don't start drilling until all the holes are marked
Make the Template: Either make a PDF Cutting Template from the jcoppens.com calculator, or use the existing one included in the GitHub repository and print out the PDF, make sure that you are printing the actual size and that the "shrink to fit" options are NOT selected for your printer. I originally tried to make the correct holes without using the template and they came out terrible, they were not 90° and getting the spacing and alignment correct was a huge pain. The template is your friend!
The way the template is constructed is that in the template's design the outer and inner antenna's are aligned at the top, I prefer that they are aligned in the middle and have equal spacing at the top and bottom (doesn't make a difference on performance). I use the "Center" template for my top set of holes to get the 90° spacing correct and then I just measure to the next set of holes and use the template to get the size of the hole correct and 90° spacing.
I also used a strip of clear packing tape across the paper to make it more durable and not tear or deform when being used.
Cut the Template: Use an x-acto knife to cut out the holes.
Pick an end location on the 2' PVC to start, leave a bit of a buffer so that the holes aren't right on the edge (and the cap can fit on properly for the top) but not too far down in the tube (you'll be feeding and soldering wires on the ends later and you don't want to be trying to reach down a cramped 2" tube).
Mark the first set: Wrap the template around the tube, the ends should touch and the holes should be positioned 90° from each other. If the template doesn't touch, overlaps, or the angles are wrong, double check your printing!
Lightly mark out the holes for the supports, we want to lay it all out and double check before we really commit as a sanity check, so measure from the marks to where the next supports will be, make sure that they fall on a good spot on the PVC and not on the joiner or too close to an edge, do the same for the last set, if everything looks good then really mark out the holes so you can drill it out. As mentioned before, I used the color coding to help keep everything straight: like colors should be on opposite sides.
Mark the middle set holes: Now accurately measure the distance from the hole to the hole for the middle supports, you're also rotating 90° so you'll see that a blue hole is in line with a green hole. If you measure right you'll see that all the middle supports are about on the same level.
Mark the last set holes: Repeat the same process from the middle set of holes to the final set, once again you're rotating 90° so in the end you're first and last holes of like colors are lined up.
Now Drill Holes: Now that all the holes are marked and we've double checked the dimensions are correct, we can then drill out our holes. I would recommend a drill press if you have access to one, it'll ensure a nice straight perpendicular hole. I don't have one so I used my dremel's cutting tool and the sanding tool to get a nice straight and round hole. I had tried other approaches using different drill bits and a hand drill but all my supports ended up being not perpendicular and I had to start over. I rounded out the hole using the sanding bit to make small adjustments and removed bit by bit till there was no sharpie color of the hole tracing left. I also tested the hole by fitting the 1/2" pvc in till it fit snuggly in the hole. I then marked near the hole with the correct sharpie color so I know which support goes into that hole.
Step 3: QFH Antenna - Assembling the Supports
Our middle supports have two sizes: 292mm for the outer antenna (blue) and 276.1mm for the inner antenna (green).
Measure and Cut: Using the 1/2" PVC measure out 3 segments of each length and cut. I used a miter saw to get a nice smooth even cut. Mark the sections with the correct color.
Find the positioning and mark: The support is a single piece that passes through the 2" PVC in the center. We need to get the proper spacing so that the supports are of the proper length on each side. Math can help us. We simply take the length (292mm or 276.1mm), divide by two to find the middle point, add in the radius of the 2" PVC to each side to get the position where the edge of the 2" PVC meets the support, these are noted on the top of the SketchUp diagram and in the screenshot image on this page:
|Support||Midpoint||Radius 2" PVC||Size of Support|
|Blue||292mm/2 = 146mm||- 30.55mm Radius||= ~ 115.4mm|
|Green||276.1mm/2 = 138.05mm||- 30.55mm Radius||= ~ 107.6mm|
Glue: The PVC glue works by slightly melting the PVC and allowing the two pieces to fuse as the glue dries, super glue works the same way. That means you do not have a lot of time to get the positioning correct before the glue starts to set. The glue has a powerful odor that's not good for you so use in an area with proper ventilation. Position a 1/2" support so it's lined up in the 2" PVC center. Now offset it to one direction about an inch and apply a layer of PVC cement around the 1/2" support. Move it back to the correct position, the sharpie colors may be a little hard to see with the blue cement on top of it so double check by using a ruler to measure the 115.4mm or 107.6mm from edge to the 2" PVC center on either side.
If your center piece is two pieces of 2" PVC you'll want to glue the connector together as well so it doesn't come loose or rotate changing your dimensions.
Using the end cap we're making a quick way to hang the antenna. I simply drilled two offset holes in the PVC Cap and used a piece of paracord to make a hanging loop (see picture). Don't glue this on until after we have the wiring done in the next step!
Step 4: QFH Antenna - Wiring
Wiring was one of the most confusing aspects of the building the QFH. In order to simplify and make it as clear as possible what is going on I've included two color coded diagrams in the images. One is a top down view of our model with the wires color coded. The second diagram comes from Undergraduate student guide to QFH antennas that I've added some color to so you can see what wires go where.
First off when wiring, from a top down view the cable goes counter clockwise as it travels down the antenna; this is a right hand circular polarization. Second, you'll notice that the coax cable we are connecting our SDR to is actually part of the antenna (it's marked in red on our images) and not just hooked up to the antenna. Finally, the 12-AWG solid copper wire is used for the other 3 lengths of wire on the antenna.
Drill out the center supports: You'll notice that in one of the photos the pieces of the support arms that are inside the 2" PVC center tube have been drilled out to pass the cables through them, this is another reason you want the supports on the top and bottom close to an edge.
Thread a single wire: Start with the Coax cable, take an end with a connector attached and feed it in from the top, out a Big loop arm (blue color), then counter clockwise and down to the middle arm (90° rotated), then down and counter clockwise another 90° and in through the bottom arm to the center and out the bottom of the 2" PVC so the connector is out the bottom and can be hooked up to the SDR via adapter. Also as a sanity check: all three supports the coax "touches" should be blue.
Repeat with the other 3 wires.
Connecting the wires: Using the diagram for a reference you see there are 4 wires we are labeling and color coding:
|Blue||"Big Loop" = B1|
|Yellow||"Small Loop" = S1|
You'll see that S1 and B1 are connected to each other and the inner wire of the coax cable on the top, while S2 is connected to the outer shielding of the coax cable.
Then on the bottom S1, B1, and B2 are all connected to the outer shielding of the coax cable.
Soldier the wires: The wires are thick so it's not going to be easy to soldier them together cleanly. And they will get very hot as you do soldier them so be careful! I used a pair of pliers to twist the wires together and then some soldier flux and lots of heat to get the soldier to really flow around the wires and make a good connection.
Wiring the top of the antenna: This is the easy one, the coax cable is cut so you just pull back and remove the insulating plastic and separate the pin and the shielding. I pulled the shielding to the side and twisted it up before wrapping it around the 12-AWG wires (see in photo).
Wiring to the coax shielding on the bottom: This is trickier, you want to keep the connector in working order, in order to do this properly I first used an x-acto knife to cut away the plastic, I pealed it back and could see the braided copper shielding intact. I then used a piece of regular 22-aws hookup wire and wrapped it all the way around the coax shielding. I applied a generous amount of flux and soldier the two together (seen in the photo). I then connected the other end of the 22-awg wire to the 12-awg wires using a generous amount of flux as well.
I then attached the wires to the supports with plastic zip ties and a little bit of tape.
The 4 wires should hang naturally where it exits the top support, make a natural curve that travels cleanly from the top support down and rotated the 180° before entering in the bottom support.
You have now created the actual antenna, the PVC is just the supports to keep the wires in the correct shapes. For reference, the wire setup in the QFH makes what is known as an infinite balun (http://www.antenna-theory.com/definitions/infinite.php)
Connect the antenna to your SDR dongle (via whatever Coax to MXC adapter, or multiple adapters, you use) when you are ready.
Step 5: Software Overview
Now we have a working antenna it's time for the software to use that antenna. As mentioned before you'll need a SDR card/dongle attached to your laptop/computer. Then find and download the following four programs. Here's and overview and then we'll go over each one in detail.
- gpredict - Works on All Platforms, is used to find when and where the satellites will be overhead.
- gqrx for Mac and Linux, SDSharp for Windows - This is the receiver software that does all the "radio stuff" like the tuning, modulation, and amplification.
- sox - small command-line sound utility
- wxtoimg -Works on All Platforms, is used to take that transmission and turn it in to an actual picture.
gqrx, gpredict, and sox are part of the Macports project and can easily be obtained that way.
Step 6: GPredict - Finding the Satellites
gpredict is a tool for finding the times that the NOAA satellite (or any satellite) will be passing overhead. It does this by downloading ephemeris files which give a number of positions for a series of times. Using those positions and times it can calculate future locations and times, though due to little inaccuracies the farther out you propagate those calculations the more error there is, so it's important to update the ephemeris.
Setting up: The first thing you need to do is to set up gpredict for your location.
Set your location: Do this by going into the Edit > Preferences menu. There's a tab for ground station, you can add yours in or edit the existing default. If you don't know your GPS coordinates, there's a trick to getting them. Load Google Maps, and navigate to your location and zoom in to an appropriate level. Now right click and select "What's Here?", it'll update a block of information at the top left of the map and below the approximate street address will be the Latitude and Longitude for that spot. Nice and easy! Place that in to the form, altitude is approximate and won't matter too much unless you are somewhere extreme like the top of a mountain or mile-hile Denver, I believe by searching for your city/town it'll fill in an good approximate altitude.
Select the NOAA satellites: We create a new Module by going under File > New Module. I call mine "NOAA" and I search for the NOAA satellites, you'll see there are/were a lot of them, however only 15,18, and 19 are transmitting on the APT band (Some never had that capability, some were and got older and broke down). See screenshot
Update the LTE: I think it stands for "Long Term Ephemeris", this is pulling in the latest ephemeris files from the internet, you should want to do this every time you load gpredict.
You should now have your location and three NOAA satellites slowly progressing over the screen.
Now quick terminology:
- AOS - Acquisition of signal, time you can start to hear the satellite.
- LOS - Loss of Signal, when it goes bye-bye
- Max El - the Max elevation off the horizon it gets, 90° is right overhead, 0° is at the horizon.
- AOS Az - Azimuth angle at AOS, where on the horizon the satellite is becoming visibile at: North is 0°, East is 90°, West is 270°.
- LOS Az - Azimuth angle at LOS, where on the horizon you lose visibility of the satellite.
Understanding a satellite "pass": Each satellite will pass almost directly overhead roughly twice a day, one occurrence is called a satellite pass. There's times when the satellite will be visible but will not get too high above the horizon, and then to the extreme there's times when the satellite will barely get above the horizon.
Fortunately for us our QFH gets a pretty good signal once the satellite is barely above the horizon, I find I can see the signal pretty good once it gets above roughly 9° degrees.
So in gpredict the key options you want is "Show Next Pass" and "Future passes", you can see these by clicking on the satellite to select it, and then right clicking. These will show you the UTC times of the next pass of the satellite. There's an option in gpredict to define a threshold of how high the satellite needs to get to be considered a pass, I like to use 20°. You can also adjust how many passes and how far out it'll show, these predictions are based off the ephemeris so they farther out the more error in the calculation, so update the LTE often.
"Show next pass" will break out the next pass and show time slices and the elevation for that time.
"Future passes" will show you times in UTC, durations, and max elevations so, if like me, you can plan on waking up at 6 AM on a weekend to catch that 88° pass!
Those two options will allow you to plan a "intercept time" where you can use your antenna and radio to capture a transmission.
Also if you click on the name of the satellite with the blue information icon you get a popup window that shows the orbit info, and the second tab "Transponder" shows you the frequency to use to listen for that satellite.
|NOAA 15||137.5000 MHz|
|NOAA 18||137.9125 MHz|
|NOAA 19||137.1000 MHz|
So pick a satellite, pick a time and be ready to record it when the satellite passes overhead
Step 7: GQRX - Recording the Transmission
Using Gqrx to record a transmission is a little daunting at first but it's really not that bad. The issue I had with it was there was so many options and I had no idea what to do with them. Hopefully this step helps you out in that regard.
Setup the card: Click on the card icon on the top left, (2nd from the left). It brings up a window for the most part leave the options as is, the two to change are 1) Select your device, mine says "Generic RTL2832U SN:xx...". 2) Sample Rate, I go with 2,400,000 which is a higher rate, if your computer is slower or older you can back that down to the default of 1,500,000. I hit OK and the window goes away.
Set Frequency before powering on: You'll want to tune the radio to the frequency you need but for an unknown reason to me, it's better to tune very close to that frequency on the hardware and use the software to tune to where you want (there's a center spike to avoid this way called a "DC Spike"). The way to do this is to go to "Receiver options" and zero out the frequency there, then set the frequency on the top window to the frequency you want plus some K, I've seen 25k and 200k thrown around. So if we were looking for 137.5 we'll go with 137.75
Input Controls: Go to the tab on the right pane called Input Controls, everything stays as is unchecked and zeroed, but I select the "DC rem." checkbox. Also later if you find your receiver is a bit off (like you tune to a known FM radio station and it's not the broadcast frequency you can use that Freq Correction box to adjust/calibrate your receiver. Some people also select the Hardware AGC to have the hardware control the gain, I choose not to do that, but you could.
Audio tab: Go to the audio tab and slide that gain slider all the way up to 50db. If you find your meter at the top is overloading, back it off, for my card it's all the way. You also use this tab to start recording when you are ready to.
Power on: Now when you hit that power button the receiver will tune to that frequency, you can now change it by either using the "Receiver options" offset or dragging the red line. So I can back off my line to 137.5MHz with a -25khz offset.
- Filter width: Change to "User" and drag the edges in till you get the filter to 40K.
- Filter Shape: Normal
- Mode is WFM (Stereo), on my Mac inorder to "hear" the transmission I always have to select something else and then switch it back to WFM before that static comes in over the speakers.
- AGC: Fast
- Squelch: 0
Now look for the signal. It will look similar to the images on this page, it's like 9 distinct peaks, as the satellite passes overhead the signal will fade in from the background noise and get more distinct.
You might find it's not exactly at the signal you tuned to, some of this is due to the doppler shift of the satellite traveling towards and then away from you overhead (whipping by in space, how cool is that!), and some of this could be due to the hardware error and that correction/calibration factor we mentioned on the Input Controls tab, so look in the area around your signal by fractions of a MHz.
You can zoom/change range on the display by using the mouse wheel when the cursor is over the x or y axis.
Once the signal has showed up you can start recording by hitting that red button on the Audio Tab. It will save a file to your home directory with a name like "gqrx_20150708_234028_137616000.wav" which is the gqrx prefix, the date, the UT time you hit record, and then the frequency you were set to when recording, pretty cool!.
Sometimes it's helpful to know what you are looking at/for, here's a youtube video (someone else's) that gives you an idea of what the NOAA signals sound like. The first time I heard my own captured signal was so cool, I thought to myslef "Well, THAT's coming from space!"
Record the whole pass with the filter (gray box) centered on the signal as best as possible.
I sampled at a high rate 2400000, so when I'm done recording I need to send my WAV file through a small utility called "sox", to convert it to the correct sample rate so that wxtoimg in the next step understands it correctly (and makes the correct picture out of it).
The command I use is:
sox <infile> <outfile> rate 11025 so... sox gqrx_20150708_234028_137616000.wav gqrx_20150708_234028_137616000_out.wav rate 11025
That keeps my original and makes a new one with a "_out" suffix that has the correct samples per second.
Now to turn that sound into a picture.
Step 8: WXtoImg - Getting an Image From the Recorded Transmission
wxtoimg is still kind of a black box to me so I'll do my best to give you some tips but it seems that it either works or it doesn't.
Hopefully, you've followed all the steps and you select "Open Audio File", select your sox-processed file with the "_out" suffix and it loads and there is an image. Ideally from left to right you see a grayscale bar, some vertical black and white lines, then some black and white horizontal lines, and finally your image. (looks like the first image attached to this page). If so that's great, if not and it looks similar to the other image on this page then a little calibration and you should be set.
Set Ground Station Location: Just like gpredict you need to set your location.
Calibrating is not hard, you need to adjust the "map slant" which is in the "Image" menu, but in order to do so you need to select/deselect the "Disable PLL" in the "Options" menu. The Help menu on wxtoimg walks you through the steps.
If all those steps failed and you still end up with a jumbled image you can't get right then one option (which I think happened to me) is that the CPU was overloaded and the data/sound ended up delayed and shifted in a way that unfortunately can't be fixed by wxtoimg, if that happens to you, try recording another pass at a slower sample rate and with less programs running at the same time.
Overlaying the Map: Getting the map overlayed properly on your image I find is key to unlocking the potential of wxtoimg. wxtoimg has it's own ephemeris and position calcultions like gpredict, which is called "Update Keplers". When loading an audio file wxtoimg needs to find a satellite pass at the same time to give an approximate position for the map overlay. wxtoimg can get the datetime info from the filename if it's named in the proper format, set the format in the options, otherwise you'll need to adjust the times on the filesysytem for the wav file itself.
I like to use coastline/lake and water features as reference to position the map overlay properly. Once that happens I can use the auto process option to export out to the filesystem a number of different "Enhancements" to the images.
So with a little tweaking and a little trial and error you should hopefully get your image properly aligned and then the correct map overlay on top of it.
Step 9: Putting It All Together
So there you have it, man made satellites whizzing overhead have spoken and you have listened to what they had to say!
Attached to this page are the outputted files from wxtoimg for a particular pass of NOAA-18.
I hope this instructable gives you all the information you need to get started, it can be very frustrating in the beginning. I had incorrectly constructed my first QFH Antenna and got some interesting but pretty terrible images (see last photo in the series) that was from a practically 90° pass. I've tried to included all the information I wish I had when I got started, if not, feel free to ask away in the comments.
Runner Up in the