Thursday 6 March 2014

Receiving Telemetry from Satellites - DIY Style

Why would you want to?

I'm sure everyone could appreciate the reasons for satellite operators to receive the signals or transmissions from their own satellites, but why do people want to receive signals from other peoples's satellites? I'm not talking about the signals of the Satellite TV stations. I'm talking about the morse code, and other encoded data transmitted from many nanosatellites currently in orbit. 

I call it Citizen Science. And because it doesn't take a whole lot of gear to get it happening.

Alot of Cubesats and PocketQubes are from organisations that don't have the global communications networks like NASA or ESA. They are often based in a single location in a single country. Consider how often a satellite will pass within range of that location. At the altitude most nanosatellites orbit the earth, they only have line-of-sight contact with the groundstation for about 9 minutes or so.  Nanosatellites also have a limited speed that they can transfer data at. If that organisation could only transfer data from the satellite when it is in range of that single ground station, the total amount of data transferred would be very low. The satellite would have to store information from its many orbits, then try and dump all the data when it is in range. 

Now imagine if that satellite operator had ground stations spread all the way round the world. The measurements taken by the instruments onboard could be downloaded much more often. It the information was then collated, it would be much more useful.

An example at the moment is the PocketQube $50SAT. This little satellite transmits in the UHF band, at 437.505Mhz. The transmitter is only 100mw, which is pretty low compared to most small satellites. They have published a document in their dropbox account that describes how to receive their telemetry. Each transmission contains the actual realtime readings from various spacecraft sensors. If no-one receives the transmission, that info is lost. Anyone with the right gear can receive these signals and help the $50SAT team with their measurements.

Aren't HAM radio's expensive?

Good ones are, but we're going to use some modern tech that is cheap, and then you can either buy or build an antenna to your liking. It all depends on how you want to use it.

What do I need to do?

We'll use $50Sat as an example. The published communications guide contains alot of info, but before you get to that, you'll need about 5 things. A USB DVB-T Dongle, an adapter, an antenna cable, an antenna, and a computer to install a few pieces of software on.

USB DVB-T Dongle.
Often found on eBay. Search for RTL2832U or E4000. Or go to to get a list of compatible dongles. I used one like this
Antenna adapter.
 Depending on the type of dongle you purchased, you'll need to adapt the antenna connector to one more readily used for the frequencies we're interested in. Also on eBay. The connector I had was an MCX connector, so I got an MCX male to SMA Female adapter.
Now this depends on what type of antenna you're going to use as well. I'll assume for now, you're going to wave something round the lounge room, until you work out exactly how to consistently receive the transmissions. So you'll need a cable anywhere from 1-3M. The type if cable can vary. Use RG59 for short lengths, or something like LMR200 for lower cable loss. SMA Male connector on one end, and the other end will depend on your antenna. Usually it'll be an N Male. Mine was purchased with the antenna. I went with 3M of LMR200 cable.
There are many books on the subject. You could either make or buy one, depending on how keen you are. I went with a custom tuned 4 element Yagi from an Australian supplier called ZCG Scalar. The model is the Y404 . I requested the tuning for a center frequency of 437Mhz. RRP for this antenna was $199.
Here's a British Interplanetary Society article showing a few other options they are using for receiving signals from KickSats.
First, you'll need some software to use with the SDR dongle. 2 that I use are SDR# and HDSDR . SDR# has a guide on how to install the required drivers on Windows. The HDSDR site has instructions for specifics to their software.
Basically, don't let windows detect and install a driver. Click cancel to check online etc. Then run the Zadig software to associate the proper driver with the Bulk-In Interface 0. Don't worry about Interface 1.
Then put the correct dll files into the program file folder.
Like I said, just follow the instructions for the software you're going to use. You may want to read the user guides for each bit of software to become familiar with how they operate and how you set the tuning frequencies etc.

Next, you'll need to find out where the satellites are! You can do this with a program called Orbitron. Once again, read the manual for how to use it. You'll need to get the latest TLE's for the satellites from Celestrak. Orbitron has this function built in. TLE's are also known as Two Line Elements. They describe the orbital characteristics of a satellite. Load the Cubesat.txt TLE file, then select Eagle 2 from the list. This is the alternative name for $50SAT. Once selected, it will show you the current location of the satellite!
Now set your home location, then run the prediction setup and enter the required parameters. Go to the Prediction tab then press Predict. It will show you when the satellite will be in range next.

Receiving signals from space!!!!

Once you've got the hang of Orbitron and the SDR software, you're ready to track down the satellite. When Orbitron says the satellite will be in range, start the SDR software and configure it to record the raw input signal RF. This file gets big very quick!
Select LSB , and set the tuning frequency just below the frequency of $50SAT ( 437.495 ish) The exact figure doesn't matter as the dongle isn't 100% accurate, and you can adjust later.
Watch the waterfall around where you've set the tuning frequency, and with any luck, you'll see the telltale blips leading up to the RTTY transmission. You can set the tuning frequency just above the signal, so that the highlighted area covers the radio signal. The RTTY looks like 2 parallel lines running at an angle up the screen. Here's an HDSDR screenshot.

Now you can either keep recording while the satellite is in range, or move to the next step.

Decoding It!

Now here's the very low tech bit. You'll need a 3.5mm Stereo to 3.5mm Stereo cable, long enough to connect your microphone jack to the headphone jack.
Open the sound mixer on your computer and go to the input settings. Turn off any microphone boost checkboxes, and set the volume down just under 1 segment. Plug in the cable.
In HDSDR, open the WAV file you created earlier ( usually in MY Docs / HDSDR). Loop through the file and set the tuning frequency so that the whole transmission is contained within the highlighted area, then go back to just before the transmission starts, then pause the playback. Open a sound recording program, such as the built in Windows Sound Recorder. Hit record, then unpause the HDSDR playback. Look at the sound recorder to see if the audio level as high or low enough. You want it high enough so that the volume is good, but no clipping or distortion. ( Remember to unplug the headphone plug to hear the playback!!!)
If the levels are good, save the file as 48Khz , 16 bit mono audio. ( Must be mono)
Then, as described in the $50SAT comms document, you'll need another bit of software called "fldigi".
Setup the software as described in the document. One thing that isn't mentioned in the document is some settings that are visible in the latest version of the software. At the bottom left of the screen are 2 boxes with arrows either side - "Upper Signal" and "Signal Range". I set these to -28 and 17 respectively, but this can vary depending on the volume level of the output file.
Select File > Audio > Playback, then select the file you created with Sound Recorder. It should start a waterfall display down the bottom of the screen. If you've setup the software correctly, you should be able to click in the centre of the rtty transmission, and the red bars go over the red part of the waterfall plot.
If the signal is right, you should start seeing the telemetry being decoded in the top window!
You may need to manually click the centre frequency "up the slope" to get it to decode different sections of the file, in case the Auto Frequency Correction doesn't work.

Voila! You're now receiving and decoding data from a satellite.

If you validate the data correctly, submit it to the $50SAT team to add to the other reports that people are making. Hopefully you'll get a warm fuzzy feeling that you've helped someone, and a sense of achievement that you've built a functional ground station!