diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile | 4 | ||||
-rw-r--r-- | doc/altusmetrum.xsl | 585 | ||||
-rw-r--r-- | doc/load-maps.png | bin | 520872 -> 572796 bytes | |||
-rw-r--r-- | doc/monitor-idle.png | bin | 0 -> 64749 bytes | |||
-rw-r--r-- | doc/release-notes-1.6.1.xsl | 189 | ||||
-rw-r--r-- | doc/telemetry.xsl | 499 |
6 files changed, 1127 insertions, 150 deletions
diff --git a/doc/Makefile b/doc/Makefile index 2887a229..9c6189b4 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -18,7 +18,8 @@ RELNOTES=\ release-notes-1.4.html \ release-notes-1.4.1.html \ release-notes-1.5.html \ - release-notes-1.6.html + release-notes-1.6.html \ + release-notes-1.6.1.html PICTURES=\ altosui.png \ @@ -51,6 +52,7 @@ PICTURES=\ micropeak-statistics.png \ MicroPeakUSB-2.0-inuse.jpg \ MicroPeakUSB-2.0.jpg \ + monitor-idle.png \ scan-channels.png \ site-map.png \ table.png \ diff --git a/doc/altusmetrum.xsl b/doc/altusmetrum.xsl index 1631983a..a40481f1 100644 --- a/doc/altusmetrum.xsl +++ b/doc/altusmetrum.xsl @@ -41,6 +41,13 @@ </legalnotice> <revhistory> <revision> + <revnumber>1.6.1</revnumber> + <date>15 July 2015</date> + <revremark> + Minor release adding TeleBT v3.0 support. + </revremark> + </revision> + <revision> <revnumber>1.6</revnumber> <date>8 January 2015</date> <revremark> @@ -2620,9 +2627,9 @@ NAR #88757, TRA #12200 <listitem> <para> After Motor. The flight software counts each time the - rocket starts accelerating (presumably due to a motor or - motors igniting). Use this value to count ignitions for - multi-staged or multi-airstart launches. + rocket starts accelerating and then decelerating + (presumably due to a motor or motors burning). Use this + value for multi-staged or multi-airstart launches. </para> </listitem> <listitem> @@ -3853,8 +3860,7 @@ NAR #88757, TRA #12200 <para> Before heading out to a new launch site, you can use this to load satellite images in case you don't have internet - connectivity at the site. This loads a fairly large area - around the launch site, which should cover any flight you're likely to make. + connectivity at the site. </para> <para> There's a drop-down menu of launch sites we know about; if @@ -3909,15 +3915,18 @@ NAR #88757, TRA #12200 You can specify the range of zoom levels to download; smaller numbers show more area with less resolution. The default level, 0, shows about 3m/pixel. One zoom level change - doubles or halves that number. + doubles or halves that number. Larger zoom levels show more + detail, smaller zoom levels less. </para> <para> - The Tile Radius value sets how large an area around the center - point to download. Each tile is 512x512 pixels, and the - 'radius' value specifies how many tiles away from the center - will be downloaded. Specify a radius of 0 and you get only the - center tile. A radius of 1 loads a 3x3 grid, centered on the - specified location. + The Map Radius value sets how large an area around the center + point to download. Select a value large enough to cover any + plausible flight from that site. Be aware that loading a large + area with a high maximum zoom level can attempt to download a + lot of data. Loading hybrid maps with a 10km radius at a + minimum zoom of -2 and a maximum zoom of 2 consumes about + 120MB of space. Terrain and road maps consume about 1/10 as + much space as satellite or hybrid maps. </para> <para> Clicking the 'Load Map' button will fetch images from Google @@ -3929,6 +3938,13 @@ NAR #88757, TRA #12200 </section> <section> <title>Monitor Idle</title> + <informalfigure> + <mediaobject> + <imageobject> + <imagedata fileref="monitor-idle.png" width="5.2in" scalefit="1"/> + </imageobject> + </mediaobject> + </informalfigure> <para> This brings up a dialog similar to the Monitor Flight UI, except it works with the altimeter in “idle” mode by sending @@ -3939,22 +3955,28 @@ NAR #88757, TRA #12200 cannot manage to run Monitor Idle, then it's very likely that your callsigns are different in some way. </para> + <para> + You can change the frequency and callsign used to communicate + with the flight computer; they must both match the + configuration in the flight computer exactly. + </para> </section> </chapter> <chapter> <title>AltosDroid</title> <para> AltosDroid provides the same flight monitoring capabilities as - AltosUI, but runs on Android devices and is designed to connect - to a TeleBT receiver over Bluetooth™. AltosDroid monitors + AltosUI, but runs on Android devices. AltosDroid is designed to connect + to a TeleBT receiver over Bluetooth™ and (on Android devices supporting + USB On-the-go) TeleDongle and TeleBT devices over USB. AltosDroid monitors telemetry data, logging it to internal storage in the Android - device, and presents that data in a UI the same way the 'Monitor - Flight' window does in AltosUI. + device, and presents that data in a UI similar to the 'Monitor + Flight' window in AltosUI. </para> <para> - This manual will explain how to configure AltosDroid, connect - to TeleBT, operate the flight monitoring interface and describe - what the displayed data means. + This manual will explain how to configure AltosDroid, connect to + TeleBT or TeleDongle, operate the flight monitoring interface + and describe what the displayed data means. </para> <section> <title>Installing AltosDroid</title> @@ -3968,7 +3990,7 @@ NAR #88757, TRA #12200 </para> </section> <section> - <title>Connecting to TeleBT</title> + <title>Connecting to TeleBT over Bluetooth™</title> <para> Press the Android 'Menu' button or soft-key to see the configuration options available. Select the 'Connect a device' @@ -3983,14 +4005,90 @@ NAR #88757, TRA #12200 </para> </section> <section> + <title>Connecting to TeleDongle or TeleBT over USB</title> + <para> + Get a special USB On-the-go adapter cable. These cables have a USB + micro-B male connector on one end and a standard A female + connector on the other end. Plug in your TeleDongle or TeleBT + device to the adapter cable and the adapter cable into your + phone and AltosDroid should automatically start up. If it + doesn't, the most likely reason is that your Android device + doesn't support USB On-the-go. + </para> + </section> + <section> <title>Configuring AltosDroid</title> <para> - The only configuration option available for AltosDroid is - which frequency to listen on. Press the Android 'Menu' button - or soft-key and pick the 'Select radio frequency' entry. That - brings up a menu of pre-set radio frequencies; pick the one - which matches your altimeter. + There are several configuration and operation parameters + available in the AltosDroid menu. </para> + <section> + <title>Select radio frequency</title> + <para> + This selects which frequency to listen on by bringing up a + menu of pre-set radio frequencies. Pick the one which matches + your altimeter. + </para> + </section> + <section> + <title>Select data rate</title> + <para> + Altus Metrum transmitters can be configured to operate at + lower data rates to improve transmission range. If you have + configured your device to do this, this menu item allows you + to change the receiver to match. + </para> + </section> + <section> + <title>Change units</title> + <para> + This toggles between metric and imperial units. + </para> + </section> + <section> + <title>Load maps</title> + <para> + Brings up a dialog allowing you to download offline map + tiles so that you can have maps available even if you have + no network connectivity at the launch site. + </para> + </section> + <section> + <title>Map type</title> + <para> + Displays a menu of map types and lets you select one. Hybrid + maps include satellite images with a roadmap + overlaid. Satellite maps dispense with the roadmap + overlay. Roadmap shows just the roads. Terrain includes + roads along with shadows indicating changes in elevation, + and other geographical features. + </para> + </section> + <section> + <title>Toggle Online/Offline maps</title> + <para> + Switches between online and offline maps. Online maps will + show a 'move to current position' icon in the upper right + corner, while offline maps will have copyright information + all over the map. Otherwise, they're pretty similar. + </para> + </section> + <section> + <title>Select Tracker</title> + <para> + Switches the information displays to show data for a + different transmitting device. The map will always show all + of the devices in view. Trackers are shown and selected by + serial number, so make sure you note the serial number of + devices in each airframe. + </para> + </section> + <section> + <title>Delete Track</title> + <para> + Deletes all information about a transmitting device. + </para> + </section> </section> <section> <title>AltosDroid Flight Monitoring</title> @@ -4004,91 +4102,353 @@ NAR #88757, TRA #12200 <section> <title>Pad</title> <para> - The 'Launch Pad' tab shows information used to decide when the + The 'Pad' tab shows information used to decide when the rocket is ready for flight. The first elements include red/green indicators, if any of these is red, you'll want to evaluate - whether the rocket is ready to launch: - <variablelist> - <varlistentry> - <term>Battery Voltage</term> - <listitem> - <para> - This indicates whether the Li-Po battery - powering the TeleMetrum has sufficient charge to last for - the duration of the flight. A value of more than - 3.8V is required for a 'GO' status. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>Apogee Igniter Voltage</term> - <listitem> - <para> - This indicates whether the apogee - igniter has continuity. If the igniter has a low - resistance, then the voltage measured here will be close - to the Li-Po battery voltage. A value greater than 3.2V is - required for a 'GO' status. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>Main Igniter Voltage</term> - <listitem> - <para> - This indicates whether the main - igniter has continuity. If the igniter has a low - resistance, then the voltage measured here will be close - to the Li-Po battery voltage. A value greater than 3.2V is - required for a 'GO' status. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>On-board Data Logging</term> - <listitem> - <para> - This indicates whether there is - space remaining on-board to store flight data for the - upcoming flight. If you've downloaded data, but failed - to erase flights, there may not be any space - left. TeleMetrum can store multiple flights, depending - on the configured maximum flight log size. TeleMini - stores only a single flight, so it will need to be - downloaded and erased after each flight to capture - data. This only affects on-board flight logging; the - altimeter will still transmit telemetry and fire - ejection charges at the proper times. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>GPS Locked</term> - <listitem> - <para> - For a TeleMetrum or TeleMega device, this indicates whether the GPS receiver is - currently able to compute position information. GPS requires - at least 4 satellites to compute an accurate position. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>GPS Ready</term> - <listitem> - <para> - For a TeleMetrum or TeleMega device, this indicates whether GPS has reported at least - 10 consecutive positions without losing lock. This ensures - that the GPS receiver has reliable reception from the - satellites. - </para> - </listitem> - </varlistentry> - </variablelist> + whether the rocket is ready to launch. </para> <para> - The Launchpad tab also shows the computed launch pad position - and altitude, averaging many reported positions to improve the - accuracy of the fix. + When the pad tab is selected, the voice responses will + include status changes to the igniters and GPS reception, + letting you know if the rocket is still ready for launch. + </para> + <variablelist> + <varlistentry> + <term>Battery</term> + <listitem> + <para> + This indicates whether the Li-Po battery + powering the transmitter has sufficient charge to last for + the duration of the flight. A value of more than + 3.8V is required for a 'GO' status. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Receiver Battery</term> + <listitem> + <para> + This indicates whether the Li-Po battery + powering the TeleBT has sufficient charge to last for + the duration of the flight. A value of more than + 3.8V is required for a 'GO' status. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Data Logging</term> + <listitem> + <para> + This indicates whether there is space remaining + on-board to store flight data for the upcoming + flight. If you've downloaded data, but failed to + erase flights, there may not be any space + left. TeleMetrum and TeleMega can store multiple + flights, depending on the configured maximum flight + log size. TeleGPS logs data continuously. TeleMini + stores only a single flight, so it will need to be + downloaded and erased after each flight to capture + data. This only affects on-board flight logging; the + altimeter will still transmit telemetry and fire + ejection charges at the proper times. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>GPS Locked</term> + <listitem> + <para> + For a TeleMetrum or TeleMega device, this indicates whether the GPS receiver is + currently able to compute position information. GPS requires + at least 4 satellites to compute an accurate position. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>GPS Ready</term> + <listitem> + <para> + For a TeleMetrum or TeleMega device, this indicates whether GPS has reported at least + 10 consecutive positions without losing lock. This ensures + that the GPS receiver has reliable reception from the + satellites. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Apogee Igniter</term> + <listitem> + <para> + This indicates whether the apogee + igniter has continuity. If the igniter has a low + resistance, then the voltage measured here will be close + to the Li-Po battery voltage. A value greater than 3.2V is + required for a 'GO' status. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Main Igniter</term> + <listitem> + <para> + This indicates whether the main + igniter has continuity. If the igniter has a low + resistance, then the voltage measured here will be close + to the Li-Po battery voltage. A value greater than 3.2V is + required for a 'GO' status. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Igniter A-D</term> + <listitem> + <para> + This indicates whether the indicated additional pyro + channel igniter has continuity. If the igniter has a + low resistance, then the voltage measured here will + be close to the Li-Po battery voltage. A value + greater than 3.2V is required for a 'GO' status. + </para> + </listitem> + </varlistentry> + </variablelist> + <para> + The Pad tab also shows the location of the Android device. + </para> + </section> + <section> + <title>Flight</title> + <para> + The 'Flight' tab shows information used to evaluate and spot + a rocket while in flight. It displays speed and height data + to monitor the health of the rocket, along with elevation, + range and bearing to help locate the rocket in the sky. + </para> + <para> + While the Flight tab is displayed, the voice announcements + will include current speed, height, elevation and bearing + information. + </para> + <variablelist> + <varlistentry> + <term>Speed</term> + <listitem> + <para> + Shows current vertical speed. During descent, the + speed values are averaged over a fairly long time to + try and make them steadier. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Height</term> + <listitem> + <para> + Shows the current height above the launch pad. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Max Speed</term> + <listitem> + <para> + Shows the maximum vertical speed seen during the flight. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Max Height</term> + <listitem> + <para> + Shows the maximum height above launch pad. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Elevation</term> + <listitem> + <para> + This is the angle above the horizon from the android + devices current position. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Range</term> + <listitem> + <para> + The total distance from the android device to the + rocket, including both ground distance and + difference in altitude. Use this to gauge how large + the rocket is likely to appear in the sky. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Bearing</term> + <listitem> + <para> + This is the aziumuth from true north for the rocket + from the android device. Use this in combination + with the Elevation value to help locate the rocket + in the sky, or at least to help point the antenna in + the general direction. This is provided in both + degrees and a compass point (like West South + West). You'll want to know which direction is true + north before launching your rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ground Distance</term> + <listitem> + <para> + This shows the distance across the ground to the + lat/lon where the rocket is located. Use this to + estimate what is currently under the rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Latitude/Longitude</term> + <listitem> + <para> + Displays the last known location of the rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Apogee Igniter</term> + <listitem> + <para> + This indicates whether the apogee + igniter has continuity. If the igniter has a low + resistance, then the voltage measured here will be close + to the Li-Po battery voltage. A value greater than 3.2V is + required for a 'GO' status. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Main Igniter</term> + <listitem> + <para> + This indicates whether the main + igniter has continuity. If the igniter has a low + resistance, then the voltage measured here will be close + to the Li-Po battery voltage. A value greater than 3.2V is + required for a 'GO' status. + </para> + </listitem> + </varlistentry> + </variablelist> + </section> + <section> + <title>Recover</title> + <para> + The 'Recover' tab shows information used while recovering the + rocket on the ground after flight. + </para> + <para> + While the Recover tab is displayed, the voice announcements + will include distance along with either bearing or + direction, depending on whether you are moving. + </para> + <variablelist> + <varlistentry> + <term>Bearing</term> + <listitem> + <para> + This is the aziumuth from true north for the rocket + from the android device. Use this in combination + with the Elevation value to help locate the rocket + in the sky, or at least to help point the antenna in + the general direction. This is provided in both + degrees and a compass point (like West South + West). You'll want to know which direction is true + north before launching your rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Direction</term> + <listitem> + <para> + When you are in motion, this provides the angle from + your current direction of motion towards the rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Distance</term> + <listitem> + <para> + Distance over the ground to the rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Tar Lat/Tar Lon</term> + <listitem> + <para> + Displays the last known location of the rocket. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>My Lat/My Lon</term> + <listitem> + <para> + Displays the location of the Android device. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Max Height</term> + <listitem> + <para> + Shows the maximum height above launch pad. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Max Speed</term> + <listitem> + <para> + Shows the maximum vertical speed seen during the flight. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Max Accel</term> + <listitem> + <para> + Shows the maximum vertical acceleration seen during the flight. + </para> + </listitem> + </varlistentry> + </variablelist> + </section> + <section> + <title>Map</title> + <para> + The 'Map' tab shows a map of the area around the rocket + being tracked along with information needed to recover it. + </para> + <para> + On the map itself, icons showing the location of the android + device along with the last known location of each tracker. A + blue line is drawn from the android device location to the + currently selected tracker. + </para> + <para> + Below the map, the distance and either bearing or direction + along with the lat/lon of the target and the android device + are shown + </para> + <para> + The Map tab provides the same voice announcements as the + Recover tab. </para> </section> </section> @@ -4097,9 +4457,9 @@ NAR #88757, TRA #12200 <para> AltosDroid always saves every bit of telemetry data it receives. To download that to a computer for use with AltosUI, - simply remove the SD card from your Android device, or connect - your device to your computer's USB port and browse the files - on that device. You will find '.telem' files in the TeleMetrum + remove the SD card from your Android device, or connect your + device to your computer's USB port and browse the files on + that device. You will find '.telem' files in the TeleMetrum directory that will work with AltosUI directly. </para> </section> @@ -5916,6 +6276,13 @@ NAR #88757, TRA #12200 <appendix> <title>Release Notes</title> <simplesect> + <title>Version 1.6.1</title> + <xi:include + xmlns:xi="http://www.w3.org/2001/XInclude" + href="release-notes-1.6.1.xsl" + xpointer="xpointer(/article/*)"/> + </simplesect> + <simplesect> <title>Version 1.6</title> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" diff --git a/doc/load-maps.png b/doc/load-maps.png Binary files differindex ae98c9a5..150b8b3c 100644 --- a/doc/load-maps.png +++ b/doc/load-maps.png diff --git a/doc/monitor-idle.png b/doc/monitor-idle.png Binary files differnew file mode 100644 index 00000000..964063f1 --- /dev/null +++ b/doc/monitor-idle.png diff --git a/doc/release-notes-1.6.1.xsl b/doc/release-notes-1.6.1.xsl new file mode 100644 index 00000000..058d43fe --- /dev/null +++ b/doc/release-notes-1.6.1.xsl @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" +"/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd"> + +<article> + <para> + Version 1.6.1 includes support for our updated TeleBT v3.0 + product and bug fixes in in the flight software for all our boards + and ground station interfaces. + </para> + <para> + AltOS New Features + <itemizedlist> + <listitem> + <para> + Add support for TeleBT v3.0 boards. + </para> + </listitem> + <listitem> + <para> + Add support for uncompressed APRS data, providing support + for older APRS receivers. Uncompressed APRS data is less + precise, takes more bandwidth and doesn't have integrated + altitude data. + </para> + </listitem> + </itemizedlist> + </para> + <para> + AltOS Fixes + <itemizedlist> + <listitem> + <para> + Make TeleDongle and TeleBT more tolerant of data rate + variations from transmitting devices. + </para> + </listitem> + </itemizedlist> + </para> + <para> + AltosUI and TeleGPS New Features + <itemizedlist> + <listitem> + <para> + Add map to Monitor Idle display. It's nice to be able to + verify that maps are working, instead of needing to use + Monitor Flight. + </para> + </listitem> + </itemizedlist> + </para> + <para> + AltosUI Fixes + <itemizedlist> + <listitem> + <para> + Fix frequency configuration to round values instead of + truncate them, avoiding a common 1kHz error in the setting. + </para> + </listitem> + <listitem> + <para> + Turn the Windows stub into a more useful program that can + launch the application with parameters so that file manager + icons work more reliably. + </para> + </listitem> + <listitem> + <para> + Force KML export to use a C locale so that numbers are + formatted with '.' instead of ',' for a decimal separator in + non-US locales. + </para> + </listitem> + <listitem> + <para> + Preload map tiles based on distance rather than number of + tiles; this means you get the same resolution covering the + entire area, rather than having high resolution near the + center and low resolution further away. + </para> + </listitem> + <listitem> + <para> + Allow configuration of frequency and callsign in Monitor + Idle mode. + </para> + </listitem> + <listitem> + <para> + Fix layout weirdness when resizing windows on + Windows. Windows shouldn't have giant blank spaces around + the useful content anymore. + </para> + </listitem> + <listitem> + <para> + Fix layout weirdness when resizing windows on + Windows. Windows shouldn't have giant blank spaces around + the useful content anymore. + </para> + </listitem> + <listitem> + <para> + Use a longer filter for descent speed values. This should + provide something more useful on the display, although it + will take longer to respond to changes now. + </para> + </listitem> + <listitem> + <para> + Make Replay Flight run in realtime again. It had been set to + run at 10x speed by mistake. + </para> + </listitem> + </itemizedlist> + </para> + <para> + AltosDroid New Features + <itemizedlist> + <listitem> + <para> + Add offline map support using mapping code from AltosUI. + </para> + </listitem> + <listitem> + <para> + Support TeleDongle (and TeleBT via USB) on devices + supporting USB On-The-Go. + </para> + </listitem> + <listitem> + <para> + Display additional TeleMega pyro channel status in Pad tab. + </para> + </listitem> + <listitem> + <para> + Switch between metric and imperial units. + </para> + </listitem> + <listitem> + <para> + Monitor TeleBT battery voltage. + </para> + </listitem> + <listitem> + <para> + Track multiple devices at the same time, selecting between + them with a menu or using the map. + </para> + </listitem> + <listitem> + <para> + Add hybrid, satellite and terrain map types. + </para> + </listitem> + </itemizedlist> + </para> + <para> + AltosDroid Fixes + <itemizedlist> + <listitem> + <para> + Use standard Android display conventions so that a menu + button is available in the application title bar. + </para> + </listitem> + <listitem> + <para> + Adjust layout to work on large and small screens; shrinking + the go/no-go lights in smaller environments to try and make + everything visible. + </para> + </listitem> + <listitem> + <para> + Make voice announcements depend on current tab. + </para> + </listitem> + <listitem> + <para> + Compute adjustment to current travel direction while in + motion towards rocket. + </para> + </listitem> + </itemizedlist> + </para> +</article> diff --git a/doc/telemetry.xsl b/doc/telemetry.xsl index e4101507..2e0b3ea1 100644 --- a/doc/telemetry.xsl +++ b/doc/telemetry.xsl @@ -110,7 +110,7 @@ </para> </section> <section> - <title>Sensor Data</title> + <title>TeleMetrum v1.x, TeleMini and TeleNano Sensor Data</title> <informaltable frame='none' label='' tocentry='0'> <tgroup cols='2' align='center' colsep='1' rowsep='1'> <colspec align='center' colwidth='*' colname='Offset'/> @@ -124,7 +124,7 @@ <tbody> <row> <entry>0x01</entry> - <entry>TeleMetrum Sensor Data</entry> + <entry>TeleMetrum v1.x Sensor Data</entry> </row> <row> <entry>0x02</entry> @@ -138,7 +138,7 @@ </tgroup> </informaltable> <para> - TeleMetrum, TeleMini and TeleNano share this same packet + TeleMetrum v1.x, 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. @@ -214,6 +214,316 @@ </table> </section> <section> + <title>TeleMega Sensor Data</title> + <informaltable frame='none' label='' tocentry='0'> + <tgroup cols='2' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='left' colwidth='3*' colname='Description'/> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>0x08</entry> + <entry>TeleMega IMU Sensor Data</entry> + </row> + <row> + <entry>0x09</entry> + <entry>TeleMega Kalman and Voltage Data</entry> + </row> + </tbody> + </tgroup> + </informaltable> + <para> + TeleMega has a lot of sensors, and so it splits the sensor + data into two packets. The raw IMU data are sent more often; + the voltage values don't change very fast, and the Kalman + values can be reconstructed from the IMU data. + </para> + <para> + IMU 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 + </para> + <para> + Kalman and Voltage Data packets are transmitted once per second on the + ground, 5 times per second during ascent and once per second + during descent and landing + </para> + <para> + The high-g accelerometer is reported separately from the data + for the 9-axis IMU (accel/gyro/mag). The 9-axis IMU is mounted + so that the X axis is "across" the board (along the short + axis0, the Y axis is "along" the board (along the long axis, + with the high-g accelerometer) and the Z axis is "through" the + board (perpendicular to the board). Rotation measurements are + around the respective axis, so Y rotation measures the spin + rate of the rocket while X and Z rotation measure the tilt + rate. + </para> + <para> + The overall tilt angle of the rocket is computed by first + measuring the orientation of the rocket on the pad using the 3 + axis accelerometer, and then integrating the overall tilt rate + from the 3 axis gyroscope to compute the total orientation + change of the airframe since liftoff. + </para> + <table frame='all'> + <title>TeleMega IMU Sensor Packet Contents</title> + <tgroup cols='4' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='center' colwidth='3*' colname='Data Type'/> + <colspec align='left' colwidth='3*' colname='Name'/> + <colspec align='left' colwidth='9*' colname='Description'/> + <thead> + <row> + <entry align='center'>Offset</entry> + <entry align='center'>Data Type</entry> + <entry align='center'>Name</entry> + <entry align='center'>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>5</entry><entry>uint8_t</entry><entry>orient</entry><entry>Angle from vertical in degrees</entry> + </row> + <row> + <entry>6</entry><entry>int16_t</entry><entry>accel</entry><entry>High G accelerometer</entry> + </row> + <row> + <entry>8</entry><entry>int32_t</entry><entry>pres</entry><entry>pressure (Pa * 10)</entry> + </row> + <row> + <entry>12</entry><entry>int16_t</entry><entry>temp</entry><entry>temperature (°C * 100)</entry> + </row> + <row> + <entry>14</entry><entry>int16_t</entry><entry>accel_x</entry><entry>X axis acceleration (across)</entry> + </row> + <row> + <entry>16</entry><entry>int16_t</entry><entry>accel_y</entry><entry>Y axis acceleration (along)</entry> + </row> + <row> + <entry>18</entry><entry>int16_t</entry><entry>accel_z</entry><entry>Z axis acceleration (through)</entry> + </row> + <row> + <entry>20</entry><entry>int16_t</entry><entry>gyro_x</entry><entry>X axis rotation (across)</entry> + </row> + <row> + <entry>22</entry><entry>int16_t</entry><entry>gyro_y</entry><entry>Y axis rotation (along)</entry> + </row> + <row> + <entry>24</entry><entry>int16_t</entry><entry>gyro_z</entry><entry>Z axis rotation (through)</entry> + </row> + <row> + <entry>26</entry><entry>int16_t</entry><entry>mag_x</entry><entry>X field strength (across)</entry> + </row> + <row> + <entry>28</entry><entry>int16_t</entry><entry>mag_y</entry><entry>Y field strength (along)</entry> + </row> + <row> + <entry>30</entry><entry>int16_t</entry><entry>mag_z</entry><entry>Z field strength (through)</entry> + </row> + <row> + <entry>32</entry> + </row> + </tbody> + </tgroup> + </table> + <table frame='all'> + <title>TeleMega Kalman and Voltage Data Packet Contents</title> + <tgroup cols='4' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='center' colwidth='3*' colname='Data Type'/> + <colspec align='left' colwidth='3*' colname='Name'/> + <colspec align='left' colwidth='9*' colname='Description'/> + <thead> + <row> + <entry align='center'>Offset</entry> + <entry align='center'>Data Type</entry> + <entry align='center'>Name</entry> + <entry align='center'>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>5</entry><entry>uint8_t</entry><entry>state</entry><entry>Flight state</entry> + </row> + <row> + <entry>6</entry><entry>int16_t</entry><entry>v_batt</entry><entry>battery voltage</entry> + </row> + <row> + <entry>8</entry><entry>int16_t</entry><entry>v_pyro</entry><entry>pyro battery voltage</entry> + </row> + <row> + <entry>10</entry><entry>int8_t[6]</entry><entry>sense</entry><entry>pyro continuity sense</entry> + </row> + <row> + <entry>16</entry><entry>int32_t</entry><entry>ground_pres</entry><entry>Average barometer reading on ground</entry> + </row> + <row> + <entry>20</entry><entry>int16_t</entry><entry>ground_accel</entry><entry>Average accelerometer reading on ground</entry> + </row> + <row> + <entry>22</entry><entry>int16_t</entry><entry>accel_plus_g</entry><entry>Accel calibration at +1g</entry> + </row> + <row> + <entry>24</entry><entry>int16_t</entry><entry>accel_minus_g</entry><entry>Accel calibration at -1g</entry> + </row> + <row> + <entry>26</entry><entry>int16_t</entry><entry>acceleration</entry><entry>m/s² * 16</entry> + </row> + <row> + <entry>28</entry><entry>int16_t</entry><entry>speed</entry><entry>m/s * 16</entry> + </row> + <row> + <entry>30</entry><entry>int16_t</entry><entry>height</entry><entry>m</entry> + </row> + <row> + <entry>32</entry> + </row> + </tbody> + </tgroup> + </table> + </section> + <section> + <title>TeleMetrum v2 Sensor Data</title> + <informaltable frame='none' label='' tocentry='0'> + <tgroup cols='2' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='left' colwidth='3*' colname='Description'/> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>0x0A</entry> + <entry>TeleMetrum v2 Sensor Data</entry> + </row> + <row> + <entry>0x0B</entry> + <entry>TeleMetrum v2 Calibration Data</entry> + </row> + </tbody> + </tgroup> + </informaltable> + <para> + TeleMetrum v2 has higher resolution barometric data than + TeleMetrum v1, and so the constant calibration data is + split out into a separate packet. + </para> + <para> + TeleMetrum v2 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 + </para> + <para> + TeleMetrum v2 Calibration Data packets are always transmitted once per second. + </para> + <table frame='all'> + <title>TeleMetrum v2 Sensor Packet Contents</title> + <tgroup cols='4' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='center' colwidth='3*' colname='Data Type'/> + <colspec align='left' colwidth='3*' colname='Name'/> + <colspec align='left' colwidth='9*' colname='Description'/> + <thead> + <row> + <entry align='center'>Offset</entry> + <entry align='center'>Data Type</entry> + <entry align='center'>Name</entry> + <entry align='center'>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>5</entry><entry>uint8_t</entry><entry>state</entry><entry>Flight state</entry> + </row> + <row> + <entry>6</entry><entry>int16_t</entry><entry>accel</entry><entry>accelerometer</entry> + </row> + <row> + <entry>8</entry><entry>int32_t</entry><entry>pres</entry><entry>pressure sensor (Pa * 10)</entry> + </row> + <row> + <entry>12</entry><entry>int16_t</entry><entry>temp</entry><entry>temperature sensor (°C * 100)</entry> + </row> + + <row> + <entry>14</entry><entry>int16_t</entry><entry>acceleration</entry><entry>m/s² * 16</entry> + </row> + <row> + <entry>16</entry><entry>int16_t</entry><entry>speed</entry><entry>m/s * 16</entry> + </row> + <row> + <entry>18</entry><entry>int16_t</entry><entry>height</entry><entry>m</entry> + </row> + + <row> + <entry>20</entry><entry>int16_t</entry><entry>v_batt</entry><entry>battery voltage</entry> + </row> + <row> + <entry>22</entry><entry>int16_t</entry><entry>sense_d</entry><entry>drogue continuity sense</entry> + </row> + <row> + <entry>24</entry><entry>int16_t</entry><entry>sense_m</entry><entry>main continuity sense</entry> + </row> + <row> + <entry>26</entry><entry>pad[6]</entry><entry>pad bytes</entry><entry></entry> + </row> + <row> + <entry>32</entry> + </row> + </tbody> + </tgroup> + </table> + <table frame='all'> + <title>TeleMetrum v2 Calibration Data Packet Contents</title> + <tgroup cols='4' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='center' colwidth='3*' colname='Data Type'/> + <colspec align='left' colwidth='3*' colname='Name'/> + <colspec align='left' colwidth='9*' colname='Description'/> + <thead> + <row> + <entry align='center'>Offset</entry> + <entry align='center'>Data Type</entry> + <entry align='center'>Name</entry> + <entry align='center'>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>5</entry><entry>pad[3]</entry><entry>pad bytes</entry><entry></entry> + </row> + <row> + <entry>8</entry><entry>int32_t</entry><entry>ground_pres</entry><entry>Average barometer reading on ground</entry> + </row> + <row> + <entry>12</entry><entry>int16_t</entry><entry>ground_accel</entry><entry>Average accelerometer reading on ground</entry> + </row> + <row> + <entry>14</entry><entry>int16_t</entry><entry>accel_plus_g</entry><entry>Accel calibration at +1g</entry> + </row> + <row> + <entry>16</entry><entry>int16_t</entry><entry>accel_minus_g</entry><entry>Accel calibration at -1g</entry> + </row> + <row> + <entry>18</entry><entry>pad[14]</entry><entry>pad bytes</entry><entry></entry> + </row> + <row> + <entry>32</entry> + </row> + </tbody> + </tgroup> + </table> + </section> + <section> <title>Configuration Data</title> <informaltable frame='none' label='' tocentry='0'> <tgroup cols='2' align='center' colsep='1' rowsep='1'> @@ -315,7 +625,7 @@ </informaltable> <para> This packet provides all of the information available from the - Venus SkyTraq GPS receiver—position, time, speed and precision + GPS receiver—position, time, speed and precision estimates. </para> <para> @@ -604,62 +914,169 @@ </tgroup> </table> </section> + <section> + <title>Companion Data Data</title> + <informaltable frame='none' label='' tocentry='0'> + <tgroup cols='2' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='*' colname='Offset'/> + <colspec align='left' colwidth='3*' colname='Description'/> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>0x07</entry> + <entry>Companion Data Data</entry> + </row> + </tbody> + </tgroup> + </informaltable> + <para> + When a companion board is attached to TeleMega or TeleMetrum, + it can provide telemetry data to be included in the + downlink. The companion board can provide up to 12 16-bit data + values. + </para> + <para> + The companion board itself specifies the transmission rate. On + the ground and during descent, that rate is limited to one + packet per second. During ascent, that rate is limited to 10 + packets per second. + </para> + <table frame='all'> + <title>Companion Data Contents</title> + <tgroup cols='4' align='center' colsep='1' rowsep='1'> + <colspec align='right' colwidth='*' colname='Offset'/> + <colspec align='center' colwidth='3*' colname='Data Type'/> + <colspec align='left' colwidth='3*' colname='Name'/> + <colspec align='left' colwidth='9*' colname='Description'/> + <thead> + <row> + <entry align='center'>Offset</entry> + <entry align='center'>Data Type</entry> + <entry align='center'>Name</entry> + <entry align='center'>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>5</entry><entry>uint8_t</entry><entry>board_id</entry> + <entry>Type of companion board attached</entry> + </row> + <row> + <entry>6</entry><entry>uint8_t</entry><entry>update_period</entry> + <entry>How often telemetry is sent, in 1/100ths of a second</entry> + </row> + <row> + <entry>7</entry><entry>uint8_t</entry><entry>channels</entry> + <entry>Number of data channels supplied</entry> + </row> + <row> + <entry>8</entry><entry>uint16_t[12]</entry><entry>companion_data</entry> + <entry>Up to 12 channels of 16-bit companion data</entry> + </row> + <row> + <entry>32</entry> + </row> + </tbody> + </tgroup> + </table> + </section> </section> <section> <title>Data Transmission</title> <para> - 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. + Altus Metrum devices use Texas Instruments sub-GHz digital radio + products. Ground stations use parts with HW FEC while some + flight computers perform FEC in software. TeleGPS is + transmit-only. </para> + <table> + <title>Altus Metrum Radio Parts</title> + <tgroup cols='3'> + <colspec align="center" colwidth="*" colname="Part Number"/> + <colspec align="center" colwidth="*" colname="Description"/> + <colspec align="left" colwidth="*" colname="Used in"/> + <thead> + <row> + <entry align="center">Part Number</entry> + <entry align="center">Description</entry> + <entry align="center">Used in</entry> + </row> + </thead> + <tbody> + <row> + <entry>CC1111</entry><entry>10mW transceiver with integrated SoC</entry> + <entry>TeleDongle v0.2, TeleBT v1.0, TeleMetrum v1.x, TeleMini</entry> + </row> + <row> + <entry>CC1120</entry><entry>35mW transceiver with SW FEC</entry> + <entry>TeleMetrum v2, TeleMega</entry> + </row> + <row> + <entry>CC1200</entry><entry>35mW transceiver with HW FEC</entry> + <entry>TeleDongle v3.0, TeleBT v3.0</entry> + </row> + <row> + <entry>CC115L</entry><entry>14mW transmitter with SW FEC</entry> + <entry>TeleGPS</entry> + </row> + </tbody> + </tgroup> + </table> <section> <title>Modulation Scheme</title> <para> 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: + rate. + + While we might like to use something with better low-signal + performance like BPSK, the radios we use don't support that, + but do support Gaussian frequency shift keying (GFSK). Regular + frequency shift keying (FSK) encodes the signal by switching + the carrier between two frequencies. The Gaussian version is + essentially the same, but the shift between frequencies gently + follows a gaussian curve, rather than switching + immediately. This tames the bandwidth of the signal without + affecting the ability to transmit data. + + For AltOS, there are three available bit rates, 38.4kBaud, + 9.6kBaud and 2.4kBaud resulting in the following signal + parmeters: + </para> <table> <title>Modulation Scheme</title> <tgroup cols='3'> - <colspec align="center" colwidth="*" colname="parameter"/> - <colspec align="center" colwidth="*" colname="value"/> - <colspec align="center" colwidth="*" colname="description"/> + <colspec align="center" colwidth="*" colname="rate"/> + <colspec align="center" colwidth="*" colname="deviation"/> + <colspec align="center" colwidth="*" colname="bandwidth"/> <thead> <row> - <entry align='center'>Parameter</entry> - <entry align='center'>Value</entry> - <entry align='center'>Description</entry> + <entry align='center'>Rate</entry> + <entry align='center'>Deviation</entry> + <entry align='center'>Receiver Bandwidth</entry> </row> </thead> <tbody> <row> - <entry>Modulation</entry> - <entry>GFSK</entry> - <entry>Gaussian Frequency Shift Keying</entry> - </row> - <row> - <entry>Deviation</entry> - <entry>20.507812 kHz</entry> - <entry>Frequency modulation</entry> - </row> - <row> - <entry>Data rate</entry> - <entry>38.360596 kBaud</entry> - <entry>Raw bit rate</entry> + <entry>38.4kBaud</entry> + <entry>20.5kHz</entry> + <entry>100kHz</entry> </row> <row> - <entry>RX Filter Bandwidth</entry> - <entry>93.75 kHz</entry> - <entry>Receiver Band pass filter bandwidth</entry> + <entry>9.6kBaud</entry> + <entry>5.125kHz</entry> + <entry>25kHz</entry> </row> <row> - <entry>IF Frequency</entry> - <entry>140.62 kHz</entry> - <entry>Receiver intermediate frequency</entry> + <entry>2.4kBaud</entry> + <entry>1.5kHz</entry> + <entry>5kHz</entry> </row> </tbody> </tgroup> @@ -668,10 +1085,12 @@ <section> <title>Error Correction</title> <para> - 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. + The cc1111 and cc1200 provide forward error correction in + hardware; on the cc1120 and cc115l that's done in + software. AltOS uses this to improve reception of weak + signals. As it's a rate 1/2 encoding, each bit of data takes + two bits when transmitted, so the effective data rate is half + of the raw transmitted bit rate. </para> <table> <title>Error Correction</title> |