To download our beacon decoder, please use the link below
(Right click and save) AeneasBeaconDecoder.zip
Fields of the AENEAS Beacon Packets
This document describes the fields of the AENEAS satellite automatic beacon packet and how to use the decoder program.
BEACON DECODER USAGE
ISI supplies a Java program, as a JAR file with the name BeaconDecoder.jar, that can be used to display the values in a packet. It can be used only in a shell or command window. A Java runtime environment compatible with Java 6 is required.
The decoder program is run by submitting the JAR file and a file of captured data packets to the java command.
java -jar BeaconDecoder.jar sample.dat
Optional Arguments
Beacon data packets contain a checksum. The decoder calculates a checksum from the data it sees and compares it to the checksum in the packet. If the checksums do not match, no attempt is made to decode the data. This behavior may be overridden using the switch "-i" as shown:
java -jar BeaconDecoder.jar sample.dat -i
PACKET EXAMPLE
The packet below, stored in the file sample.dat, is used for illustration. The ASCII characters represent hexadecimal digits. How the bit patterns encoded by these digits is interpreted depends on their position in the packet.
sample.dat: 4341455255531D0040020001010B06
Breakdown of the packet by byte:
Bytes Label Offset
----- ----- ------
43 41 45 52 55 53 Packet Header 0 - 5
1D 00 Packet Length 6 - 7
40 Packet Type 8 - 8
02 00 Unused Bytes 9 - 10
01 01 0B 06 00 07 32 Date/Time Encoding 11 - 17
FF 07 Reboot Counter 19 - 20
00 00 Reboot Reason Code 21 - 22
00 10 Flash Status Flags 23 - 24
00 F0 75 00 Telemetry Pointer 25 - 28
00 3E 33 00 Payload Write Pointer 29 - 32
41 Radio Status 33 - 33
C0 A5 0B C1 Miscellaneous Write Pointer 34 - 37
CF D3 Checksum 38 - 39
The first six bytes represent a marker token that signals that a packet follows. For AENEAS, the word "CAERUS" is used. (CAERUS is the name of a previous USC spacecraft, the "older sibling" of AENEAS.) The marker will always be 434145525553, CAERUS in ASCII.
The final two bytes of the packet are a checksum. The decoder calculates the checksum and compares it to this value to validate the data.
Neither the marker header nor the checksum are included in the data display.
PACKET DISPLAY
The printed decoding of the packet in sample.dat:
$ java -jar BeaconDecoder.jar sample.dat AENEAS Beacon Data Decoder, Rev 1.1 Opening file at sample.dat AENEAS Beacon TLM Packet found: ---------TELEMETRY-BEGIN---------- Total length: 29 Type:64 Unused: 0x02 0x00 Time: 1/1/11-6-0:7:50 Reboots: 2047 Last Reboot Cause: 0 Flash Status: 0 Bit 0 = 0 : Device is ready. Bit 1 = 0 : Device is NOT write-enabled. Bit3&4= 1 : All sectors software-protected. Bit 4 = 0 : WP is asserted. Bit 5 = 0 : Last op successful. Bit 7 = 0 : Sector Protection Registers unlocked. Payload Write Pointer: 3358208 Telemetry Pointer: 7729152 Radio Status: 65 No detailed Radio info yet Misc Write Pointer: -1056201280 ---------TELEMETRY-END-------- -- Done: End of stream reached.
Packet Fields
Each line of the decoder output is described below.
"AENEAS Beacon Data Decoder, Rev 1.1
Opening file at sample.dat"
These lines display the name and revision of the decoder program itself and display the name of the file from which data will be read.
"AENEAS Beacon TLM Packet found: ---------TELEMETRY-BEGIN----------"
These lines show that a packet marker was recognized.
"Total length: 29"
The packet should contain 29 bytes. This is encoded in the packet as "1D00." The length does not include the marker, packet length and checksum bytes.
"Type: 64"
The packet type tells the decoder how to interpret the rest of the packet. Currently, only type 64 packets are transmitted.
"Unused: 0x02 0x00"
The next two bytes, "0200," are unused and are skipped over by the decoder.
"Time: 1/1/11-6-0:7:50"
The next seven bytes encode a date and time. The bytes are: month, day, year, weekday, hour of day, minute of hour, seconds of minute.
At launch, the default date after a boot is January 1, 2011 at midnight. Planed updates for Aeneas include adjusting the clock so that the date and time survive a reboot.
"Reboots: 2047"
The two bytes after the date encode the count of reboots. This should be a low number.
"Last Reboot Cause: 0"
The next two bytes encode the reason for the most recent reboot. The set of possible values is:
0: RESTART_POWER_UP
1: RESTART_BROWNOUT
4: RESTART_WATCHDOG
6: RESTART_SOFTWARE
7: RESTART_MCLR
14: RESTART_ILLEGAL_OP
15: RESTART_TRAP_CONFLICT
"Flash Status: 0"
The flash status code. The individual bits have these meanings:
Bit 0 = 0 : Device is ready.
Bit 1 = 0 : Device is NOT write-enabled.
Bit3&4= 1 : All sectors software-protected.
Bit 4 = 0 : WP is asserted.
Bit 5 = 0 : Last op successful.
Bit 7 = 0 : Sector Protection Registers unlocked.
"Payload Write Pointer: 3358208"
This is the address used by the iTag processing software, the main experiment. As the experiment makes progress, this address should move. Payload base address and allocation are, respectively:
0x75F000 = 7729152 decimal
0x0A0000
"Telemetry Pointer: 7729152"
After launch, the Telemetry write pointer should move at the rate of 572 bytes a minute while the spacecraft is awake. This rate can be used, over successive beacon recordings, to determine how long the spacecraft is active on orbit. The rate of advance for this telemetry pointer can be changed using ground commands, depending on mission requirements.
The Telemetry base address and allocation are, respectively:
0x137000 = 1273856 decimal
0x628000 = 6455296 decimal
It can go up to 7729152 (the start of payload area) before wrapping around.
"Radio Status: 65
No detailed Radio info yet"
Code for status of the radio antenna. The value "65" means system is responding normally. The eight bits represent these conditions:
0: MHX_PWR
1: MHX_OUTPUT_ENABLE
2: MHX_DATA_TERMINAL_READY
3: MHX_DATA_SEND_READY
4: MHX_REQUEST_TO_SEND
5: MHX_CLEAR_TO_SEND
6: MHX_CARRIER_DETECT
The sample packet does not contain detailed radio status.
"Misc Write Pointer: -1056201280"
The Miscellaneous Write address is where spacecraft diagnostic data is stored until a connection with main antenna is established and the data can be downloaded. Base address and allocation are, respectively:
0x010000 = 65536 decimal
0x022000 = 139264 decimal
"---------TELEMETRY-END----------"
The decoder prints this line to indicate the end of each packet in the file.
"Done: End of stream reached."
The decoder reached the end of the file.
QUESTIONS
Questions about the software or the Aeneas spacecraft may be sent to:
aeneas@astronautics.usc.edu


