Merge branch 'buttonbox' of git://git.gag.com/fw/altos into buttonbox
authorAnthony Towns <aj@erisian.com.au>
Wed, 24 Nov 2010 01:55:14 +0000 (11:55 +1000)
committerAnthony Towns <aj@erisian.com.au>
Wed, 24 Nov 2010 01:55:14 +0000 (11:55 +1000)
doc/Makefile
doc/altosui-doc.xsl [deleted file]
doc/telemetrum-doc.xsl

index 52934290777b14d59a070decf9d367398caf9eaa..65917ea259cf8206d5e3deaec0a0b3c811ed02c7 100644 (file)
@@ -2,8 +2,8 @@
 #      http://docbook.sourceforge.net/release/xsl/current/README
 #
 
-HTML=telemetrum-doc.html altosui-doc.html altos.html
-PDF=telemetrum-doc.pdf altosui-doc.pdf altos.pdf
+HTML=telemetrum-doc.html altos.html
+PDF=telemetrum-doc.pdf altos.pdf
 DOC=$(HTML) $(PDF)
 HTMLSTYLE=/usr/share/xml/docbook/stylesheet/docbook-xsl/html/docbook.xsl
 FOSTYLE=/usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl
diff --git a/doc/altosui-doc.xsl b/doc/altosui-doc.xsl
deleted file mode 100644 (file)
index 4a1f43b..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-<?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">
-
-<book>
-  <title>AltosUI</title>
-  <subtitle>Altos Metrum Graphical User Interface Manual</subtitle>
-  <bookinfo>
-    <author>
-      <firstname>Bdale</firstname>
-      <surname>Garbee</surname>
-    </author>
-    <author>
-      <firstname>Keith</firstname>
-      <surname>Packard</surname>
-    </author>
-    <copyright>
-      <year>2010</year>
-      <holder>Bdale Garbee and Keith Packard</holder>
-    </copyright>
-    <legalnotice>
-      <para>
-        This document is released under the terms of the
-        <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
-          Creative Commons ShareAlike 3.0
-        </ulink>
-        license.
-      </para>
-    </legalnotice>
-    <revhistory>
-      <revision>
-        <revnumber>0.1</revnumber>
-        <date>19 November 2010</date>
-        <revremark>Initial content</revremark>
-      </revision>
-    </revhistory>
-  </bookinfo>
-  <chapter>
-    <title>Introduction</title>
-    <para>
-      The AltosUI program provides a graphical user interface for
-      interacting with the Altus Metrum product family, including
-      TeleMetrum and TeleDongle. AltosUI can monitor telemetry data,
-      configure TeleMetrum and TeleDongle devices and many other
-      tasks. The primary interface window provides a selection of
-      buttons, one for each major activity in the system.  This manual
-      is split into chapters, each of which documents one of the tasks
-      provided from the top-level toolbar.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Packet Command Mode</title>
-    <subtitle>Controlling TeleMetrum Over The Radio Link</subtitle>
-    <para>
-      One of the unique features of the Altos Metrum environment is
-      the ability to create a two way command link between TeleDongle
-      and TeleMetrum using the digital radio transceivers built into
-      each device. This allows you to interact with TeleMetrum from
-      afar, as if it were directly connected to the computer.
-    </para>
-    <para>
-      Any operation which can be performed with TeleMetrum
-      can either be done with TeleMetrum directly connected to
-      the computer via the USB cable, or through the packet
-      link. Simply select the appropriate TeleDongle device when
-      the list of devices is presented and AltosUI will use packet
-      command mode.
-    </para>
-    <itemizedlist>
-      <listitem>
-       <para>
-         Save Flight Data—Recover flight data from the rocket without
-         opening it up.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-         Configure TeleMetrum—Reset apogee delays or main deploy
-         heights to respond to changing launch conditions. You can
-         also 'reboot' the TeleMetrum device. Use this to remotely
-         enable the flight computer by turning TeleMetrum on while
-         horizontal, then once the airframe is oriented for launch,
-         you can reboot TeleMetrum and have it restart in pad mode
-         without having to climb the scary ladder.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-         Fire Igniters—Test your deployment charges without snaking
-         wires out through holes in the airframe. Simply assembly the
-         rocket as if for flight with the apogee and main charges
-         loaded, then remotely command TeleMetrum to fire the
-         igniters.
-       </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-      Packet command mode uses the same RF channels as telemetry
-      mode. Configure the desired TeleDongle channel using the
-      flight monitor window channel selector and then close that
-      window before performing the desired operation.
-    </para>
-    <para>
-      TeleMetrum only enables packet command mode in 'idle' mode, so
-      make sure you have TeleMetrum lying horizontally when you turn
-      it on. Otherwise, TeleMetrum will start in 'pad' mode ready for
-      flight and will not be listening for command packets from TeleDongle.
-    </para>
-    <para>
-      When packet command mode is enabled, you can monitor the link
-      by watching the lights on the TeleDongle and TeleMetrum
-      devices. The red LED will flash each time TeleDongle or
-      TeleMetrum transmit a packet while the green LED will light up
-      on TeleDongle while it is waiting to receive a packet from
-      TeleMetrum.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Monitor Flight</title>
-    <subtitle>Receive, Record and Display Telemetry Data</subtitle>
-    <para>
-      Selecting this item brings up a dialog box listing all of the
-      connected TeleDongle devices. When you choose one of these,
-      AltosUI will create a window to display telemetry data as
-      received by the selected TeleDongle device.
-    </para>
-    <para>
-      All telemetry data received are automatically recorded in
-      suitable log files. The name of the files includes the current
-      date and rocket serial and flight numbers.
-    </para>
-    <para>
-      The radio channel being monitored by the TeleDongle device is
-      displayed at the top of the window. You can configure the
-      channel by clicking on the channel box and selecting the desired
-      channel. AltosUI remembers the last channel selected for each
-      TeleDongle and selects that automatically the next time you use
-      that device.
-    </para>
-    <para>
-      Below the TeleDongle channel selector, the window contains a few
-      significant pieces of information about the TeleMetrum providing
-      the telemetry data stream:
-    </para>
-    <itemizedlist>
-      <listitem>
-       <para>The TeleMetrum callsign</para>
-      </listitem>
-      <listitem>
-       <para>The TeleMetrum serial number</para>
-      </listitem>
-      <listitem>
-       <para>The flight number. Each TeleMetrum remembers how many
-       times it has flown.</para>
-      </listitem>
-      <listitem>
-       <para>
-         The rocket flight state. Each flight passes through several
-         states including Pad, Boost, Fast, Coast, Drogue, Main and
-         Landed.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-         The Received Signal Strength Indicator value. This lets
-         you know how strong a signal TeleDongle is receiving. The
-         radio inside TeleDongle operates down to about -99dBm;
-         weaker signals may not be receiveable. The packet link uses
-         error correction and detection techniques which prevent
-         incorrect data from being reported.
-       </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-      Finally, the largest portion of the window contains a set of
-      tabs, each of which contain some information about the rocket.
-      They're arranged in 'flight order' so that as the flight
-      progresses, the selected tab automatically switches to display
-      data relevant to the current state of the flight. You can select
-      other tabs at any time. The final 'table' tab contains all of
-      the telemetry data in one place.
-    </para>
-    <section>
-      <title>Launch Pad</title>
-      <para>
-       The 'Launch 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:
-       <itemizedlist>
-         <listitem>
-           <para>
-             Battery Voltage. This indicates whether the LiPo battery
-             powering the TeleMetrum has sufficient charge to last for
-             the duration of the flight. A value of more than
-             3.7V is required for a 'GO' status.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Apogee Igniter Voltage. 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 LiPo battery voltage. A value greater than 3.2V is
-             required for a 'GO' status.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Main Igniter Voltage. 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 LiPo battery voltage. A value greater than 3.2V is
-             required for a 'GO' status.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             GPS Locked. 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>
-         <listitem>
-           <para>
-             GPS Ready. 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>
-       </itemizedlist>
-       <para>
-         The LaunchPad tab also shows the computed launch pad position
-         and altitude, averaging many reported positions to improve the
-         accuracy of the fix.
-       </para>
-      </para>
-    </section>
-    <section>
-      <title>Ascent</title>
-      <para>
-       This tab is shown during Boost, Fast and Coast
-       phases. The information displayed here helps monitor the
-       rocket as it heads towards apogee.
-      </para>
-      <para>
-       The height, speed and acceleration are shown along with the
-       maxium values for each of them. This allows you to quickly
-       answer the most commonly asked questions you'll hear during
-       flight.
-      </para>
-      <para>
-       The current latitude and longitude reported by the GPS are
-       also shown. Note that under high acceleration, these values
-       may not get updated as the GPS receiver loses position
-       fix. Once the rocket starts coasting, the receiver should
-       start reporting position again.
-      </para>
-      <para>
-       Finally, the current igniter voltages are reported as in the
-       Launch Pad tab. This can help diagnose deployment failures
-       caused by wiring which comes loose under high acceleration.
-      </para>
-    </section>
-    <section>
-      <title>Descent</title>
-      <para>
-       Once the rocket has reached apogee and (we hope) activated the
-       apogee charge, attention switches to tracking the rocket on
-       the way back to the ground, and for dual-deploy flights,
-       waiting for the main charge to fire.
-      </para>
-      <para>
-       To monitor whether the apogee charge operated correctly, the
-       current descent rate is reported along with the current
-       height. Good descent rates generally range from 15-30m/s.
-      </para>
-      <para>
-       To help locate the rocket in the sky, use the elevation and
-       bearing information to figure out where to look. Elevation is
-       in degrees above the horizon. Bearing is reported in degrees
-       relative to true north. Range can help figure out how big the
-       rocket will appear. Note that all of these values are relative
-       to the pad location. If the elevation is near 90°, the rocket
-       is over the pad, not over you.
-      </para>
-      <para>
-       Finally, the igniter voltages are reported in this tab as
-       well, both to monitor the main charge as well as to see what
-       the status of the apogee charge is.
-      </para>
-    </section>
-    <section>
-      <title>Landed</title>
-      <para>
-       Once the rocket is on the ground, attention switches to
-       recovery. While the radio signal is generally lost once the
-       rocket is on the ground, the last reported GPS position is
-       generally within a short distance of the actual landing location.
-      </para>
-      <para>
-       The last reported GPS position is reported both by
-       latitude and longitude as well as a bearing and distance from
-       the launch pad. The distance should give you a good idea of
-       whether you'll want to walk or hitch a ride. Take the reported
-       latitude and longitude and enter them into your handheld GPS
-       unit and have that compute a track to the landing location.
-      </para>
-      <para>
-       Finally, the maximum height, speed and acceleration reported
-       during the flight are displayed for your admiring observers.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Save Flight Data</title>
-    <para>
-      TeleMetrum records flight data to its internal flash memory.
-      This data is recorded at a much higher rate than the telemetry
-      system can handle, and is not subject to radio drop-outs. As
-      such, it provides a more complete and precise record of the
-      flight. The 'Save Flight Data' button allows you to read the
-      flash memory and write it to disk.
-    </para>
-    <para>
-      Clicking on the 'Save Flight Data' button brings up a list of
-      connected TeleMetrum and TeleDongle devices. If you select a
-      TeleMetrum device, the flight data will be downloaded from that
-      device directly. If you select a TeleDongle device, flight data
-      will be downloaded from a TeleMetrum device connected via the
-      packet command link to the specified TeleDongle. See the chapter
-      on Packet Command Mode for more information about this.
-    </para>
-    <para>
-      The filename for the data is computed automatically from the recorded
-      flight date, TeleMetrum serial number and flight number
-      information.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Replay Flight</title>
-    <para>
-      Select this button and you are prompted to select a flight
-      record file, either a .telem file recording telemetry data or a
-      .eeprom file containing flight data saved from the TeleMetrum
-      flash memory.
-    </para>
-    <para>
-      Once a flight record is selected, the flight monitor interface
-      is displayed and the flight is re-enacted in real time. Check
-      the Monitor Flight chapter above to learn how this window operates.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Graph Data</title>
-    <para>
-      This section should be written by AJ.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Export Data</title>
-    <para>
-     This tool takes the raw data files and makes them available for
-     external analysis. When you select this button, you are prompted to select a flight
-      data file (either .eeprom or .telem will do, remember that
-      .eeprom files contain higher resolution and more continuous
-      data). Next, a second dialog appears which is used to select
-      where to write the resulting file. It has a selector to choose
-      between CSV and KML file formats.
-    </para>
-    <section>
-      <title>Comma Separated Value Format</title>
-      <para>
-       This is a text file containing the data in a form suitable for
-       import into a spreadsheet or other external data analysis
-       tool. The first few lines of the file contain the version and
-       configuration information from the TeleMetrum device, then
-       there is a single header line which labels all of the
-       fields. All of these lines start with a '#' character which
-       most tools can be configured to skip over.
-      </para>
-      <para>
-       The remaining lines of the file contain the data, with each
-       field separated by a comma and at least one space. All of
-       the sensor values are converted to standard units, with the
-       barometric data reported in both pressure, altitude and
-       height above pad units.
-      </para>
-    </section>
-    <section>
-      <title>Keyhole Markup Language (for Google Earth)</title>
-      <para>
-       This is the format used by
-       Googleearth to provide an overlay within that
-       application. With this, you can use Googleearth to see the
-       whole flight path in 3D.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Configure TeleMetrum</title>
-    <para>
-      Select this button and then select either a TeleMetrum or
-      TeleDongle Device from the list provided. Selecting a TeleDongle
-      device will use Packet Comamnd Mode to configure remote
-      TeleMetrum device. Learn how to use this in the Packet Command
-      Mode chapter.
-    </para>
-    <para>
-      The first few lines of the dialog provide information about the
-      connected TeleMetrum device, including the product name,
-      software version and hardware serial number. Below that are the
-      individual configuration entries.
-    </para>
-    <para>
-      At the bottom of the dialog, there are four buttons:
-    </para>
-    <itemizedlist>
-      <listitem>
-       <para>
-         Save. This writes any changes to the TeleMetrum
-         configuration parameter block in flash memory. If you don't
-         press this button, any changes you make will be lost.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-         Reset. This resets the dialog to the most recently saved values,
-         erasing any changes you have made.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-         Reboot. This reboots the TeleMetrum device. Use this to
-         switch from idle to pad mode by rebooting once the rocket is
-         oriented for flight.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-         Close. This closes the dialog. Any unsaved changes will be
-         lost.
-       </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-      The rest of the dialog contains the parameters to be configured.
-    </para>
-    <section>
-      <title>Main Deploy Altitude</title>
-      <para>
-       This sets the altitude (above the recorded pad altitude) at
-       which the 'main' igniter will fire. The drop-down menu shows
-       some common values, but you can edit the text directly and
-       choose whatever you like. If the apogee charge fires below
-       this altitude, then the main charge will fire two seconds
-       after the apogee charge fires.
-      </para>
-    </section>
-    <section>
-      <title>Apogee Delay</title>
-      <para>
-       When flying redundant electronics, it's often important to
-       ensure that multiple apogee charges don't fire at precisely
-       the same time as that can overpressurize the apogee deployment
-       bay and cause a structural failure of the airframe. The Apogee
-       Delay parameter tells the flight computer to fire the apogee
-       charge a certain number of seconds after apogee has been
-       detected.
-      </para>
-    </section>
-    <section>
-      <title>Radio Channel</title>
-      <para>
-       This configures which of the 10 radio channels to use for both
-       telemetry and packet command mode. Note that if you set this
-       value via packet command mode, you will have to reconfigure
-       the TeleDongle channel before you will be able to use packet
-       command mode again.
-      </para>
-    </section>
-    <section>
-      <title>Radio Calibration</title>
-      <para>
-       The radios in every Altus Metrum device are calibrated at the
-       factory to ensure that they transmit and receive on the
-       specified frequency for each channel. You can adjust that
-       calibration by changing this value. To change the TeleDongle's
-       calibration, you must reprogram the unit completely.
-      </para>
-    </section>
-    <section>
-      <title>Callsign</title>
-      <para>
-       This sets the callsign included in each telemetry packet. Set this
-       as needed to conform to your local radio regulations.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Configure AltosUI</title>
-    <para>
-      This button presents a dialog so that you can configure the AltosUI global settings.
-    </para>
-    <section>
-      <title>Voice Settings</title>
-      <para>
-       AltosUI provides voice annoucements during flight so that you
-       can keep your eyes on the sky and still get information about
-       the current flight status. However, sometimes you don't want
-       to hear them.
-      </para>
-      <itemizedlist>
-       <listitem>
-         <para>Enable—turns all voice announcements on and off</para>
-       </listitem>
-       <listitem>
-         <para>
-           Test Voice—Plays a short message allowing you to verify
-           that the audio systme is working and the volume settings
-           are reasonable
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>Log Directory</title>
-      <para>
-       AltosUI logs all telemetry data and saves all TeleMetrum flash
-       data to this directory. This directory is also used as the
-       staring point when selecting data files for display or export.
-      </para>
-      <para>
-       Click on the directory name to bring up a directory choosing
-       dialog, select a new directory and click 'Select Directory' to
-       change where AltosUI reads and writes data files.
-      </para>
-    </section>
-    <section>
-      <title>Callsign</title>
-      <para>
-       This value is used in command packet mode and is transmitted
-       in each packet sent from TeleDongle and received from
-       TeleMetrum. It is not used in telemetry mode as that transmits
-       packets only from TeleMetrum to TeleDongle. Configure this
-       with the AltosUI operators callsign as needed to comply with
-       your local radio regulations.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Flash Image</title>
-    <para>
-      This reprograms any Altus Metrum device by using a TeleMetrum or
-      TeleDongle as a programming dongle. Please read the directions
-      for connecting the programming cable in the main TeleMetrum
-      manual before reading these instructions.
-    </para>
-    <para>
-      Once you have the programmer and target devices connected,
-      push the 'Flash Image' button. That will present a dialog box
-      listing all of the connected devices. Carefully select the
-      programmer device, not the device to be programmed.
-    </para>
-    <para>
-      Next, select the image to flash to the device. These are named
-      with the product name and firmware version. The file selector
-      will start in the directory containing the firmware included
-      with the AltosUI package. Navigate to the directory containing
-      the desired firmware if it isn't there.
-    </para>
-    <para>
-      Next, a small dialog containing the device serial number and
-      RF calibration values should appear. If these values are
-      incorrect (possibly due to a corrupted image in the device),
-      enter the correct values here.
-    </para>
-    <para>
-      Finally, a dialog containing a progress bar will follow the
-      programming process.
-    </para>
-    <para>
-      When programming is complete, the target device will
-      reboot. Note that if the target device is connected via USB, you
-      will have to unplug it and then plug it back in for the USB
-      connection to reset so that you can communicate with the device
-      again.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Fire Igniter</title>
-    <para>
-    </para>
-  </chapter>
-</book>
\ No newline at end of file
index b7963aecb880aeb1aaeb61da2442a9d6752c62d0..6be23e7f0c736502bcd088a2d595330fc4c34bce 100644 (file)
       </para>
     </legalnotice>
     <revhistory>
+      <revision>
+        <revnumber>0.3</revnumber>
+        <date>23 November 2010</date>
+        <revremark>New section on AltosUI mostly by Keith</revremark>
+      </revision>
       <revision>
         <revnumber>0.2</revnumber>
         <date>18 July 2010</date>
       When you have successfully installed the software suite (either from 
       compiled source code or as the pre-built Debian package) you will 
       have 10 or so executable programs all of which have names beginning 
-       with 'ao-'.
+      with 'ao-'.
       ('ao-view' is the lone GUI-based program, the rest are command-line 
       oriented.) You will also have man pages, that give you basic info 
-       on each program.
+      on each program.
       You will also get this documentation in two file types in the doc/ 
-directory, telemetrum-doc.pdf and telemetrum-doc.html.
+      directory, telemetrum-doc.pdf and telemetrum-doc.html.
       Finally you will have a couple control files that allow the ao-view 
       GUI-based program to appear in your menu of programs (under 
       the 'Internet' category). 
@@ -133,7 +138,7 @@ directory, telemetrum-doc.pdf and telemetrum-doc.html.
       with using USB ports. The first thing you should try after getting 
       both units plugged into to your computer's usb port(s) is to run 
       'ao-list' from a terminal-window to see what port-device-name each 
-       device has been assigned by the operating system. 
+      device has been assigned by the operating system. 
       You will need this information to access the devices via their 
       respective on-board firmware and data using other command line
       programs in the AltOS software suite.
@@ -158,7 +163,7 @@ directory, telemetrum-doc.pdf and telemetrum-doc.html.
     <para>
       Both TeleMetrum and TeleDongle share the concept of a two level 
       command set in their firmware.  
-       The first layer has several single letter commands. Once 
+      The first layer has several single letter commands. Once 
       you are using 'cu' (or 'cutecom') sending (typing) a '?' 
       returns a full list of these
       commands. The second level are configuration sub-commands accessed 
@@ -177,7 +182,7 @@ directory, telemetrum-doc.pdf and telemetrum-doc.html.
       use 'N0CALL' which is cute, but not exactly legal!
       Spend a few minutes getting comfortable with the units, their 
       firmware, and 'cu' (or possibly 'cutecom').
-       For instance, try to send 
+      For instance, try to send 
       (type) a 'c r 2' and verify the channel change by sending a 'c s'. 
       Verify you can connect and disconnect from the units while in your
       terminal program by sending the escape-disconnect mentioned above.
@@ -250,7 +255,7 @@ directory, telemetrum-doc.pdf and telemetrum-doc.html.
       As for ao-view.... some things are in the menu but don't do anything 
       very useful.  The developers have stopped working on ao-view to focus
       on a new, cross-platform ground station program.  So ao-view may or 
-       may not be updated in the future.  Mostly you just use 
+      may not be updated in the future.  Mostly you just use 
       the Log and Device menus.  It has a wonderful display of the incoming 
       flight data and I am sure you will enjoy what it has to say to you 
       once you enable the voice output!
@@ -299,611 +304,1171 @@ directory, telemetrum-doc.pdf and telemetrum-doc.html.
         Live telemetry is written to file(s) whenever 'ao-view' is connected 
         to the TeleDongle.  The file area defaults to ~/altos
         but is easily changed using the menus in 'ao-view'. The files that 
-       are written end in '.telem'. The after-flight
+        are written end in '.telem'. The after-flight
         data-dumped files will end in .eeprom and represent continuous data 
         unlike the rf-linked .telem files that are subject to the 
         turnarounds/data-packaging time slots in the half-duplex rf data path. 
         See the above instructions on what and how to save the eeprom stored 
         data after physically retrieving your TeleMetrum.  Make sure to save
-       the on-board data after each flight, as the current firmware will
-       over-write any previous flight data during a new flight.
+        the on-board data after each flight, as the current firmware will
+        over-write any previous flight data during a new flight.
+      </para>
+    </section>
+  </chapter>
+  <chapter>
+    <title>Specifications</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          Recording altimeter for model rocketry.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Supports dual deployment (can fire 2 ejection charges).
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          70cm ham-band transceiver for telemetry downlink.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Barometric pressure sensor good to 45k feet MSL.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          1-axis high-g accelerometer for motor characterization, capable of 
+          +/- 50g using default part.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          On-board, integrated GPS receiver with 5hz update rate capability.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          On-board 1 megabyte non-volatile memory for flight data storage.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          USB interface for battery charging, configuration, and data recovery.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Fully integrated support for LiPo rechargeable batteries.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Uses LiPo to fire e-matches, support for optional separate pyro 
+          battery if needed.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          2.75 x 1 inch board designed to fit inside 29mm airframe coupler tube.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </chapter>
+  <chapter>
+    <title>Handling Precautions</title>
+    <para>
+      TeleMetrum is a sophisticated electronic device.  When handled gently and
+      properly installed in an airframe, it will deliver impressive results.
+      However, like all electronic devices, there are some precautions you
+      must take.
+    </para>
+    <para>
+      The Lithium Polymer rechargeable batteries used with TeleMetrum have an 
+      extraordinary power density.  This is great because we can fly with
+      much less battery mass than if we used alkaline batteries or previous
+      generation rechargeable batteries... but if they are punctured 
+      or their leads are allowed to short, they can and will release their 
+      energy very rapidly!
+      Thus we recommend that you take some care when handling our batteries 
+      and consider giving them some extra protection in your airframe.  We 
+      often wrap them in suitable scraps of closed-cell packing foam before 
+      strapping them down, for example.
+    </para>
+    <para>
+      The TeleMetrum barometric sensor is sensitive to sunlight.  In normal 
+      mounting situations, it and all of the other surface mount components 
+      are "down" towards whatever the underlying mounting surface is, so
+      this is not normally a problem.  Please consider this, though, when
+      designing an installation, for example, in a 29mm airframe with a 
+      see-through plastic payload bay.
+    </para>
+    <para>
+      The TeleMetrum barometric sensor sampling port must be able to 
+      "breathe",
+      both by not being covered by foam or tape or other materials that might
+      directly block the hole on the top of the sensor, but also by having a
+      suitable static vent to outside air.  
+    </para>
+    <para>
+      As with all other rocketry electronics, TeleMetrum must be protected 
+      from exposure to corrosive motor exhaust and ejection charge gasses.
+    </para>
+  </chapter>
+  <chapter>
+    <title>Hardware Overview</title>
+    <para>
+      TeleMetrum is a 1 inch by 2.75 inch circuit board.  It was designed to
+      fit inside coupler for 29mm airframe tubing, but using it in a tube that
+      small in diameter may require some creativity in mounting and wiring 
+      to succeed!  The default 1/4
+      wave UHF wire antenna attached to the center of the nose-cone end of
+      the board is about 7 inches long, and wiring for a power switch and
+      the e-matches for apogee and main ejection charges depart from the 
+      fin can end of the board.  Given all this, an ideal "simple" avionics 
+      bay for TeleMetrum should have at least 10 inches of interior length.
+    </para>
+    <para>
+      A typical TeleMetrum installation using the on-board GPS antenna and
+      default wire UHF antenna involves attaching only a suitable
+      Lithium Polymer battery, a single pole switch for power on/off, and 
+      two pairs of wires connecting e-matches for the apogee and main ejection
+      charges.  
+    </para>
+    <para>
+      By default, we use the unregulated output of the LiPo battery directly
+      to fire ejection charges.  This works marvelously with standard 
+      low-current e-matches like the J-Tek from MJG Technologies, and with 
+      Quest Q2G2 igniters.  However, if you
+      want or need to use a separate pyro battery, you can do so by adding
+      a second 2mm connector to position B2 on the board and cutting the
+      thick pcb trace connecting the LiPo battery to the pyro circuit between
+      the two silk screen marks on the surface mount side of the board shown
+      here [insert photo]
+    </para>
+    <para>
+      We offer two choices of pyro and power switch connector, or you can 
+      choose neither and solder wires directly to the board.  All three choices
+      are reasonable depending on the constraints of your airframe.  Our
+      favorite option when there is sufficient room above the board is to use
+      the Tyco pin header with polarization and locking.  If you choose this
+      option, you crimp individual wires for the power switch and e-matches
+      into a mating connector, and installing and removing the TeleMetrum
+      board from an airframe is as easy as plugging or unplugging two 
+      connectors.  If the airframe will not support this much height or if
+      you want to be able to directly attach e-match leads to the board, we
+      offer a screw terminal block.  This is very similar to what most other
+      altimeter vendors provide and so may be the most familiar option.  
+      You'll need a very small straight blade screwdriver to connect
+      and disconnect the board in this case, such as you might find in a
+      jeweler's screwdriver set.  Finally, you can forego both options and
+      solder wires directly to the board, which may be the best choice for
+      minimum diameter and/or minimum mass designs. 
+    </para>
+    <para>
+      For most airframes, the integrated GPS antenna and wire UHF antenna are
+      a great combination.  However, if you are installing in a carbon-fiber
+      electronics bay which is opaque to RF signals, you may need to use 
+      off-board external antennas instead.  In this case, you can order
+      TeleMetrum with an SMA connector for the UHF antenna connection, and
+      you can unplug the integrated GPS antenna and select an appropriate 
+      off-board GPS antenna with cable terminating in a U.FL connector.
+    </para>
+  </chapter>
+  <chapter>
+    <title>System Operation</title>
+    <section>
+      <title>Firmware Modes </title>
+      <para>
+        The AltOS firmware build for TeleMetrum has two fundamental modes,
+        "idle" and "flight".  Which of these modes the firmware operates in
+        is determined by the orientation of the rocket (well, actually the
+        board, of course...) at the time power is switched on.  If the rocket
+        is "nose up", then TeleMetrum assumes it's on a rail or rod being
+        prepared for launch, so the firmware chooses flight mode.  However,
+        if the rocket is more or less horizontal, the firmware instead enters
+        idle mode.
+      </para>
+      <para>
+        At power on, you will hear three beeps 
+        ("S" in Morse code for startup) and then a pause while 
+        TeleMetrum completes initialization and self tests, and decides which
+        mode to enter next.
+      </para>
+      <para>
+        In flight or "pad" mode, TeleMetrum turns on the GPS system, 
+        engages the flight
+        state machine, goes into transmit-only mode on the RF link sending 
+        telemetry, and waits for launch to be detected.  Flight mode is
+        indicated by an audible "di-dah-dah-dit" ("P" for pad) on the 
+        beeper, followed by
+        beeps indicating the state of the pyrotechnic igniter continuity.
+        One beep indicates apogee continuity, two beeps indicate
+        main continuity, three beeps indicate both apogee and main continuity,
+        and one longer "brap" sound indicates no continuity.  For a dual
+        deploy flight, make sure you're getting three beeps before launching!
+        For apogee-only or motor eject flights, do what makes sense.
+      </para>
+      <para>
+        In idle mode, you will hear an audible "di-dit" ("I" for idle), and
+        the normal flight state machine is disengaged, thus
+        no ejection charges will fire.  TeleMetrum also listens on the RF
+        link when in idle mode for packet mode requests sent from TeleDongle.
+        Commands can be issued to a TeleMetrum in idle mode over either
+        USB or the RF link equivalently.
+        Idle mode is useful for configuring TeleMetrum, for extracting data 
+        from the on-board storage chip after flight, and for ground testing
+        pyro charges.
+      </para>
+      <para>
+        One "neat trick" of particular value when TeleMetrum is used with very
+        large airframes, is that you can power the board up while the rocket
+        is horizontal, such that it comes up in idle mode.  Then you can 
+        raise the airframe to launch position, use a TeleDongle to open
+        a packet connection, and issue a 'reset' command which will cause
+        TeleMetrum to reboot, realize it's now nose-up, and thus choose
+        flight mode.  This is much safer than standing on the top step of a
+        rickety step-ladder or hanging off the side of a launch tower with
+        a screw-driver trying to turn on your avionics before installing
+        igniters!
+      </para>
+    </section>
+    <section>
+      <title>GPS </title>
+      <para>
+        TeleMetrum includes a complete GPS receiver.  See a later section for
+        a brief explanation of how GPS works that will help you understand
+        the information in the telemetry stream.  The bottom line is that
+        the TeleMetrum GPS receiver needs to lock onto at least four 
+        satellites to obtain a solid 3 dimensional position fix and know 
+        what time it is!
+      </para>
+      <para>
+        TeleMetrum provides backup power to the GPS chip any time a LiPo
+        battery is connected.  This allows the receiver to "warm start" on
+        the launch rail much faster than if every power-on were a "cold start"
+        for the GPS receiver.  In typical operations, powering up TeleMetrum
+        on the flight line in idle mode while performing final airframe
+        preparation will be sufficient to allow the GPS receiver to cold
+        start and acquire lock.  Then the board can be powered down during
+        RSO review and installation on a launch rod or rail.  When the board
+        is turned back on, the GPS system should lock very quickly, typically
+        long before igniter installation and return to the flight line are
+        complete.
+      </para>
+    </section>
+    <section>
+      <title>Ground Testing </title>
+      <para>
+        An important aspect of preparing a rocket using electronic deployment
+        for flight is ground testing the recovery system.  Thanks
+        to the bi-directional RF link central to the Altus Metrum system, 
+        this can be accomplished in a TeleMetrum-equipped rocket without as
+        much work as you may be accustomed to with other systems.  It can
+        even be fun!
+      </para>
+      <para>
+        Just prep the rocket for flight, then power up TeleMetrum while the
+        airframe is horizontal.  This will cause the firmware to go into 
+        "idle" mode, in which the normal flight state machine is disabled and
+        charges will not fire without manual command.  Then, establish an
+        RF packet connection from a TeleDongle-equipped computer using the 
+        P command from a safe distance.  You can now command TeleMetrum to
+        fire the apogee or main charges to complete your testing.
+      </para>
+      <para>
+        In order to reduce the chance of accidental firing of pyrotechnic
+        charges, the command to fire a charge is intentionally somewhat
+        difficult to type, and the built-in help is slightly cryptic to 
+        prevent accidental echoing of characters from the help text back at
+        the board from firing a charge.  The command to fire the apogee
+        drogue charge is 'i DoIt drogue' and the command to fire the main
+        charge is 'i DoIt main'.
+      </para>
+    </section>
+    <section>
+      <title>Radio Link </title>
+      <para>
+        The chip our boards are based on incorporates an RF transceiver, but
+        it's not a full duplex system... each end can only be transmitting or
+        receiving at any given moment.  So we had to decide how to manage the
+        link.
+      </para>
+      <para>
+        By design, TeleMetrum firmware listens for an RF connection when
+        it's in "idle mode" (turned on while the rocket is horizontal), which
+        allows us to use the RF link to configure the rocket, do things like
+        ejection tests, and extract data after a flight without having to 
+        crack open the airframe.  However, when the board is in "flight 
+        mode" (turned on when the rocket is vertical) the TeleMetrum only 
+        transmits and doesn't listen at all.  That's because we want to put 
+        ultimate priority on event detection and getting telemetry out of 
+        the rocket and out over
+        the RF link in case the rocket crashes and we aren't able to extract
+        data later... 
+      </para>
+      <para>
+        We don't use a 'normal packet radio' mode because they're just too
+        inefficient.  The GFSK modulation we use is just FSK with the 
+        baseband pulses passed through a
+        Gaussian filter before they go into the modulator to limit the
+        transmitted bandwidth.  When combined with the hardware forward error
+        correction support in the cc1111 chip, this allows us to have a very
+        robust 38.4 kilobit data link with only 10 milliwatts of transmit power,
+        a whip antenna in the rocket, and a hand-held Yagi on the ground.  We've
+        had flights to above 21k feet AGL with good reception, and calculations
+        suggest we should be good to well over 40k feet AGL with a 5-element yagi on
+        the ground.  We hope to fly boards to higher altitudes soon, and would
+        of course appreciate customer feedback on performance in higher
+        altitude flights!
+      </para>
+    </section>
+    <section>
+      <title>Configurable Parameters</title>
+      <para>
+        Configuring a TeleMetrum board for flight is very simple.  Because we
+        have both acceleration and pressure sensors, there is no need to set
+        a "mach delay", for example.  The few configurable parameters can all
+        be set using a simple terminal program over the USB port or RF link
+        via TeleDongle.
+      </para>
+      <section>
+        <title>Radio Channel</title>
+        <para>
+          Our firmware supports 10 channels.  The default channel 0 corresponds
+          to a center frequency of 434.550 Mhz, and channels are spaced every 
+          100 khz.  Thus, channel 1 is 434.650 Mhz, and channel 9 is 435.550 Mhz.
+          At any given launch, we highly recommend coordinating who will use
+          each channel and when to avoid interference.  And of course, both 
+          TeleMetrum and TeleDongle must be configured to the same channel to
+          successfully communicate with each other.
+        </para>
+        <para>
+          To set the radio channel, use the 'c r' command, like 'c r 3' to set
+          channel 3.  
+          As with all 'c' sub-commands, follow this with a 'c w' to write the 
+          change to the parameter block in the on-board DataFlash chip on
+          your TeleMetrum board if you want the change to stay in place across reboots.
+        </para>
+      </section>
+      <section>
+        <title>Apogee Delay</title>
+        <para>
+          Apogee delay is the number of seconds after TeleMetrum detects flight
+          apogee that the drogue charge should be fired.  In most cases, this
+          should be left at the default of 0.  However, if you are flying
+          redundant electronics such as for an L3 certification, you may wish 
+          to set one of your altimeters to a positive delay so that both 
+          primary and backup pyrotechnic charges do not fire simultaneously.
+        </para>
+        <para>
+          To set the apogee delay, use the [FIXME] command.
+          As with all 'c' sub-commands, follow this with a 'c w' to write the 
+          change to the parameter block in the on-board DataFlash chip.
+        </para>
+        <para>
+          Please note that the TeleMetrum apogee detection algorithm always
+          fires a fraction of a second *after* apogee.  If you are also flying
+          an altimeter like the PerfectFlite MAWD, which only supports selecting
+          0 or 1 seconds of apogee delay, you may wish to set the MAWD to 0
+          seconds delay and set the TeleMetrum to fire your backup 2 or 3
+          seconds later to avoid any chance of both charges firing 
+          simultaneously.  We've flown several airframes this way quite happily,
+          including Keith's successful L3 cert.
         </para>
       </section>
-    </chapter>
-    <chapter>
-      <title>Specifications</title>
+      <section>
+        <title>Main Deployment Altitude</title>
+        <para>
+          By default, TeleMetrum will fire the main deployment charge at an
+          elevation of 250 meters (about 820 feet) above ground.  We think this
+          is a good elevation for most airframes, but feel free to change this 
+          to suit.  In particular, if you are flying two altimeters, you may
+          wish to set the
+          deployment elevation for the backup altimeter to be something lower
+          than the primary so that both pyrotechnic charges don't fire
+          simultaneously.
+        </para>
+        <para>
+          To set the main deployment altitude, use the [FIXME] command.
+          As with all 'c' sub-commands, follow this with a 'c w' to write the 
+          change to the parameter block in the on-board DataFlash chip.
+        </para>
+      </section>
+    </section>
+    <section>
+      <title>Calibration</title>
+      <para>
+        There are only two calibrations required for a TeleMetrum board, and
+        only one for TeleDongle.
+      </para>
+      <section>
+        <title>Radio Frequency</title>
+        <para>
+          The radio frequency is synthesized from a clock based on the 48 Mhz
+          crystal on the board.  The actual frequency of this oscillator must be
+          measured to generate a calibration constant.  While our GFSK modulation
+          bandwidth is wide enough to allow boards to communicate even when 
+          their oscillators are not on exactly the same frequency, performance
+          is best when they are closely matched.
+          Radio frequency calibration requires a calibrated frequency counter.
+          Fortunately, once set, the variation in frequency due to aging and
+          temperature changes is small enough that re-calibration by customers
+          should generally not be required.
+        </para>
+        <para>
+          To calibrate the radio frequency, connect the UHF antenna port to a
+          frequency counter, set the board to channel 0, and use the 'C' 
+          command to generate a CW carrier.  Wait for the transmitter temperature
+          to stabilize and the frequency to settle down.  
+          Then, divide 434.550 Mhz by the 
+          measured frequency and multiply by the current radio cal value show
+          in the 'c s' command.  For an unprogrammed board, the default value
+          is 1186611.  Take the resulting integer and program it using the 'c f'
+          command.  Testing with the 'C' command again should show a carrier
+          within a few tens of Hertz of the intended frequency.
+          As with all 'c' sub-commands, follow this with a 'c w' to write the 
+          change to the parameter block in the on-board DataFlash chip.
+        </para>
+      </section>
+      <section>
+        <title>Accelerometer</title>
+        <para>
+          The accelerometer we use has its own 5 volt power supply and
+          the output must be passed through a resistive voltage divider to match
+          the input of our 3.3 volt ADC.  This means that unlike the barometric
+          sensor, the output of the acceleration sensor is not ratiometric to 
+          the ADC converter, and calibration is required.  We also support the 
+          use of any of several accelerometers from a Freescale family that 
+          includes at least +/- 40g, 50g, 100g, and 200g parts.  Using gravity,
+          a simple 2-point calibration yields acceptable results capturing both
+          the different sensitivities and ranges of the different accelerometer
+          parts and any variation in power supply voltages or resistor values
+          in the divider network.
+        </para>
+        <para>
+          To calibrate the acceleration sensor, use the 'c a 0' command.  You
+          will be prompted to orient the board vertically with the UHF antenna
+          up and press a key, then to orient the board vertically with the 
+          UHF antenna down and press a key.
+          As with all 'c' sub-commands, follow this with a 'c w' to write the 
+          change to the parameter block in the on-board DataFlash chip.
+        </para>
+        <para>
+          The +1g and -1g calibration points are included in each telemetry
+          frame and are part of the header extracted by ao-dumplog after flight.
+          Note that we always store and return raw ADC samples for each
+          sensor... nothing is permanently "lost" or "damaged" if the 
+          calibration is poor.
+        </para>
+      </section>
+    </section>
+  </chapter>
+  <chapter>
+    
+    <title>AltosUI</title>
+    <para>
+      The AltosUI program provides a graphical user interface for
+      interacting with the Altus Metrum product family, including
+      TeleMetrum and TeleDongle. AltosUI can monitor telemetry data,
+      configure TeleMetrum and TeleDongle devices and many other
+      tasks. The primary interface window provides a selection of
+      buttons, one for each major activity in the system.  This manual
+      is split into chapters, each of which documents one of the tasks
+      provided from the top-level toolbar.
+    </para>
+    <section>
+      <title>Packet Command Mode</title>
+      <subtitle>Controlling TeleMetrum Over The Radio Link</subtitle>
+      <para>
+        One of the unique features of the Altos Metrum environment is
+        the ability to create a two way command link between TeleDongle
+        and TeleMetrum using the digital radio transceivers built into
+        each device. This allows you to interact with TeleMetrum from
+        afar, as if it were directly connected to the computer.
+      </para>
+      <para>
+        Any operation which can be performed with TeleMetrum
+        can either be done with TeleMetrum directly connected to
+        the computer via the USB cable, or through the packet
+        link. Simply select the appropriate TeleDongle device when
+        the list of devices is presented and AltosUI will use packet
+        command mode.
+      </para>
       <itemizedlist>
         <listitem>
           <para>
-            Recording altimeter for model rocketry.
+            Save Flight Data—Recover flight data from the rocket without
+            opening it up.
           </para>
         </listitem>
         <listitem>
           <para>
-            Supports dual deployment (can fire 2 ejection charges).
+            Configure TeleMetrum—Reset apogee delays or main deploy
+            heights to respond to changing launch conditions. You can
+            also 'reboot' the TeleMetrum device. Use this to remotely
+            enable the flight computer by turning TeleMetrum on while
+            horizontal, then once the airframe is oriented for launch,
+            you can reboot TeleMetrum and have it restart in pad mode
+            without having to climb the scary ladder.
           </para>
         </listitem>
         <listitem>
           <para>
-            70cm ham-band transceiver for telemetry downlink.
+            Fire Igniters—Test your deployment charges without snaking
+            wires out through holes in the airframe. Simply assembly the
+            rocket as if for flight with the apogee and main charges
+            loaded, then remotely command TeleMetrum to fire the
+            igniters.
           </para>
         </listitem>
+      </itemizedlist>
+      <para>
+        Packet command mode uses the same RF channels as telemetry
+        mode. Configure the desired TeleDongle channel using the
+        flight monitor window channel selector and then close that
+        window before performing the desired operation.
+      </para>
+      <para>
+        TeleMetrum only enables packet command mode in 'idle' mode, so
+        make sure you have TeleMetrum lying horizontally when you turn
+        it on. Otherwise, TeleMetrum will start in 'pad' mode ready for
+        flight and will not be listening for command packets from TeleDongle.
+      </para>
+      <para>
+        When packet command mode is enabled, you can monitor the link
+        by watching the lights on the TeleDongle and TeleMetrum
+        devices. The red LED will flash each time TeleDongle or
+        TeleMetrum transmit a packet while the green LED will light up
+        on TeleDongle while it is waiting to receive a packet from
+        TeleMetrum.
+      </para>
+    </section>
+    <section>
+      <title>Monitor Flight</title>
+      <subtitle>Receive, Record and Display Telemetry Data</subtitle>
+      <para>
+        Selecting this item brings up a dialog box listing all of the
+        connected TeleDongle devices. When you choose one of these,
+        AltosUI will create a window to display telemetry data as
+        received by the selected TeleDongle device.
+      </para>
+      <para>
+        All telemetry data received are automatically recorded in
+        suitable log files. The name of the files includes the current
+        date and rocket serial and flight numbers.
+      </para>
+      <para>
+        The radio channel being monitored by the TeleDongle device is
+        displayed at the top of the window. You can configure the
+        channel by clicking on the channel box and selecting the desired
+        channel. AltosUI remembers the last channel selected for each
+        TeleDongle and selects that automatically the next time you use
+        that device.
+      </para>
+      <para>
+        Below the TeleDongle channel selector, the window contains a few
+        significant pieces of information about the TeleMetrum providing
+        the telemetry data stream:
+      </para>
+      <itemizedlist>
         <listitem>
-          <para>
-            Barometric pressure sensor good to 45k feet MSL.
-          </para>
+          <para>The TeleMetrum callsign</para>
         </listitem>
         <listitem>
-          <para>
-            1-axis high-g accelerometer for motor characterization, capable of 
-            +/- 50g using default part.
+          <para>The TeleMetrum serial number</para>
+        </listitem>
+        <listitem>
+          <para>The flight number. Each TeleMetrum remembers how many
+            times it has flown.
           </para>
         </listitem>
         <listitem>
           <para>
-            On-board, integrated GPS receiver with 5hz update rate capability.
+            The rocket flight state. Each flight passes through several
+            states including Pad, Boost, Fast, Coast, Drogue, Main and
+            Landed.
           </para>
         </listitem>
         <listitem>
           <para>
-            On-board 1 megabyte non-volatile memory for flight data storage.
+            The Received Signal Strength Indicator value. This lets
+            you know how strong a signal TeleDongle is receiving. The
+            radio inside TeleDongle operates down to about -99dBm;
+            weaker signals may not be receiveable. The packet link uses
+            error correction and detection techniques which prevent
+            incorrect data from being reported.
           </para>
         </listitem>
+      </itemizedlist>
+      <para>
+        Finally, the largest portion of the window contains a set of
+        tabs, each of which contain some information about the rocket.
+        They're arranged in 'flight order' so that as the flight
+        progresses, the selected tab automatically switches to display
+        data relevant to the current state of the flight. You can select
+        other tabs at any time. The final 'table' tab contains all of
+        the telemetry data in one place.
+      </para>
+      <section>
+        <title>Launch Pad</title>
+        <para>
+          The 'Launch 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:
+          <itemizedlist>
+            <listitem>
+              <para>
+                Battery Voltage. This indicates whether the LiPo battery
+                powering the TeleMetrum has sufficient charge to last for
+                the duration of the flight. A value of more than
+                3.7V is required for a 'GO' status.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                Apogee Igniter Voltage. 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 LiPo battery voltage. A value greater than 3.2V is
+                required for a 'GO' status.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                Main Igniter Voltage. 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 LiPo battery voltage. A value greater than 3.2V is
+                required for a 'GO' status.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                GPS Locked. 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>
+            <listitem>
+              <para>
+                GPS Ready. 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>
+          </itemizedlist>
+          <para>
+            The LaunchPad tab also shows the computed launch pad position
+            and altitude, averaging many reported positions to improve the
+            accuracy of the fix.
+          </para>
+        </para>
+      </section>
+      <section>
+        <title>Ascent</title>
+        <para>
+          This tab is shown during Boost, Fast and Coast
+          phases. The information displayed here helps monitor the
+          rocket as it heads towards apogee.
+        </para>
+        <para>
+          The height, speed and acceleration are shown along with the
+          maxium values for each of them. This allows you to quickly
+          answer the most commonly asked questions you'll hear during
+          flight.
+        </para>
+        <para>
+          The current latitude and longitude reported by the GPS are
+          also shown. Note that under high acceleration, these values
+          may not get updated as the GPS receiver loses position
+          fix. Once the rocket starts coasting, the receiver should
+          start reporting position again.
+        </para>
+        <para>
+          Finally, the current igniter voltages are reported as in the
+          Launch Pad tab. This can help diagnose deployment failures
+          caused by wiring which comes loose under high acceleration.
+        </para>
+      </section>
+      <section>
+        <title>Descent</title>
+        <para>
+          Once the rocket has reached apogee and (we hope) activated the
+          apogee charge, attention switches to tracking the rocket on
+          the way back to the ground, and for dual-deploy flights,
+          waiting for the main charge to fire.
+        </para>
+        <para>
+          To monitor whether the apogee charge operated correctly, the
+          current descent rate is reported along with the current
+          height. Good descent rates generally range from 15-30m/s.
+        </para>
+        <para>
+          To help locate the rocket in the sky, use the elevation and
+          bearing information to figure out where to look. Elevation is
+          in degrees above the horizon. Bearing is reported in degrees
+          relative to true north. Range can help figure out how big the
+          rocket will appear. Note that all of these values are relative
+          to the pad location. If the elevation is near 90°, the rocket
+          is over the pad, not over you.
+        </para>
+        <para>
+          Finally, the igniter voltages are reported in this tab as
+          well, both to monitor the main charge as well as to see what
+          the status of the apogee charge is.
+        </para>
+      </section>
+      <section>
+        <title>Landed</title>
+        <para>
+          Once the rocket is on the ground, attention switches to
+          recovery. While the radio signal is generally lost once the
+          rocket is on the ground, the last reported GPS position is
+          generally within a short distance of the actual landing location.
+        </para>
+        <para>
+          The last reported GPS position is reported both by
+          latitude and longitude as well as a bearing and distance from
+          the launch pad. The distance should give you a good idea of
+          whether you'll want to walk or hitch a ride. Take the reported
+          latitude and longitude and enter them into your handheld GPS
+          unit and have that compute a track to the landing location.
+        </para>
+        <para>
+          Finally, the maximum height, speed and acceleration reported
+          during the flight are displayed for your admiring observers.
+        </para>
+      </section>
+    </section>
+    <section>
+      <title>Save Flight Data</title>
+      <para>
+        TeleMetrum records flight data to its internal flash memory.
+        This data is recorded at a much higher rate than the telemetry
+        system can handle, and is not subject to radio drop-outs. As
+        such, it provides a more complete and precise record of the
+        flight. The 'Save Flight Data' button allows you to read the
+        flash memory and write it to disk.
+      </para>
+      <para>
+        Clicking on the 'Save Flight Data' button brings up a list of
+        connected TeleMetrum and TeleDongle devices. If you select a
+        TeleMetrum device, the flight data will be downloaded from that
+        device directly. If you select a TeleDongle device, flight data
+        will be downloaded from a TeleMetrum device connected via the
+        packet command link to the specified TeleDongle. See the chapter
+        on Packet Command Mode for more information about this.
+      </para>
+      <para>
+        The filename for the data is computed automatically from the recorded
+        flight date, TeleMetrum serial number and flight number
+        information.
+      </para>
+    </section>
+    <section>
+      <title>Replay Flight</title>
+      <para>
+        Select this button and you are prompted to select a flight
+        record file, either a .telem file recording telemetry data or a
+        .eeprom file containing flight data saved from the TeleMetrum
+        flash memory.
+      </para>
+      <para>
+        Once a flight record is selected, the flight monitor interface
+        is displayed and the flight is re-enacted in real time. Check
+        the Monitor Flight chapter above to learn how this window operates.
+      </para>
+    </section>
+    <section>
+      <title>Graph Data</title>
+      <para>
+        This section should be written by AJ.
+      </para>
+    </section>
+    <section>
+      <title>Export Data</title>
+      <para>
+        This tool takes the raw data files and makes them available for
+        external analysis. When you select this button, you are prompted to select a flight
+        data file (either .eeprom or .telem will do, remember that
+        .eeprom files contain higher resolution and more continuous
+        data). Next, a second dialog appears which is used to select
+        where to write the resulting file. It has a selector to choose
+        between CSV and KML file formats.
+      </para>
+      <section>
+        <title>Comma Separated Value Format</title>
+        <para>
+          This is a text file containing the data in a form suitable for
+          import into a spreadsheet or other external data analysis
+          tool. The first few lines of the file contain the version and
+          configuration information from the TeleMetrum device, then
+          there is a single header line which labels all of the
+          fields. All of these lines start with a '#' character which
+          most tools can be configured to skip over.
+        </para>
+        <para>
+          The remaining lines of the file contain the data, with each
+          field separated by a comma and at least one space. All of
+          the sensor values are converted to standard units, with the
+          barometric data reported in both pressure, altitude and
+          height above pad units.
+        </para>
+      </section>
+      <section>
+        <title>Keyhole Markup Language (for Google Earth)</title>
+        <para>
+          This is the format used by
+          Googleearth to provide an overlay within that
+          application. With this, you can use Googleearth to see the
+          whole flight path in 3D.
+        </para>
+      </section>
+    </section>
+    <section>
+      <title>Configure TeleMetrum</title>
+      <para>
+        Select this button and then select either a TeleMetrum or
+        TeleDongle Device from the list provided. Selecting a TeleDongle
+        device will use Packet Comamnd Mode to configure remote
+        TeleMetrum device. Learn how to use this in the Packet Command
+        Mode chapter.
+      </para>
+      <para>
+        The first few lines of the dialog provide information about the
+        connected TeleMetrum device, including the product name,
+        software version and hardware serial number. Below that are the
+        individual configuration entries.
+      </para>
+      <para>
+        At the bottom of the dialog, there are four buttons:
+      </para>
+      <itemizedlist>
         <listitem>
           <para>
-            USB interface for battery charging, configuration, and data recovery.
+            Save. This writes any changes to the TeleMetrum
+            configuration parameter block in flash memory. If you don't
+            press this button, any changes you make will be lost.
           </para>
         </listitem>
         <listitem>
           <para>
-            Fully integrated support for LiPo rechargeable batteries.
+            Reset. This resets the dialog to the most recently saved values,
+            erasing any changes you have made.
           </para>
         </listitem>
         <listitem>
           <para>
-            Uses LiPo to fire e-matches, support for optional separate pyro 
-            battery if needed.
+            Reboot. This reboots the TeleMetrum device. Use this to
+            switch from idle to pad mode by rebooting once the rocket is
+            oriented for flight.
           </para>
         </listitem>
         <listitem>
           <para>
-            2.75 x 1 inch board designed to fit inside 29mm airframe coupler tube.
+            Close. This closes the dialog. Any unsaved changes will be
+            lost.
           </para>
         </listitem>
       </itemizedlist>
-    </chapter>
-    <chapter>
-      <title>Handling Precautions</title>
-      <para>
-        TeleMetrum is a sophisticated electronic device.  When handled gently and
-        properly installed in an airframe, it will deliver impressive results.
-        However, like all electronic devices, there are some precautions you
-        must take.
-      </para>
-      <para>
-        The Lithium Polymer rechargeable batteries used with TeleMetrum have an 
-        extraordinary power density.  This is great because we can fly with
-        much less battery mass than if we used alkaline batteries or previous
-        generation rechargeable batteries... but if they are punctured 
-        or their leads are allowed to short, they can and will release their 
-        energy very rapidly!
-        Thus we recommend that you take some care when handling our batteries 
-        and consider giving them some extra protection in your airframe.  We 
-        often wrap them in suitable scraps of closed-cell packing foam before 
-        strapping them down, for example.
-      </para>
-      <para>
-        The TeleMetrum barometric sensor is sensitive to sunlight.  In normal 
-        mounting situations, it and all of the other surface mount components 
-        are "down" towards whatever the underlying mounting surface is, so
-        this is not normally a problem.  Please consider this, though, when
-        designing an installation, for example, in a 29mm airframe with a 
-       see-through plastic payload bay.
-      </para>
-      <para>
-        The TeleMetrum barometric sensor sampling port must be able to 
-       "breathe",
-        both by not being covered by foam or tape or other materials that might
-        directly block the hole on the top of the sensor, but also by having a
-        suitable static vent to outside air.  
-      </para>
-      <para>
-        As with all other rocketry electronics, TeleMetrum must be protected 
-        from exposure to corrosive motor exhaust and ejection charge gasses.
-      </para>
-    </chapter>
-    <chapter>
-      <title>Hardware Overview</title>
-      <para>
-        TeleMetrum is a 1 inch by 2.75 inch circuit board.  It was designed to
-        fit inside coupler for 29mm airframe tubing, but using it in a tube that
-        small in diameter may require some creativity in mounting and wiring 
-        to succeed!  The default 1/4
-        wave UHF wire antenna attached to the center of the nose-cone end of
-        the board is about 7 inches long, and wiring for a power switch and
-        the e-matches for apogee and main ejection charges depart from the 
-        fin can end of the board.  Given all this, an ideal "simple" avionics 
-        bay for TeleMetrum should have at least 10 inches of interior length.
-      </para>
-      <para>
-        A typical TeleMetrum installation using the on-board GPS antenna and
-        default wire UHF antenna involves attaching only a suitable
-        Lithium Polymer battery, a single pole switch for power on/off, and 
-        two pairs of wires connecting e-matches for the apogee and main ejection
-        charges.  
-      </para>
-      <para>
-        By default, we use the unregulated output of the LiPo battery directly
-        to fire ejection charges.  This works marvelously with standard 
-        low-current e-matches like the J-Tek from MJG Technologies, and with 
-        Quest Q2G2 igniters.  However, if you
-        want or need to use a separate pyro battery, you can do so by adding
-        a second 2mm connector to position B2 on the board and cutting the
-        thick pcb trace connecting the LiPo battery to the pyro circuit between
-        the two silk screen marks on the surface mount side of the board shown
-        here [insert photo]
-      </para>
-      <para>
-        We offer two choices of pyro and power switch connector, or you can 
-        choose neither and solder wires directly to the board.  All three choices
-        are reasonable depending on the constraints of your airframe.  Our
-        favorite option when there is sufficient room above the board is to use
-        the Tyco pin header with polarization and locking.  If you choose this
-        option, you crimp individual wires for the power switch and e-matches
-        into a mating connector, and installing and removing the TeleMetrum
-        board from an airframe is as easy as plugging or unplugging two 
-        connectors.  If the airframe will not support this much height or if
-        you want to be able to directly attach e-match leads to the board, we
-        offer a screw terminal block.  This is very similar to what most other
-        altimeter vendors provide and so may be the most familiar option.  
-       You'll need a very small straight blade screwdriver to connect
-        and disconnect the board in this case, such as you might find in a
-        jeweler's screwdriver set.  Finally, you can forego both options and
-        solder wires directly to the board, which may be the best choice for
-        minimum diameter and/or minimum mass designs. 
-      </para>
-      <para>
-        For most airframes, the integrated GPS antenna and wire UHF antenna are
-        a great combination.  However, if you are installing in a carbon-fiber
-        electronics bay which is opaque to RF signals, you may need to use 
-        off-board external antennas instead.  In this case, you can order
-        TeleMetrum with an SMA connector for the UHF antenna connection, and
-        you can unplug the integrated GPS antenna and select an appropriate 
-        off-board GPS antenna with cable terminating in a U.FL connector.
-      </para>
-    </chapter>
-    <chapter>
-      <title>Operation</title>
+      <para>
+        The rest of the dialog contains the parameters to be configured.
+      </para>
       <section>
-        <title>Firmware Modes </title>
-        <para>
-          The AltOS firmware build for TeleMetrum has two fundamental modes,
-          "idle" and "flight".  Which of these modes the firmware operates in
-          is determined by the orientation of the rocket (well, actually the
-          board, of course...) at the time power is switched on.  If the rocket
-          is "nose up", then TeleMetrum assumes it's on a rail or rod being
-          prepared for launch, so the firmware chooses flight mode.  However,
-          if the rocket is more or less horizontal, the firmware instead enters
-          idle mode.
-        </para>
-        <para>
-          At power on, you will hear three beeps 
-         ("S" in Morse code for startup) and then a pause while 
-          TeleMetrum completes initialization and self tests, and decides which
-          mode to enter next.
-        </para>
-        <para>
-          In flight or "pad" mode, TeleMetrum turns on the GPS system, 
-         engages the flight
-          state machine, goes into transmit-only mode on the RF link sending 
-          telemetry, and waits for launch to be detected.  Flight mode is
-          indicated by an audible "di-dah-dah-dit" ("P" for pad) on the 
-          beeper, followed by
-          beeps indicating the state of the pyrotechnic igniter continuity.
-          One beep indicates apogee continuity, two beeps indicate
-          main continuity, three beeps indicate both apogee and main continuity,
-          and one longer "brap" sound indicates no continuity.  For a dual
-          deploy flight, make sure you're getting three beeps before launching!
-          For apogee-only or motor eject flights, do what makes sense.
-        </para>
-        <para>
-          In idle mode, you will hear an audible "di-dit" ("I" for idle), and
-          the normal flight state machine is disengaged, thus
-          no ejection charges will fire.  TeleMetrum also listens on the RF
-          link when in idle mode for packet mode requests sent from TeleDongle.
-          Commands can be issued to a TeleMetrum in idle mode over either
-          USB or the RF link equivalently.
-          Idle mode is useful for configuring TeleMetrum, for extracting data 
-          from the on-board storage chip after flight, and for ground testing
-          pyro charges.
-        </para>
-        <para>
-          One "neat trick" of particular value when TeleMetrum is used with very
-          large airframes, is that you can power the board up while the rocket
-          is horizontal, such that it comes up in idle mode.  Then you can 
-          raise the airframe to launch position, use a TeleDongle to open
-          a packet connection, and issue a 'reset' command which will cause
-          TeleMetrum to reboot, realize it's now nose-up, and thus choose
-          flight mode.  This is much safer than standing on the top step of a
-          rickety step-ladder or hanging off the side of a launch tower with
-          a screw-driver trying to turn on your avionics before installing
-          igniters!
+        <title>Main Deploy Altitude</title>
+        <para>
+          This sets the altitude (above the recorded pad altitude) at
+          which the 'main' igniter will fire. The drop-down menu shows
+          some common values, but you can edit the text directly and
+          choose whatever you like. If the apogee charge fires below
+          this altitude, then the main charge will fire two seconds
+          after the apogee charge fires.
         </para>
       </section>
       <section>
-        <title>GPS </title>
-        <para>
-          TeleMetrum includes a complete GPS receiver.  See a later section for
-          a brief explanation of how GPS works that will help you understand
-          the information in the telemetry stream.  The bottom line is that
-          the TeleMetrum GPS receiver needs to lock onto at least four 
-          satellites to obtain a solid 3 dimensional position fix and know 
-          what time it is!
-        </para>
-        <para>
-          TeleMetrum provides backup power to the GPS chip any time a LiPo
-          battery is connected.  This allows the receiver to "warm start" on
-          the launch rail much faster than if every power-on were a "cold start"
-          for the GPS receiver.  In typical operations, powering up TeleMetrum
-          on the flight line in idle mode while performing final airframe
-          preparation will be sufficient to allow the GPS receiver to cold
-          start and acquire lock.  Then the board can be powered down during
-          RSO review and installation on a launch rod or rail.  When the board
-          is turned back on, the GPS system should lock very quickly, typically
-          long before igniter installation and return to the flight line are
-          complete.
+        <title>Apogee Delay</title>
+        <para>
+          When flying redundant electronics, it's often important to
+          ensure that multiple apogee charges don't fire at precisely
+          the same time as that can overpressurize the apogee deployment
+          bay and cause a structural failure of the airframe. The Apogee
+          Delay parameter tells the flight computer to fire the apogee
+          charge a certain number of seconds after apogee has been
+          detected.
         </para>
       </section>
       <section>
-        <title>Ground Testing </title>
+        <title>Radio Channel</title>
         <para>
-          An important aspect of preparing a rocket using electronic deployment
-          for flight is ground testing the recovery system.  Thanks
-          to the bi-directional RF link central to the Altus Metrum system, 
-          this can be accomplished in a TeleMetrum-equipped rocket without as
-          much work as you may be accustomed to with other systems.  It can
-          even be fun!
+          This configures which of the 10 radio channels to use for both
+          telemetry and packet command mode. Note that if you set this
+          value via packet command mode, you will have to reconfigure
+          the TeleDongle channel before you will be able to use packet
+          command mode again.
         </para>
+      </section>
+      <section>
+        <title>Radio Calibration</title>
         <para>
-          Just prep the rocket for flight, then power up TeleMetrum while the
-          airframe is horizontal.  This will cause the firmware to go into 
-          "idle" mode, in which the normal flight state machine is disabled and
-          charges will not fire without manual command.  Then, establish an
-          RF packet connection from a TeleDongle-equipped computer using the 
-          P command from a safe distance.  You can now command TeleMetrum to
-          fire the apogee or main charges to complete your testing.
+          The radios in every Altus Metrum device are calibrated at the
+          factory to ensure that they transmit and receive on the
+          specified frequency for each channel. You can adjust that
+          calibration by changing this value. To change the TeleDongle's
+          calibration, you must reprogram the unit completely.
         </para>
+      </section>
+      <section>
+        <title>Callsign</title>
         <para>
-          In order to reduce the chance of accidental firing of pyrotechnic
-          charges, the command to fire a charge is intentionally somewhat
-          difficult to type, and the built-in help is slightly cryptic to 
-          prevent accidental echoing of characters from the help text back at
-          the board from firing a charge.  The command to fire the apogee
-          drogue charge is 'i DoIt drogue' and the command to fire the main
-          charge is 'i DoIt main'.
+          This sets the callsign included in each telemetry packet. Set this
+          as needed to conform to your local radio regulations.
         </para>
       </section>
+    </section>
+    <section>
+      <title>Configure AltosUI</title>
+      <para>
+        This button presents a dialog so that you can configure the AltosUI global settings.
+      </para>
       <section>
-        <title>Radio Link </title>
-        <para>
-          The chip our boards are based on incorporates an RF transceiver, but
-          it's not a full duplex system... each end can only be transmitting or
-          receiving at any given moment.  So we had to decide how to manage the
-          link.
-        </para>
-        <para>
-          By design, TeleMetrum firmware listens for an RF connection when
-          it's in "idle mode" (turned on while the rocket is horizontal), which
-          allows us to use the RF link to configure the rocket, do things like
-          ejection tests, and extract data after a flight without having to 
-          crack open the airframe.  However, when the board is in "flight 
-          mode" (turned on when the rocket is vertical) the TeleMetrum only 
-          transmits and doesn't listen at all.  That's because we want to put 
-          ultimate priority on event detection and getting telemetry out of 
-          the rocket and out over
-          the RF link in case the rocket crashes and we aren't able to extract
-          data later... 
-        </para>
-        <para>
-          We don't use a 'normal packet radio' mode because they're just too
-          inefficient.  The GFSK modulation we use is just FSK with the 
-          baseband pulses passed through a
-          Gaussian filter before they go into the modulator to limit the
-          transmitted bandwidth.  When combined with the hardware forward error
-          correction support in the cc1111 chip, this allows us to have a very
-          robust 38.4 kilobit data link with only 10 milliwatts of transmit power,
-          a whip antenna in the rocket, and a hand-held Yagi on the ground.  We've
-          had flights to above 21k feet AGL with good reception, and calculations
-          suggest we should be good to well over 40k feet AGL with a 5-element yagi on
-          the ground.  We hope to fly boards to higher altitudes soon, and would
-          of course appreciate customer feedback on performance in higher
-          altitude flights!
+        <title>Voice Settings</title>
+        <para>
+          AltosUI provides voice annoucements during flight so that you
+          can keep your eyes on the sky and still get information about
+          the current flight status. However, sometimes you don't want
+          to hear them.
         </para>
+        <itemizedlist>
+          <listitem>
+            <para>Enable—turns all voice announcements on and off</para>
+          </listitem>
+          <listitem>
+            <para>
+              Test Voice—Plays a short message allowing you to verify
+              that the audio systme is working and the volume settings
+              are reasonable
+            </para>
+          </listitem>
+        </itemizedlist>
       </section>
       <section>
-        <title>Configurable Parameters</title>
+        <title>Log Directory</title>
         <para>
-          Configuring a TeleMetrum board for flight is very simple.  Because we
-          have both acceleration and pressure sensors, there is no need to set
-          a "mach delay", for example.  The few configurable parameters can all
-          be set using a simple terminal program over the USB port or RF link
-          via TeleDongle.
+          AltosUI logs all telemetry data and saves all TeleMetrum flash
+          data to this directory. This directory is also used as the
+          staring point when selecting data files for display or export.
+        </para>
+        <para>
+          Click on the directory name to bring up a directory choosing
+          dialog, select a new directory and click 'Select Directory' to
+          change where AltosUI reads and writes data files.
         </para>
-        <section>
-          <title>Radio Channel</title>
-          <para>
-            Our firmware supports 10 channels.  The default channel 0 corresponds
-            to a center frequency of 434.550 Mhz, and channels are spaced every 
-            100 khz.  Thus, channel 1 is 434.650 Mhz, and channel 9 is 435.550 Mhz.
-            At any given launch, we highly recommend coordinating who will use
-            each channel and when to avoid interference.  And of course, both 
-            TeleMetrum and TeleDongle must be configured to the same channel to
-            successfully communicate with each other.
-          </para>
-          <para>
-            To set the radio channel, use the 'c r' command, like 'c r 3' to set
-            channel 3.  
-            As with all 'c' sub-commands, follow this with a 'c w' to write the 
-            change to the parameter block in the on-board DataFlash chip on
-       your TeleMetrum board if you want the change to stay in place across reboots.
-          </para>
-        </section>
-        <section>
-          <title>Apogee Delay</title>
-          <para>
-            Apogee delay is the number of seconds after TeleMetrum detects flight
-            apogee that the drogue charge should be fired.  In most cases, this
-            should be left at the default of 0.  However, if you are flying
-            redundant electronics such as for an L3 certification, you may wish 
-            to set one of your altimeters to a positive delay so that both 
-            primary and backup pyrotechnic charges do not fire simultaneously.
-          </para>
-          <para>
-            To set the apogee delay, use the [FIXME] command.
-            As with all 'c' sub-commands, follow this with a 'c w' to write the 
-            change to the parameter block in the on-board DataFlash chip.
-          </para>
-          <para>
-       Please note that the TeleMetrum apogee detection algorithm always
-       fires a fraction of a second *after* apogee.  If you are also flying
-       an altimeter like the PerfectFlite MAWD, which only supports selecting
-       0 or 1 seconds of apogee delay, you may wish to set the MAWD to 0
-       seconds delay and set the TeleMetrum to fire your backup 2 or 3
-       seconds later to avoid any chance of both charges firing 
-       simultaneously.  We've flown several airframes this way quite happily,
-       including Keith's successful L3 cert.
-          </para>
-        </section>
-        <section>
-          <title>Main Deployment Altitude</title>
-          <para>
-            By default, TeleMetrum will fire the main deployment charge at an
-            elevation of 250 meters (about 820 feet) above ground.  We think this
-            is a good elevation for most airframes, but feel free to change this 
-            to suit.  In particular, if you are flying two altimeters, you may
-            wish to set the
-            deployment elevation for the backup altimeter to be something lower
-            than the primary so that both pyrotechnic charges don't fire
-            simultaneously.
-          </para>
-          <para>
-            To set the main deployment altitude, use the [FIXME] command.
-            As with all 'c' sub-commands, follow this with a 'c w' to write the 
-            change to the parameter block in the on-board DataFlash chip.
-          </para>
-        </section>
       </section>
       <section>
-        <title>Calibration</title>
+        <title>Callsign</title>
         <para>
-          There are only two calibrations required for a TeleMetrum board, and
-          only one for TeleDongle.
+          This value is used in command packet mode and is transmitted
+          in each packet sent from TeleDongle and received from
+          TeleMetrum. It is not used in telemetry mode as that transmits
+          packets only from TeleMetrum to TeleDongle. Configure this
+          with the AltosUI operators callsign as needed to comply with
+          your local radio regulations.
         </para>
-        <section>
-          <title>Radio Frequency</title>
-          <para>
-            The radio frequency is synthesized from a clock based on the 48 Mhz
-            crystal on the board.  The actual frequency of this oscillator must be
-            measured to generate a calibration constant.  While our GFSK modulation
-            bandwidth is wide enough to allow boards to communicate even when 
-            their oscillators are not on exactly the same frequency, performance
-            is best when they are closely matched.
-            Radio frequency calibration requires a calibrated frequency counter.
-            Fortunately, once set, the variation in frequency due to aging and
-            temperature changes is small enough that re-calibration by customers
-            should generally not be required.
-          </para>
-          <para>
-            To calibrate the radio frequency, connect the UHF antenna port to a
-            frequency counter, set the board to channel 0, and use the 'C' 
-            command to generate a CW carrier.  Wait for the transmitter temperature
-            to stabilize and the frequency to settle down.  
-            Then, divide 434.550 Mhz by the 
-            measured frequency and multiply by the current radio cal value show
-            in the 'c s' command.  For an unprogrammed board, the default value
-            is 1186611.  Take the resulting integer and program it using the 'c f'
-            command.  Testing with the 'C' command again should show a carrier
-            within a few tens of Hertz of the intended frequency.
-            As with all 'c' sub-commands, follow this with a 'c w' to write the 
-            change to the parameter block in the on-board DataFlash chip.
-          </para>
-        </section>
-        <section>
-          <title>Accelerometer</title>
-          <para>
-            The accelerometer we use has its own 5 volt power supply and
-            the output must be passed through a resistive voltage divider to match
-            the input of our 3.3 volt ADC.  This means that unlike the barometric
-            sensor, the output of the acceleration sensor is not ratiometric to 
-            the ADC converter, and calibration is required.  We also support the 
-            use of any of several accelerometers from a Freescale family that 
-            includes at least +/- 40g, 50g, 100g, and 200g parts.  Using gravity,
-            a simple 2-point calibration yields acceptable results capturing both
-            the different sensitivities and ranges of the different accelerometer
-            parts and any variation in power supply voltages or resistor values
-            in the divider network.
-          </para>
-          <para>
-            To calibrate the acceleration sensor, use the 'c a 0' command.  You
-            will be prompted to orient the board vertically with the UHF antenna
-            up and press a key, then to orient the board vertically with the 
-            UHF antenna down and press a key.
-            As with all 'c' sub-commands, follow this with a 'c w' to write the 
-            change to the parameter block in the on-board DataFlash chip.
-          </para>
-          <para>
-            The +1g and -1g calibration points are included in each telemetry
-            frame and are part of the header extracted by ao-dumplog after flight.
-            Note that we always store and return raw ADC samples for each
-            sensor... nothing is permanently "lost" or "damaged" if the 
-            calibration is poor.
-          </para>
-        </section>
       </section>
-    </chapter>
-    <chapter>
-      <title>Using Altus Metrum Products</title>
+    </section>
+    <section>
+      <title>Flash Image</title>
+      <para>
+        This reprograms any Altus Metrum device by using a TeleMetrum or
+        TeleDongle as a programming dongle. Please read the directions
+        for connecting the programming cable in the main TeleMetrum
+        manual before reading these instructions.
+      </para>
+      <para>
+        Once you have the programmer and target devices connected,
+        push the 'Flash Image' button. That will present a dialog box
+        listing all of the connected devices. Carefully select the
+        programmer device, not the device to be programmed.
+      </para>
+      <para>
+        Next, select the image to flash to the device. These are named
+        with the product name and firmware version. The file selector
+        will start in the directory containing the firmware included
+        with the AltosUI package. Navigate to the directory containing
+        the desired firmware if it isn't there.
+      </para>
+      <para>
+        Next, a small dialog containing the device serial number and
+        RF calibration values should appear. If these values are
+        incorrect (possibly due to a corrupted image in the device),
+        enter the correct values here.
+      </para>
+      <para>
+        Finally, a dialog containing a progress bar will follow the
+        programming process.
+      </para>
+      <para>
+        When programming is complete, the target device will
+        reboot. Note that if the target device is connected via USB, you
+        will have to unplug it and then plug it back in for the USB
+        connection to reset so that you can communicate with the device
+        again.
+      </para>
+    </section>
+    <section>
+      <title>Fire Igniter</title>
+      <para>
+      </para>
+    </section>
+  </chapter>
+  <chapter>
+    <title>Using Altus Metrum Products</title>
+    <section>
+      <title>Being Legal</title>
+      <para>
+        First off, in the US, you need an [amateur radio license](../Radio) or 
+        other authorization to legally operate the radio transmitters that are part
+        of our products.
+      </para>
       <section>
-        <title>Being Legal</title>
+        <title>In the Rocket</title>
         <para>
-          First off, in the US, you need an [amateur radio license](../Radio) or 
-          other authorization to legally operate the radio transmitters that are part
-          of our products.
+          In the rocket itself, you just need a [TeleMetrum](../TeleMetrum) board and 
+          a LiPo rechargeable battery.  An 860mAh battery weighs less than a 9V 
+          alkaline battery, and will run a [TeleMetrum](../TeleMetrum) for hours.
+        </para>
+        <para>
+          By default, we ship TeleMetrum with a simple wire antenna.  If your 
+          electronics bay or the airframe it resides within is made of carbon fiber, 
+          which is opaque to RF signals, you may choose to have an SMA connector 
+          installed so that you can run a coaxial cable to an antenna mounted 
+          elsewhere in the rocket.
         </para>
-        <section>
-          <title>In the Rocket</title>
-          <para>
-            In the rocket itself, you just need a [TeleMetrum](../TeleMetrum) board and 
-            a LiPo rechargeable battery.  An 860mAh battery weighs less than a 9V 
-            alkaline battery, and will run a [TeleMetrum](../TeleMetrum) for hours.
-          </para>
-          <para>
-            By default, we ship TeleMetrum with a simple wire antenna.  If your 
-            electronics bay or the airframe it resides within is made of carbon fiber, 
-            which is opaque to RF signals, you may choose to have an SMA connector 
-            installed so that you can run a coaxial cable to an antenna mounted 
-            elsewhere in the rocket.
-          </para>
-        </section>
-        <section>
-          <title>On the Ground</title>
-          <para>
-            To receive the data stream from the rocket, you need an antenna and short 
-            feedline connected to one of our [TeleDongle](../TeleDongle) units.  The
-            TeleDongle in turn plugs directly into the USB port on a notebook 
-            computer.  Because TeleDongle looks like a simple serial port, your computer
-            does not require special device drivers... just plug it in.
-          </para>
-          <para>
-            Right now, all of our application software is written for Linux.  However, 
-            because we understand that many people run Windows or MacOS, we are working 
-            on a new ground station program written in Java that should work on all
-            operating systems.
-          </para>
-          <para>
-            After the flight, you can use the RF link to extract the more detailed data 
-            logged in the rocket, or you can use a mini USB cable to plug into the 
-            TeleMetrum board directly.  Pulling out the data without having to open up
-            the rocket is pretty cool!  A USB cable is also how you charge the LiPo 
-            battery, so you'll want one of those anyway... the same cable used by lots 
-            of digital cameras and other modern electronic stuff will work fine.
-          </para>
-          <para>
-            If your rocket lands out of sight, you may enjoy having a hand-held GPS 
-            receiver, so that you can put in a waypoint for the last reported rocket 
-            position before touch-down.  This makes looking for your rocket a lot like 
-            Geo-Cacheing... just go to the waypoint and look around starting from there.
-          </para>
-          <para>
-            You may also enjoy having a ham radio "HT" that covers the 70cm band... you 
-            can use that with your antenna to direction-find the rocket on the ground 
-            the same way you can use a Walston or Beeline tracker.  This can be handy 
-            if the rocket is hiding in sage brush or a tree, or if the last GPS position 
-            doesn't get you close enough because the rocket dropped into a canyon, or 
-            the wind is blowing it across a dry lake bed, or something like that...  Keith
-            and Bdale both currently own and use the Yaesu VX-7R at launches.
-          </para>
-          <para>
-            So, to recap, on the ground the hardware you'll need includes:
-            <orderedlist inheritnum='inherit' numeration='arabic'>
-              <listitem> 
-                an antenna and feedline
-              </listitem>
-              <listitem> 
-                a TeleDongle
-              </listitem>
-              <listitem> 
-                a notebook computer
-              </listitem>
-              <listitem> 
-                optionally, a handheld GPS receiver
-              </listitem>
-              <listitem> 
-                optionally, an HT or receiver covering 435 Mhz
-              </listitem>
-            </orderedlist>
-          </para>
-          <para>
-            The best hand-held commercial directional antennas we've found for radio 
-            direction finding rockets are from 
-            <ulink url="http://www.arrowantennas.com/" >
-              Arrow Antennas.
-            </ulink>
-            The 440-3 and 440-5 are both good choices for finding a 
-            TeleMetrum-equipped rocket when used with a suitable 70cm HT.  
-          </para>
-        </section>
-        <section>
-          <title>Data Analysis</title>
-          <para>
-            Our software makes it easy to log the data from each flight, both the 
-            telemetry received over the RF link during the flight itself, and the more
-            complete data log recorded in the DataFlash memory on the TeleMetrum 
-            board.  Once this data is on your computer, our postflight tools make it
-            easy to quickly get to the numbers everyone wants, like apogee altitude, 
-            max acceleration, and max velocity.  You can also generate and view a 
-            standard set of plots showing the altitude, acceleration, and
-            velocity of the rocket during flight.  And you can even export a data file 
-            useable with Google Maps and Google Earth for visualizing the flight path 
-            in two or three dimensions!
-          </para>
-          <para>
-            Our ultimate goal is to emit a set of files for each flight that can be
-            published as a web page per flight, or just viewed on your local disk with 
-            a web browser.
-          </para>
-        </section>
-        <section>
-          <title>Future Plans</title>
-          <para>
-            In the future, we intend to offer "companion boards" for the rocket that will
-            plug in to TeleMetrum to collect additional data, provide more pyro channels,
-            and so forth.  A reference design for a companion board will be documented
-            soon, and will be compatible with open source Arduino programming tools.
-          </para>
-          <para>
-            We are also working on the design of a hand-held ground terminal that will
-            allow monitoring the rocket's status, collecting data during flight, and
-            logging data after flight without the need for a notebook computer on the
-            flight line.  Particularly since it is so difficult to read most notebook
-            screens in direct sunlight, we think this will be a great thing to have.
-          </para>
-          <para>
-            Because all of our work is open, both the hardware designs and the software,
-            if you have some great idea for an addition to the current Altus Metrum family,
-            feel free to dive in and help!  Or let us know what you'd like to see that 
-            we aren't already working on, and maybe we'll get excited about it too... 
-          </para>
-        </section>
       </section>
       <section>
-        <title>
-          How GPS Works
-        </title>
+        <title>On the Ground</title>
+        <para>
+          To receive the data stream from the rocket, you need an antenna and short 
+          feedline connected to one of our [TeleDongle](../TeleDongle) units.  The
+          TeleDongle in turn plugs directly into the USB port on a notebook 
+          computer.  Because TeleDongle looks like a simple serial port, your computer
+          does not require special device drivers... just plug it in.
+        </para>
+        <para>
+          Right now, all of our application software is written for Linux.  However, 
+          because we understand that many people run Windows or MacOS, we are working 
+          on a new ground station program written in Java that should work on all
+          operating systems.
+        </para>
         <para>
-          Placeholder.
+          After the flight, you can use the RF link to extract the more detailed data 
+          logged in the rocket, or you can use a mini USB cable to plug into the 
+          TeleMetrum board directly.  Pulling out the data without having to open up
+          the rocket is pretty cool!  A USB cable is also how you charge the LiPo 
+          battery, so you'll want one of those anyway... the same cable used by lots 
+          of digital cameras and other modern electronic stuff will work fine.
+        </para>
+        <para>
+          If your rocket lands out of sight, you may enjoy having a hand-held GPS 
+          receiver, so that you can put in a waypoint for the last reported rocket 
+          position before touch-down.  This makes looking for your rocket a lot like 
+          Geo-Cacheing... just go to the waypoint and look around starting from there.
+        </para>
+        <para>
+          You may also enjoy having a ham radio "HT" that covers the 70cm band... you 
+          can use that with your antenna to direction-find the rocket on the ground 
+          the same way you can use a Walston or Beeline tracker.  This can be handy 
+          if the rocket is hiding in sage brush or a tree, or if the last GPS position 
+          doesn't get you close enough because the rocket dropped into a canyon, or 
+          the wind is blowing it across a dry lake bed, or something like that...  Keith
+          and Bdale both currently own and use the Yaesu VX-7R at launches.
+        </para>
+        <para>
+          So, to recap, on the ground the hardware you'll need includes:
+          <orderedlist inheritnum='inherit' numeration='arabic'>
+            <listitem> 
+              an antenna and feedline
+            </listitem>
+            <listitem> 
+              a TeleDongle
+            </listitem>
+            <listitem> 
+              a notebook computer
+            </listitem>
+            <listitem> 
+              optionally, a handheld GPS receiver
+            </listitem>
+            <listitem> 
+              optionally, an HT or receiver covering 435 Mhz
+            </listitem>
+          </orderedlist>
+        </para>
+        <para>
+          The best hand-held commercial directional antennas we've found for radio 
+          direction finding rockets are from 
+          <ulink url="http://www.arrowantennas.com/" >
+            Arrow Antennas.
+          </ulink>
+          The 440-3 and 440-5 are both good choices for finding a 
+          TeleMetrum-equipped rocket when used with a suitable 70cm HT.  
         </para>
       </section>
-    </chapter>
-  </book>
-  
+      <section>
+        <title>Data Analysis</title>
+        <para>
+          Our software makes it easy to log the data from each flight, both the 
+          telemetry received over the RF link during the flight itself, and the more
+          complete data log recorded in the DataFlash memory on the TeleMetrum 
+          board.  Once this data is on your computer, our postflight tools make it
+          easy to quickly get to the numbers everyone wants, like apogee altitude, 
+          max acceleration, and max velocity.  You can also generate and view a 
+          standard set of plots showing the altitude, acceleration, and
+          velocity of the rocket during flight.  And you can even export a data file 
+          useable with Google Maps and Google Earth for visualizing the flight path 
+          in two or three dimensions!
+        </para>
+        <para>
+          Our ultimate goal is to emit a set of files for each flight that can be
+          published as a web page per flight, or just viewed on your local disk with 
+          a web browser.
+        </para>
+      </section>
+      <section>
+        <title>Future Plans</title>
+        <para>
+          In the future, we intend to offer "companion boards" for the rocket that will
+          plug in to TeleMetrum to collect additional data, provide more pyro channels,
+          and so forth.  A reference design for a companion board will be documented
+          soon, and will be compatible with open source Arduino programming tools.
+        </para>
+        <para>
+          We are also working on the design of a hand-held ground terminal that will
+          allow monitoring the rocket's status, collecting data during flight, and
+          logging data after flight without the need for a notebook computer on the
+          flight line.  Particularly since it is so difficult to read most notebook
+          screens in direct sunlight, we think this will be a great thing to have.
+        </para>
+        <para>
+          Because all of our work is open, both the hardware designs and the software,
+          if you have some great idea for an addition to the current Altus Metrum family,
+          feel free to dive in and help!  Or let us know what you'd like to see that 
+          we aren't already working on, and maybe we'll get excited about it too... 
+        </para>
+      </section>
+    </section>
+    <section>
+      <title>
+        How GPS Works
+      </title>
+      <para>
+        Placeholder.
+      </para>
+    </section>
+  </chapter>
+</book>
+