diff options
Diffstat (limited to 'AltOS/doc/telemetry.html')
-rw-r--r-- | AltOS/doc/telemetry.html | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/AltOS/doc/telemetry.html b/AltOS/doc/telemetry.html new file mode 100644 index 0000000..c639ea0 --- /dev/null +++ b/AltOS/doc/telemetry.html @@ -0,0 +1,136 @@ +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>AltOS Telemetry</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" title="AltOS Telemetry"><div class="titlepage"><div><div><h2 class="title"><a name="idm14575968"></a>AltOS Telemetry</h2></div><div><h3 class="subtitle"><i>Packet Definitions</i></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Keith</span> <span class="surname">Packard</span></h3></div></div><div><p class="copyright">Copyright © 2011 Keith Packard</p></div><div><div class="legalnotice" title="Legal Notice"><a name="idp1155048"></a><p> + This document is released under the terms of the + <a class="ulink" href="http://creativecommons.org/licenses/by-sa/3.0/" target="_top"> + Creative Commons ShareAlike 3.0 + </a> + license. + </p></div></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.1</td><td align="left">01 July 2011</td></tr><tr><td align="left" colspan="2">Initial content</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#idp1689800">1. Packet Format Design</a></span></dt><dt><span class="section"><a href="#idp934288">2. Packet Formats</a></span></dt><dd><dl><dt><span class="section"><a href="#idp1355616">2.1. Packet Header</a></span></dt><dt><span class="section"><a href="#idp2907424">2.2. Sensor Data</a></span></dt><dt><span class="section"><a href="#idp1465272">2.3. Configuration Data</a></span></dt><dt><span class="section"><a href="#idp3378728">2.4. GPS Location</a></span></dt><dt><span class="section"><a href="#idp2329008">2.5. GPS Satellite Data</a></span></dt></dl></dd><dt><span class="section"><a href="#idp2437360">3. Data Transmission</a></span></dt><dd><dl><dt><span class="section"><a href="#idp3529568">3.1. Modulation Scheme</a></span></dt><dt><span class="section"><a href="#idp94440">3.2. Error Correction</a></span></dt></dl></dd><dt><span class="section"><a href="#idp101504">4. TeleDongle packet format</a></span></dt><dt><span class="section"><a href="#idp42648">5. History and Motivation</a></span></dt></dl></div><div class="section" title="1. Packet Format Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp1689800"></a>1. Packet Format Design</h2></div></div></div><p> + AltOS telemetry data is split into multiple different packets, + all the same size, but each includs an identifier so that the + ground station can distinguish among different types. A single + flight board will transmit multiple packet types, each type on a + different schedule. The ground software need look for only a + single packet size, and then decode the information within the + packet and merge data from multiple packets to construct the + full flight computer state. + </p><p> + Each AltOS packet is 32 bytes long. This size was chosen based + on the known telemetry data requirements. The power of two size + allows them to be stored easily in flash memory without having + them split across blocks or leaving gaps at the end. + </p><p> + All packet types start with a five byte header which encodes the + device serial number, device clock value and the packet + type. The remaining 27 bytes encode type-specific data. + </p></div><div class="section" title="2. Packet Formats"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp934288"></a>2. Packet Formats</h2></div></div></div> + This section first defines the packet header common to all packets + and then the per-packet data layout. + <div class="section" title="2.1. Packet Header"><div class="titlepage"><div><div><h3 class="title"><a name="idp1355616"></a>2.1. Packet Header</h3></div></div></div><div class="table"><a name="idp2011688"></a><p class="title"><b>Table 1. Telemetry Packet Header</b></p><div class="table-contents"><table summary="Telemetry Packet Header" border="1"><colgroup><col align="center"><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint16_t</td><td align="left">serial</td><td align="left">Device serial Number</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">tick</td><td align="left">Device time in 100ths of a second</td></tr><tr><td align="center">4</td><td align="center">uint8_t</td><td align="left">type</td><td align="left">Packet type</td></tr><tr><td align="center">5</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><p> + Each packet starts with these five bytes which serve to identify + which device has transmitted the packet, when it was transmitted + and what the rest of the packet contains. + </p></div><div class="section" title="2.2. Sensor Data"><div class="titlepage"><div><div><h3 class="title"><a name="idp2907424"></a>2.2. Sensor Data</h3></div></div></div><div class="informaltable"><table border="0"><colgroup><col align="center"><col align="left"></colgroup><thead><tr><th align="center">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="center">0x01</td><td align="left">TeleMetrum Sensor Data</td></tr><tr><td align="center">0x02</td><td align="left">TeleMini Sensor Data</td></tr><tr><td align="center">0x03</td><td align="left">TeleNano Sensor Data</td></tr></tbody></table></div><p> + TeleMetrum, TeleMini and TeleNano share this same packet + format for sensor data. Each uses a distinct packet type so + that the receiver knows which data values are valid and which + are undefined. + </p><p> + Sensor Data packets are transmitted once per second on the + ground, 10 times per second during ascent and once per second + during descent and landing + </p><div class="table"><a name="idp2513304"></a><p class="title"><b>Table 2. Sensor Packet Contents</b></p><div class="table-contents"><table summary="Sensor Packet Contents" border="1"><colgroup><col align="center"><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">5</td><td align="center">uint8_t</td><td align="left">state</td><td align="left">Flight state</td></tr><tr><td align="center">6</td><td align="center">int16_t</td><td align="left">accel</td><td align="left">accelerometer (TM only)</td></tr><tr><td align="center">8</td><td align="center">int16_t</td><td align="left">pres</td><td align="left">pressure sensor</td></tr><tr><td align="center">10</td><td align="center">int16_t</td><td align="left">temp</td><td align="left">temperature sensor</td></tr><tr><td align="center">12</td><td align="center">int16_t</td><td align="left">v_batt</td><td align="left">battery voltage</td></tr><tr><td align="center">14</td><td align="center">int16_t</td><td align="left">sense_d</td><td align="left">drogue continuity sense (TM/Tm)</td></tr><tr><td align="center">16</td><td align="center">int16_t</td><td align="left">sense_m</td><td align="left">main continuity sense (TM/Tm)</td></tr><tr><td align="center">18</td><td align="center">int16_t</td><td align="left">acceleration</td><td align="left">m/s² * 16</td></tr><tr><td align="center">20</td><td align="center">int16_t</td><td align="left">speed</td><td align="left">m/s * 16</td></tr><tr><td align="center">22</td><td align="center">int16_t</td><td align="left">height</td><td align="left">m</td></tr><tr><td align="center">24</td><td align="center">int16_t</td><td align="left">ground_pres</td><td align="left">Average barometer reading on ground</td></tr><tr><td align="center">26</td><td align="center">int16_t</td><td align="left">ground_accel</td><td align="left">TM</td></tr><tr><td align="center">28</td><td align="center">int16_t</td><td align="left">accel_plus_g</td><td align="left">TM</td></tr><tr><td align="center">30</td><td align="center">int16_t</td><td align="left">accel_minus_g</td><td align="left">TM</td></tr><tr><td align="center">32</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="2.3. Configuration Data"><div class="titlepage"><div><div><h3 class="title"><a name="idp1465272"></a>2.3. Configuration Data</h3></div></div></div><div class="informaltable"><table border="0"><colgroup><col align="center"><col align="left"></colgroup><thead><tr><th align="center">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="center">0x04</td><td align="left">Configuration Data</td></tr></tbody></table></div><p> + This provides a description of the software installed on the + flight computer as well as any user-specified configuration data. + </p><p> + Configuration data packets are transmitted once per second + during all phases of the flight + </p><div class="table"><a name="idp2211144"></a><p class="title"><b>Table 3. Sensor Packet Contents</b></p><div class="table-contents"><table summary="Sensor Packet Contents" border="1"><colgroup><col align="center"><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">5</td><td align="center">uint8_t</td><td align="left">type</td><td align="left">Device type</td></tr><tr><td align="center">6</td><td align="center">uint16_t</td><td align="left">flight</td><td align="left">Flight number</td></tr><tr><td align="center">8</td><td align="center">uint8_t</td><td align="left">config_major</td><td align="left">Config major version</td></tr><tr><td align="center">9</td><td align="center">uint8_t</td><td align="left">config_minor</td><td align="left">Config minor version</td></tr><tr><td align="center">10</td><td align="center">uint16_t</td><td align="left">apogee_delay</td><td align="left">Apogee deploy delay in seconds</td></tr><tr><td align="center">12</td><td align="center">uint16_t</td><td align="left">main_deploy</td><td align="left">Main deploy alt in meters</td></tr><tr><td align="center">14</td><td align="center">uint16_t</td><td align="left">flight_log_max</td><td align="left">Maximum flight log size (kB)</td></tr><tr><td align="center">16</td><td align="center">char</td><td align="left">callsign[8]</td><td align="left">Radio operator identifier</td></tr><tr><td align="center">24</td><td align="center">char</td><td align="left">version[8]</td><td align="left">Software version identifier</td></tr><tr><td align="center">32</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="2.4. GPS Location"><div class="titlepage"><div><div><h3 class="title"><a name="idp3378728"></a>2.4. GPS Location</h3></div></div></div><div class="informaltable"><table border="0"><colgroup><col align="center"><col align="left"></colgroup><thead><tr><th align="center">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="center">0x05</td><td align="left">GPS Location</td></tr></tbody></table></div><p> + This packet provides all of the information available from the + Venus SkyTraq GPS receiver—position, time, speed and precision + estimates. + </p><p> + GPS Location packets are transmitted once per second during + all phases of the flight + </p><div class="table"><a name="idp2430352"></a><p class="title"><b>Table 4. GPS Location Packet Contents</b></p><div class="table-contents"><table summary="GPS Location Packet Contents" border="1"><colgroup><col align="center"><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">5</td><td align="center">uint8_t</td><td align="left">flags</td><td align="left">See GPS Flags table below</td></tr><tr><td align="center">6</td><td align="center">int16_t</td><td align="left">altitude</td><td align="left">m</td></tr><tr><td align="center">8</td><td align="center">int32_t</td><td align="left">latitude</td><td align="left">degrees * 10<sup>7</sup></td></tr><tr><td align="center">12</td><td align="center">int32_t</td><td align="left">longitude</td><td align="left">degrees * 10<sup>7</sup></td></tr><tr><td align="center">16</td><td align="center">uint8_t</td><td align="left">year</td><td class="auto-generated"> </td></tr><tr><td align="center">17</td><td align="center">uint8_t</td><td align="left">month</td><td class="auto-generated"> </td></tr><tr><td align="center">18</td><td align="center">uint8_t</td><td align="left">day</td><td class="auto-generated"> </td></tr><tr><td align="center">19</td><td align="center">uint8_t</td><td align="left">hour</td><td class="auto-generated"> </td></tr><tr><td align="center">20</td><td align="center">uint8_t</td><td align="left">minute</td><td class="auto-generated"> </td></tr><tr><td align="center">21</td><td align="center">uint8_t</td><td align="left">second</td><td class="auto-generated"> </td></tr><tr><td align="center">22</td><td align="center">uint8_t</td><td align="left">pdop</td><td align="left">* 5</td></tr><tr><td align="center">23</td><td align="center">uint8_t</td><td align="left">hdop</td><td align="left">* 5</td></tr><tr><td align="center">24</td><td align="center">uint8_t</td><td align="left">vdop</td><td align="left">* 5</td></tr><tr><td align="center">25</td><td align="center">uint8_t</td><td align="left">mode</td><td align="left">See GPS Mode table below</td></tr><tr><td align="center">26</td><td align="center">uint16_t</td><td align="left">ground_speed</td><td align="left">cm/s</td></tr><tr><td align="center">28</td><td align="center">int16_t</td><td align="left">climb_rate</td><td align="left">cm/s</td></tr><tr><td align="center">30</td><td align="center">uint8_t</td><td align="left">course</td><td align="left">/ 2</td></tr><tr><td align="center">31</td><td align="center">uint8_t</td><td align="left">unused[1]</td><td class="auto-generated"> </td></tr><tr><td align="center">32</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><p> + Packed into a one byte field are status flags and the count of + satellites used to compute the position fix. Note that this + number may be lower than the number of satellites being + tracked; the receiver will not use information from satellites + with weak signals or which are close enough to the horizon to + have significantly degraded position accuracy. + </p><div class="table"><a name="idp1374792"></a><p class="title"><b>Table 5. GPS Flags</b></p><div class="table-contents"><table summary="GPS Flags" border="1"><colgroup><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Bits</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0-3</td><td align="left">nsats</td><td align="left">Number of satellites in solution</td></tr><tr><td align="center">4</td><td align="left">valid</td><td align="left">GPS solution is valid</td></tr><tr><td align="center">5</td><td align="left">running</td><td align="left">GPS receiver is operational</td></tr><tr><td align="center">6</td><td align="left">date_valid</td><td align="left">Reported date is valid</td></tr><tr><td align="center">7</td><td align="left">course_valid</td><td align="left">ground speed, course and climb rates are valid</td></tr></tbody></table></div></div><br class="table-break"><p> + Here are all of the valid GPS operational modes. Altus Metrum + products will only ever report 'N' (not valid), 'A' + (Autonomous) modes or 'E' (Estimated). The remaining modes + are either testing modes or require additional data. + </p><div class="table"><a name="idp2336184"></a><p class="title"><b>Table 6. GPS Mode</b></p><div class="table-contents"><table summary="GPS Mode" border="1"><colgroup><col align="center"><col align="center"><col align="left"></colgroup><thead><tr><th align="center">Mode</th><th align="center">Name</th><th align="center">Decsription</th></tr></thead><tbody><tr><td align="center">N</td><td align="center">Not Valid</td><td align="left">All data are invalid</td></tr><tr><td align="center">A</td><td align="center">Autonomous mode</td><td align="left">Data are derived from satellite data</td></tr><tr><td align="center">D</td><td align="center">Differential Mode</td><td align="left"> + Data are augmented with differential data from a + known ground station. The SkyTraq unit in TeleMetrum + does not support this mode + </td></tr><tr><td align="center">E</td><td align="center">Estimated</td><td align="left"> + Data are estimated using dead reckoning from the + last known data + </td></tr><tr><td align="center">M</td><td align="center">Manual</td><td align="left">Data were entered manually</td></tr><tr><td align="center">S</td><td align="center">Simulated</td><td align="left">GPS receiver testing mode</td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="2.5. GPS Satellite Data"><div class="titlepage"><div><div><h3 class="title"><a name="idp2329008"></a>2.5. GPS Satellite Data</h3></div></div></div><div class="informaltable"><table border="0"><colgroup><col align="center"><col align="left"></colgroup><thead><tr><th align="center">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="center">0x06</td><td align="left">GPS Satellite Data</td></tr></tbody></table></div><p> + This packet provides space vehicle identifiers and signal + quality information in the form of a C/N1 number for up to 12 + satellites. The order of the svids is not specified. + </p><p> + GPS Satellite data are transmitted once per second during all + phases of the flight. + </p><div class="table"><a name="idp1504024"></a><p class="title"><b>Table 7. GPS Satellite Data Contents</b></p><div class="table-contents"><table summary="GPS Satellite Data Contents" border="1"><colgroup><col align="right"><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="right">5</td><td align="center">uint8_t</td><td align="left">channels</td><td align="left">Number of reported satellite information</td></tr><tr><td align="right">6</td><td align="center">sat_info_t</td><td align="left">sats[12]</td><td align="left">See Per-Satellite data table below</td></tr><tr><td align="right">30</td><td align="center">uint8_t</td><td align="left">unused[2]</td><td class="auto-generated"> </td></tr><tr><td align="right">32</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp1687912"></a><p class="title"><b>Table 8. GPS Per-Satellite data (sat_info_t)</b></p><div class="table-contents"><table summary="GPS Per-Satellite data (sat_info_t)" border="1"><colgroup><col align="right"><col align="center"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="right">0</td><td align="center">uint8_t</td><td align="left">svid</td><td align="left">Space Vehicle Identifier</td></tr><tr><td align="right">1</td><td align="center">uint8_t</td><td align="left">c_n_1</td><td align="left">C/N1 signal quality indicator</td></tr><tr><td align="right">2</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="section" title="3. Data Transmission"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp2437360"></a>3. Data Transmission</h2></div></div></div><p> + Altus Metrum devices use the Texas Instruments CC1111 + microcontroller which includes an integrated sub-GHz digital + transceiver. This transceiver is used to both transmit and + receive the telemetry packets. This section discusses what + modulation scheme is used and how this device is configured. + </p><div class="section" title="3.1. Modulation Scheme"><div class="titlepage"><div><div><h3 class="title"><a name="idp3529568"></a>3.1. Modulation Scheme</h3></div></div></div><p> + Texas Instruments provides a tool for computing modulation + parameters given a desired modulation format and basic bit + rate. For AltOS, the basic bit rate was specified as 38 kBaud, + resulting in the following signal parmeters: + </p><div class="table"><a name="idp3359296"></a><p class="title"><b>Table 9. </b></p><div class="table-contents"><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">Parameter</th><th align="center">Value</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">Modulation</td><td align="center">GFSK</td><td align="center">Gaussian Frequency Shift Keying</td></tr><tr><td align="center">Deviation</td><td align="center">20.507812 kHz</td><td align="center">Frequency modulation</td></tr><tr><td align="center">Data rate</td><td align="center">38.360596 kBaud</td><td align="center">Raw bit rate</td></tr><tr><td align="center">RX Filter Bandwidth</td><td align="center">93.75 kHz</td><td align="center">Receiver Band pass filter bandwidth</td></tr><tr><td align="center">IF Frequency</td><td align="center">140.62 kHz</td><td align="center">Receiver intermediate frequency</td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="3.2. Error Correction"><div class="titlepage"><div><div><h3 class="title"><a name="idp94440"></a>3.2. Error Correction</h3></div></div></div><p> + The cc1111 provides forward error correction in hardware, + which AltOS uses to improve reception of weak signals. The + overall effect of this is to halve the available bandwidth for + data from 38 kBaud to 19 kBaud. + </p><div class="table"><a name="idp95208"></a><p class="title"><b>Table 10. </b></p><div class="table-contents"><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">Parameter</th><th align="center">Value</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">Error Correction</td><td align="center">Convolutional coding FEC</td><td align="center">1/2 code, constraint length m=4</td></tr><tr><td align="center">Interleaving</td><td align="center">4 x 4</td><td align="center">Reduce effect of noise burst</td></tr><tr><td align="center">Data Whitening</td><td align="center">XOR with 9-bit PNR</td><td align="center">Rotate right with bit 8 = bit 0 xor bit 5, initial + value 111111111</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="section" title="4. TeleDongle packet format"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp101504"></a>4. TeleDongle packet format</h2></div></div></div><p> + TeleDongle does not do any interpretation of the packet data, + instead it is configured to receive packets of a specified + length (32 bytes in this case). For each received packet, + TeleDongle produces a single line of text. This line starts with + the string "TELEM " and is followed by a list of hexadecimal + encoded bytes. + </p><pre class="programlisting">TELEM 224f01080b05765e00701f1a1bbeb8d7b60b070605140c000600000000000000003fa988</pre><p> + The hexadecimal encoded string of bytes contains a length byte, + the packet data, two bytes added by the cc1111 radio receiver + hardware and finally a checksum so that the host software can + validate that the line was transmitted without any errors. + </p><div class="table"><a name="idp103288"></a><p class="title"><b>Table 11. </b></p><div class="table-contents"><table border="1"><colgroup><col align="center"><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Name</th><th align="center">Example</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">length</td><td align="center">22</td><td align="center">Total length of data bytes in the line. Note that + this includes the added RSSI and status bytes</td></tr><tr><td align="center">1 ·· length-3</td><td align="center">packet</td><td align="center">4f ·· 00</td><td align="center">Bytes of actual packet data</td></tr><tr><td align="center">length-2</td><td align="center">rssi</td><td align="center">3f</td><td align="center">Received signal strength. dBm = rssi / 2 - 74</td></tr><tr><td align="center">length-1</td><td align="center">lqi</td><td align="center">a9</td><td align="center">Link Quality Indicator and CRC status. Bit 7 + is set when the CRC is correct</td></tr><tr><td align="center">length</td><td align="center">checksum</td><td align="center">88</td><td align="center">(0x5a + sum(bytes 1 ·· length-1)) % 256</td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="5. History and Motivation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp42648"></a>5. History and Motivation</h2></div></div></div><p> + The original AltoOS telemetry mechanism encoded everything + available piece of information on the TeleMetrum hardware into a + single unified packet. Initially, the packets contained very + little data—some raw sensor readings along with the current GPS + coordinates when a GPS receiver was connected. Over time, the + amount of data grew to include sensor calibration data, GPS + satellite information and a host of internal state information + designed to help diagnose flight failures in case of a loss of + the on-board flight data. + </p><p> + Because every packet contained all of the data, packets were + huge—95 bytes long. Much of the information was also specific to + the TeleMetrum hardware. With the introduction of the TeleMini + flight computer, most of the data contained in the telemetry + packets was unavailable. Initially, a shorter, but still + comprehensive packet was implemented. This required that the + ground station be pre-configured as to which kind of packet to + expect. + </p><p> + The development of several companion boards also made the + shortcomings evident—each companion board would want to include + telemetry data in the radio link; with the original design, the + packet would have to hold the new data as well, requiring + additional TeleMetrum and ground station changes. + </p></div></div></body></html> |