We sample 40 mSec snapshots of the GPS spectrum from behind the GPS constellation. After each snapshot, this data is transmitted to whoever listens. It takes 14-15 seconds to download the data, then the satellite sleeps for approximately five minutes. It wakes up and does the same thing again. This continues until the batteries died. [We predicted about a 2 week mission life, and managed to get about 16 days.]
The telemetry is in standard AX.25 format, modulated at 9600
bps using
Direct Frequency Modulation (DFM) techniques standard in the Amateur Radio community. The only "catch" is
that the data itself is binary values. You need a terminal program that
won't get tripped up with random binary ASCII values -- and logs all
the
values accurately to disk.
Each bit of the the bit stream from the AX.25 protocol routine occupies 104 microseconds. But before sending to the radio, it's converted to an edge-oriented signal: a one is converted to a no-transition, and a zero is converted to a transition (either 0 to 1, or 1 to 0). This wavetrain, in turn, is XOR-ed with a psuedo random bit sequence agreed upon by all G3RUH modems. Finally, this signal is appropriately attenuated and fed to the radio as the actual "audio".
The highest fundamental frequency is 4800 Hz (from either the clock or the data stream, whichever you prefer), but this is a 'squarish'-wave, not a sine wave. The communication channel must preserve amplitude and phase information for signals significantly above 4800 Hz to preserve the proper waveshape. Typically as much as 3 times this much -- 12 to 14 KHz. Most scanners do not have this fidelity and many amateur radio transcievers older than a few years do not have this fidelity. You can use these radios, but the methods to do this are beyond the scope of this article.
Each of the 14 address octets is shifted one bit left. All address octets have a 0 in the LSB position, except the last address octet, which has a 1.
The spectrum sampler tacks on 52 bytes of header information before the actual data, yielding a 10052-byte sequence that needs to be downloaded to the ground station. A space-borne microcontroller will sample health and status information, collect the 10052 bytes of mission data, and send it all to a KPC-9612+ AX.25 TNC modem on-board the satellite. If you're interested in doing post-mission analysis of the 10052 GPS bytes themselves, please e-mail me. Finding the GPS satellites' psuedo-random fingerprints in this data is a fun programming challenge in its own right! One hour, seven minutes, and 16 seconds after passing 45,000 feet, the first frame of data will be transmitted by the satellite, followed by additional frames every 5 minutes and 23 seconds.
At our ground station, a KPC modem decodes the data and provides a normal PC-ish serial byte stream to a computer, or a terminal, or a data logger, or whatever. I say 'normal', but be aware that the GPS data itself will be binary data, which could cause some terminal programs to do wierd things, or not log the data. This is the data format that we can most readily use here at the Air Force Academy. If possible, please e-mail us logs of data in this format.
FALCON>GROUND/2 [09/13/98 20:50:58]:
<UI>:
01
Frame = 11
TT8_GPS_Time = 09/13/97 14:55:43
TNC_GPS_Time = 09/13/97 14:55:44
BusVoltage =+13.33 Volts
TempTop =+43.8øC
TempBottom =+37.9øC
FALCON>GROUND/2 [09/13/98 20:51:00]:
<UI>:
02...244 bytes of binary followed by a CR/LF...
[Intermediate packets not shown]
FALCON>GROUND/2 [09/13/98 20:51:10]:
<UI>:
42...244 bytes of binary followed by a CR/LF...
FALCON>GROUND/2 [09/13/98 20:51:10]:
<UI>:
43...244 bytes of binary follwed by a CR/LF (but only the
first
48 are meaningful)...
FALCON>GROUND/2 [09/13/98 20:51:11]:
<UI>:
44
Frame = 11
TT8_GPS_Time = 09/13/97 14:55:43
TNC_GPS_Time = 09/13/97 14:55:44
BusVoltage =+12.89 Volts
TempTop =+43.8øC
TempBottom =+37.9øC
The Health & Status packets (#1 and #44) are normal, printable ASCII. Each packet containing GPS data (#2 through #43) will start with 46 bytes of normal text, then the body will be 244 bytes of any binary value, then the packet will end with a CR/LF pair, which is added by the receive TNC. Packets 2-42 each have 244 bytes of "keepable" data, giving 10004 bytes. The last 48 bytes (making up 10052 total) come from the first 48 binary bytes of packet 43.
Notice the receiving station can change the headerline. If possible, use your TNC's MSTAMP and DAYSTR commands (with a Kantronics TNC) to make your TNC generate headers of the same format as shown above, and please ensure your time is within a half second of UTC. Ensure neither your TNC nor your terminal program is inserting CR/LF into the data blocks (line wrapping for convenient terminal display) -- only a CR/LF pair at the end of each packet.
Every 5:23.1 minutes, another 44 packets of information (another frame) will be downlinked by the Falcon Gold payload. Combining multiple frames into one log file is fine.