Merge remote-tracking branch 'origin/master'
[fw/altos] / doc / altusmetrum.xsl
index ddb40719e7828ad15c4c1193b607cf561a6da764..aeb43acb4a0b8c7fdb6616e1feff9a9ec55ae009 100644 (file)
     <revhistory>
       <revision>
         <revnumber>1.0</revnumber>
-        <date>10 August 2011</date>
+        <date>24 August 2011</date>
        <revremark>
          Updated for software version 1.0.  Note that 1.0 represents a
-         telemetry format change, meaning both ends of a link (TeleMetrum/TeleMini and
-         TeleDongle) must be updated or communications will fail.
+         telemetry format change, meaning both ends of a link 
+         (TeleMetrum/TeleMini and TeleDongle) must be updated or 
+          communications will fail.
        </revremark>
       </revision>
       <revision>
     <para>
       Thanks to Bob Finch, W9YA, NAR 12965, TRA 12350 for writing "The
       Mere-Mortals Quick Start/Usage Guide to the Altus Metrum Starter
-      Kit" which has turned into the Getting Started chapter in this
-      book. Bob was one of our first customers for a production
-      TeleMetrum, and the enthusiasm that led to his contribution of
-      this section is immensely gratifying and highly appreciated!
+      Kit" which formed the basis of the original Getting Started chapter 
+      in this manual.  Bob was one of our first customers for a production
+      TeleMetrum, and his continued enthusiasm and contributions
+      are immensely gratifying and highly appreciated!
     </para>
     <para>
-      And thanks to Anthony (AJ) Towns for contributing the
-      AltosUI graphing and site map code and documentation. Free
-      software means that our customers and friends can become our
+      And thanks to Anthony (AJ) Towns for major contributions including
+      the AltosUI graphing and site map code and associated documentation. 
+      Free software means that our customers and friends can become our
       collaborators, and we certainly appreciate this level of
-      contribution.
+      contribution!
     </para>
     <para>
       Have fun using these products, and we hope to meet all of you
@@ -107,11 +108,13 @@ NAR #88757, TRA #12200
     <para>
       The newest device is TeleMini, a dual deploy altimeter with
       radio telemetry and radio direction finding. This device is only
-      13mm by 38mm (½ inch by 1½ inches) and can fit easily in an 18mm air-frame.
+      13mm by 38mm (½ inch by 1½ inches) and can fit easily in an 18mm 
+      air-frame.
     </para>
     <para>
-      Complementing TeleMetrum and TeleMini is TeleDongle, a USB to RF interface for
-      communicating with the altimeters.  Combined with your choice of antenna and
+      Complementing TeleMetrum and TeleMini is TeleDongle, a USB to RF 
+      interface for communicating with the altimeters.  Combined with your 
+      choice of antenna and
       notebook computer, TeleDongle and our associated user interface software
       form a complete ground station capable of logging and displaying in-flight
       telemetry, aiding rocket recovery, then processing and archiving flight
@@ -168,12 +171,12 @@ NAR #88757, TRA #12200
       ugly bugs in some earlier versions.
     </para>
     <para>
-      Next you should obtain and install the AltOS utilities.  These include
+      Next you should obtain and install the AltOS software.  These include
       the AltosUI ground station program, current firmware images for
-      TeleMetrum, TeleMini and TeleDongle, and a number of standalone utilities that
-      are rarely needed.  Pre-built binary packages are available for Debian
-      Linux, Microsoft Windows, and recent MacOSX versions.  Full source code
-      and build instructions for some other Linux variants are also available.
+      TeleMetrum, TeleMini and TeleDongle, and a number of standalone 
+      utilities that are rarely needed.  Pre-built binary packages are 
+      available for Linux, Microsoft Windows, and recent MacOSX versions.  
+      Full source code and build instructions are also available.
       The latest version may always be downloaded from
       <ulink url="http://altusmetrum.org/AltOS"/>.
     </para>
@@ -183,7 +186,7 @@ NAR #88757, TRA #12200
     <para>
       All Altus Metrum products are sophisticated electronic devices.  
       When handled gently and properly installed in an air-frame, they
-      will deliver impressive results.  However, like all electronic 
+      will deliver impressive results.  However, as with all electronic 
       devices, there are some precautions you must take.
     </para>
     <para>
@@ -231,57 +234,56 @@ NAR #88757, TRA #12200
       TeleMetrum is a 1 inch by 2.75 inch circuit board.  It was designed to
       fit inside coupler for 29mm air-frame 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
+      to succeed!  The presence of an accelerometer means TeleMetrum should
+      be aligned along the flight axis of the airframe, and by default the 1/4
+      wave UHF wire antenna should be on the nose-cone end of the board.  The
+      antenna wire 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
+      fin can end of the board, meaning an ideal "simple" avionics
       bay for TeleMetrum should have at least 10 inches of interior length.
     </para>
     <para>
       TeleMini is a 0.5 inch by 1.5 inch circuit board.   It was designed to
       fit inside an 18mm air-frame tube, 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
+      to succeed!  Since there is no accelerometer, TeleMini can be mounted
+      in any convenient orientation.  The default 1/4
+      wave UHF wire antenna attached to the center of one 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
+      other end of the board, meaning an ideal "simple" avionics
       bay for TeleMini should have at least 9 inches of interior length.
     </para>
     <para>
-      A typical TeleMetrum or TeleMini installation using the on-board devices 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.
+      A typical TeleMetrum or TeleMini installation 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 Li-Po 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, check out the "External Pyro Battery"
-      section in this manual for instructions on how to wire that up. The
-      altimeters are designed to work with an external pyro battery of up to 15V.
+      Quest Q2G2 igniters.  However, if you want or need to use a separate 
+      pyro battery, check out the "External Pyro Battery" section in this 
+      manual for instructions on how to wire that up. The altimeters are 
+      designed to work with an external pyro battery of no more than 15 volts.
     </para>
     <para>
       Ejection charges are wired directly to the screw terminal block
-      at the aft end of the altimeter.  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.
+      at the aft end of the altimeter.  You'll need a very small straight 
+      blade screwdriver for these screws, such as you might find in a 
+      jeweler's screwdriver set.
     </para>
     <para>
       TeleMetrum also uses the screw terminal block for the power
       switch leads. On TeleMini, the power switch leads are soldered
-      directly to the board and can be connected directly to the switch.
+      directly to the board and can be connected directly to a switch.
     </para>
     <para>
       For most air-frames, the integrated antennas are more than
-      adequate However, if you are installing in a carbon-fiber
-      electronics bay which is opaque to RF signals, you may need to
+      adequate.   However, if you are installing in a carbon-fiber or
+      metal electronics bay which is opaque to RF signals, you may need to
       use off-board external antennas instead.  In this case, you can
       order an altimeter with an SMA connector for the UHF antenna
       connection, and, on TeleMetrum, you can unplug the integrated GPS
@@ -303,7 +305,8 @@ NAR #88757, TRA #12200
         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. For TeleMini, "idle" mode is selected when the
+        idle mode.  Since TeleMini doesn't have an accelerometer we can
+        use to determine orientation, "idle" mode is selected when the
         board receives a command packet within the first five seconds
         of operation; if no packet is received, the board enters
         "flight" mode.
@@ -311,13 +314,13 @@ NAR #88757, TRA #12200
       <para>
         At power on, you will hear three beeps or see three flashes
         ("S" in Morse code for start up) and then a pause while
-        the altimeter completes initialization and self tests, and decides which
-        mode to enter next.
+        the altimeter completes initialization and self test, and decides 
+       which mode to enter next.
       </para>
       <para>
         In flight or "pad" mode, the altimeter engages the flight
-        state machine, goes into transmit-only mode on the RF link
-        sending telemetry, and waits for launch to be detected.
+        state machine, goes into transmit-only mode to
+        send telemetry, and waits for launch to be detected.
         Flight mode is indicated by an "di-dah-dah-dit" ("P" for pad)
         on the beeper or lights, followed by beeps or flashes
         indicating the state of the pyrotechnic igniter continuity.
@@ -330,44 +333,43 @@ NAR #88757, TRA #12200
         flights, do what makes sense.
       </para>
       <para>
-        In idle mode, you will hear an audible "di-dit" or see two short flashes ("I" for idle), and
-        the normal flight state machine is disengaged, thus
-        no ejection charges will fire.  The altimeters also listen 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. TeleMini uses only the RF link.
+        If idle mode is entered, you will hear an audible "di-dit" or see 
+        two short flashes ("I" for idle), and the flight state machine is 
+        disengaged, thus no ejection charges will fire.  The altimeters also 
+        listen for the radio link when in idle mode for requests sent via 
+        TeleDongle.  Commands can be issued to a TeleMetrum in idle mode 
+        over either
+        USB or the radio link equivalently. TeleMini only has the radio link.
         Idle mode is useful for configuring the altimeter, 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 the altimeter is used with very
-        large air-frames, 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 air-frame to launch position, use a TeleDongle to open
-        a packet connection, and issue a 'reset' command which will cause
-        the altimeter to reboot and come up in
-        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!
+        One "neat trick" of particular value when TeleMetrum is used with 
+        very large air-frames, 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 air-frame to launch position, and issue a 'reset' command 
+       via TeleDongle over the radio link to cause the altimeter to reboot and 
+        come up in 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!
+        TeleMetrum includes a complete GPS receiver.  A complete explanation 
+        of how GPS works is beyond the scope of this manual, but 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 Li-Po
+        TeleMetrum provides backup power to the GPS chip any time a 
         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
+        the launch rail much faster than if every power-on were a GPS 
+       "cold start".  In typical operations, powering up TeleMetrum
         on the flight line in idle mode while performing final air-frame
         preparation will be sufficient to allow the GPS receiver to cold
         start and acquire lock.  Then the board can be powered down during
@@ -377,35 +379,114 @@ NAR #88757, TRA #12200
         complete.
       </para>
     </section>
+    <section>
+      <title>Controlling An Altimeter Over The Radio Link</title>
+      <para>
+        One of the unique features of the Altus Metrum system is
+        the ability to create a two way command link between TeleDongle
+        and an altimeter using the digital radio transceivers built into
+        each device. This allows you to interact with the altimeter 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 radio
+        link. TeleMini doesn't provide a USB connector and so it is
+        always communicated with over radio.  Select the appropriate 
+        TeleDongle device when the list of devices is presented and 
+        AltosUI will interact with an altimeter over the radio link.
+      </para>
+      <para>
+       One oddity in the current interface is how AltosUI selects the
+       frequency for radio communications. Instead of providing
+       an interface to specifically configure the frequency, it uses
+       whatever frequency was most recently selected for the target
+       TeleDongle device in Monitor Flight mode. If you haven't ever
+       used that mode with the TeleDongle in question, select the
+       Monitor Flight button from the top level UI, and pick the
+       appropriate TeleDongle device.  Once the flight monitoring
+       window is open, select the desired frequency and then close it
+       down again. All radio communications will now use that frequency.
+      </para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            Save Flight Data—Recover flight data from the rocket without
+            opening it up.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            Configure altimeter apogee delays or main deploy heights
+            to respond to changing launch conditions. You can also
+            'reboot' the altimeter. Use this to remotely enable the
+            flight computer by turning TeleMetrum on in "idle" mode,
+            then once the air-frame is oriented for launch, you can
+            reboot the altimeter 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 air-frame. Simply assembly the
+            rocket as if for flight with the apogee and main charges
+            loaded, then remotely command the altimeter to fire the
+            igniters.
+          </para>
+        </listitem>
+      </itemizedlist>
+      <para>
+        Operation over the radio link for configuring an altimeter, ground
+        testing igniters, and so forth uses the same RF frequencies as flight
+        telemetry.  To configure the desired TeleDongle frequency, select
+        the monitor flight tab, then use the frequency selector and 
+        close the window before performing other desired radio operations.
+      </para>
+      <para>
+        TeleMetrum only enables radio commanding 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>
+       TeleMini listens for a command packet for five seconds after
+       first being turned on, if it doesn't hear anything, it enters
+       'pad' mode, ready for flight and will no longer listen for
+       command packets. The easiest way to connect to TeleMini is to
+       initiate the command and select the TeleDongle device. At this
+       point, the TeleDongle will be attempting to communicate with
+       the TeleMini. Now turn TeleMini on, and it should immediately
+       start communicating with the TeleDongle and the desired
+       operation can be performed.
+      </para>
+      <para>
+        You can monitor the operation of the radio link by watching the 
+        lights on the devices. The red LED will flash each time a packet
+        is tramsitted, while the green LED will light up on TeleDongle when 
+        it is waiting to receive a packet from the altimeter.
+      </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- or TeleMini- equipped rocket without as
-        much work as you may be accustomed to with other systems.  It can
-        even be fun!
+        to the bi-directional radio link central to the Altus Metrum system,
+        this can be accomplished in a TeleMetrum or TeleMini equipped rocket 
+        with less work than you may be accustomed to with other systems.  It 
+        can even be fun!
       </para>
       <para>
         Just prep the rocket for flight, then power up the altimeter
         in "idle" mode (placing air-frame horizontal for TeleMetrum or
-        starting the RF packet connection for TeleMini).  This will cause the
-        firmware to go into "idle" mode, in which the normal flight
+        selected the Configure Altimeter tab for TeleMini).  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 the altimeter 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'.
+        manual command.  You can now command the altimeter to fire the apogee
+        or main charges from a safe distance using your computer and 
+        TeleDongle and the Fire Igniter tab to complete ejection testing.
       </para>
     </section>
     <section>
@@ -417,69 +498,56 @@ NAR #88757, TRA #12200
         link.
       </para>
       <para>
-        By design, the altimeter firmware listens for an RF connection when
+        By design, the altimeter firmware listens for the radio link when
         it's in "idle mode", which
-        allows us to use the RF link to configure the rocket, do things like
+        allows us to use the radio link to configure the rocket, do things like
         ejection tests, and extract data after a flight without having to
         crack open the air-frame.  However, when the board is in "flight
         mode", the altimeter 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
+        the rocket through
+        the radio 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
+        We don't use a 'normal packet radio' mode like APRS because they're 
+        just too inefficient.  The GFSK modulation we use is FSK with the
         base-band 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!
+        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 great 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 over time, and would of course appreciate customer feedback 
+        on performance in higher altitude flights!
       </para>
     </section>
     <section>
       <title>Configurable Parameters</title>
       <para>
         Configuring an Altus Metrum altimeter for flight is very
-        simple. Through the use of a Kalman filter, there is no need
-        to set a "mach delay" .  The few configurable parameters can
-        all be set using a simple terminal program over the USB port
-        or RF link via TeleDongle.
+        simple.  Even on our baro-only TeleMini board, the use of a Kalman 
+        filter means there is no need to set a "mach delay".  The few 
+        configurable parameters can all be set using AltosUI over USB or
+        or radio link via TeleDongle.
       </para>
       <section>
-        <title>Radio Frequencies</title>
+        <title>Radio Frequency</title>
         <para>
-         The Altus Metrum boards support frequencies in the 70cm
+         Altus Metrum boards support radio frequencies in the 70cm
          band. By default, the configuration interface provides a
-         list of 10 common frequencies -- 100kHz channels starting at
-         434.550MHz. However, you can configure the firmware to use
+         list of 10 "standard" frequencies in 100kHz channels starting at
+         434.550MHz.  However, the firmware supports use of
          any 50kHz multiple within the 70cm band. At any given
-         launch, we highly recommend coordinating who will use each
-         frequency and when to avoid interference.  And of course, both
+         launch, we highly recommend coordinating when and by whom each
+         frequency will be used to avoid interference.  And of course, both
          altimeter and TeleDongle must be configured to the same
          frequency to successfully communicate with each other.
         </para>
-        <para>
-          To set the radio frequency, use the 'c R' command to specify the
-         radio transceiver configuration parameter. This parameter is computed
-         using the desired frequency, 'F', the radio calibration parameter, 'C' (showed by the 'c s' command) and
-         the standard calibration reference frequency, 'S', (normally 434.550MHz):
-         <programlisting>
-           R = F / S * C
-         </programlisting>
-         Round the result to the nearest integer value.
-          As with all 'c' sub-commands, follow this with a 'c w' to write the
-          change to the parameter block in the on-board flash on
-          your altimeter board if you want the change to stay in place across reboots.
-        </para>
       </section>
       <section>
         <title>Apogee Delay</title>
@@ -492,20 +560,14 @@ NAR #88757, TRA #12200
           primary and backup pyrotechnic charges do not fire simultaneously.
         </para>
         <para>
-          To set the apogee delay, use the 'c d' 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 Altus Metrum apogee detection algorithm
-          fires exactly at 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
-          air-frames this way quite happily, including Keith's
-          successful L3 cert.
+          The Altus Metrum apogee detection algorithm fires exactly at
+          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 air-frames this
+          way quite happily, including Keith's successful L3 cert.
         </para>
       </section>
       <section>
@@ -520,384 +582,141 @@ NAR #88757, TRA #12200
           than the primary so that both pyrotechnic charges don't fire
           simultaneously.
         </para>
-        <para>
-          To set the main deployment altitude, use the 'c m' 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 and TeleMini.
-      </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 434.550MHz, 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>
+       <title>Maximum Flight Log</title>
+       <para>
+         TeleMetrum version 1.1 has 2MB of on-board flash storage,
+         enough to hold over 40 minutes of data at full data rate
+         (100 samples/second). TeleMetrum 1.0 has 1MB of on-board
+         storage. As data are stored at a reduced rate during
+         descent, there's plenty of space to store many flights worth
+         of data.
+       </para>
        <para>
-         when the radio calibration value is changed, the radio
-         frequency value is reset to the same value, so you'll need
-         to recompute and reset the radio frequency value using the
-         new radio calibration value.
+         The on-board flash is partitioned into separate flight logs,
+         each of a fixed maximum size. Increase the maximum size of
+         each log and you reduce the number of flights that can be
+         stored. Decrease the size and TeleMetrum can store more
+         flights.
+       </para>
+       <para>
+         All of the configuration data is also stored in the flash
+         memory, which consumes 64kB on TeleMetrum v1.1 and 256B on
+         TeleMetrum v1.0. This configuration space is not available
+         for storing flight log data.
+       </para>
+       <para>
+         To compute the amount of space needed for a single flight,
+         you can multiply the expected ascent time (in seconds) by
+         800, multiply the expected descent time (in seconds) by 80
+         and add the two together. That will slightly under-estimate
+         the storage (in bytes) needed for the flight. For instance,
+         a flight spending 20 seconds in ascent and 150 seconds in
+         descent will take about (20 * 800) + (150 * 80) = 28000
+         bytes of storage. You could store dozens of these flights in
+         the on-board flash.
+       </para>
+       <para>
+         The default size, 192kB, allows for 10 flights of storage on
+         TeleMetrum v1.1 and 5 flights on TeleMetrum v1.0. This
+         ensures that you won't need to erase the memory before
+         flying each time while still allowing more than sufficient
+         storage for each flight.
        </para>
       </section>
       <section>
-        <title>TeleMetrum Accelerometer</title>
-        <para>
-          The TeleMetrum 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 ratio-metric 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>
-        <para>
-         In the unlikely event an accel cal that goes badly, it is possible
-         that TeleMetrum may always come up in 'pad mode' and as such not be
-         listening to either the USB or radio interfaces.  If that happens,
-         there is a special hook in the firmware to force the board back
-         in to 'idle mode' so you can re-do the cal.  To use this hook, you
-         just need to ground the SPI clock pin at power-on.  This pin is
-         available as pin 2 on the 8-pin companion connector, and pin 1 is
-         ground.  So either carefully install a fine-gauge wire jumper
-         between the two pins closest to the index hole end of the 8-pin
-         connector, or plug in the programming cable to the 8-pin connector
-         and use a small screwdriver or similar to short the two pins closest
-         to the index post on the 4-pin end of the programming cable, and
-         power up the board.  It should come up in 'idle mode' (two beeps).
-        </para>
+       <title>Ignite Mode</title>
+       <para>
+         Instead of firing one charge at apogee and another charge at
+         a fixed height above the ground, you can configure the
+         altimeter to fire both at apogee or both during
+         descent. This was added to support an airframe that has two
+         TeleMetrum computers, one in the fin can and one in the
+         nose.
+       </para>
+       <para>
+         Providing the ability to use both igniters for apogee or
+         main allows some level of redundancy without needing two
+         flight computers.  In Redundant Apogee or Redundant Main
+         mode, the two charges will be fired two seconds apart.
+       </para>
+      </section>
+      <section>
+       <title>Pad Orientation</title>
+       <para>
+         TeleMetrum measures acceleration along the axis of the
+         board. Which way the board is oriented affects the sign of
+         the acceleration value. Instead of trying to guess which way
+         the board is mounted in the air frame, TeleMetrum must be
+         explicitly configured for either Antenna Up or Antenna
+         Down. The default, Antenna Up, expects the end of the
+         TeleMetrum board connected to the 70cm antenna to be nearest
+         the nose of the rocket, with the end containing the screw
+         terminals nearest the tail.
+       </para>
       </section>
     </section>
-  <section>
-    <title>Updating Device Firmware</title>
-    <para>
-      The big conceptual thing to realize is that you have to use a
-      TeleDongle as a programmer to update a TeleMetrum or TeleMini,
-      and a TeleMetrum or other TeleDongle to program the TeleDongle
-      Due to limited memory resources in the cc1111, we don't support
-      programming directly over USB.
-    </para>
-    <para>
-      You may wish to begin by ensuring you have current firmware images.
-      These are distributed as part of the AltOS software bundle that
-      also includes the AltosUI ground station program.  Newer ground
-      station versions typically work fine with older firmware versions,
-      so you don't need to update your devices just to try out new
-      software features.  You can always download the most recent
-      version from <ulink url="http://www.altusmetrum.org/AltOS/"/>.
-    </para>
+
+  </chapter>
+  <chapter>
+
+    <title>AltosUI</title>
     <para>
-      We recommend updating the altimeter first, before updating TeleDongle.
+      The AltosUI program provides a graphical user interface for
+      interacting with the Altus Metrum product family, including
+      TeleMetrum, TeleMini and TeleDongle. AltosUI can monitor telemetry data,
+      configure TeleMetrum, TeleMini 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>Updating TeleMetrum Firmware</title>
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-        <listitem>
-          Find the 'programming cable' that you got as part of the starter
-          kit, that has a red 8-pin MicroMaTch connector on one end and a
-          red 4-pin MicroMaTch connector on the other end.
-        </listitem>
-        <listitem>
-          Take the 2 screws out of the TeleDongle case to get access
-          to the circuit board.
-        </listitem>
+      <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 frequency being monitored by the TeleDongle device is
+        displayed at the top of the window. You can configure the
+        frequency by clicking on the frequency box and selecting the desired
+        frequency. AltosUI remembers the last frequency selected for each
+        TeleDongle and selects that automatically the next time you use
+        that device.
+      </para>
+      <para>
+        Below the TeleDongle frequency selector, the window contains a few
+        significant pieces of information about the altimeter providing
+        the telemetry data stream:
+      </para>
+      <itemizedlist>
         <listitem>
-          Plug the 8-pin end of the programming cable to the
-          matching connector on the TeleDongle, and the 4-pin end to the
-          matching connector on the TeleMetrum.
-         Note that each MicroMaTch connector has an alignment pin that
-         goes through a hole in the PC board when you have the cable
-         oriented correctly.
+          <para>The configured call-sign</para>
         </listitem>
         <listitem>
-          Attach a battery to the TeleMetrum board.
+          <para>The device serial number</para>
         </listitem>
         <listitem>
-          Plug the TeleDongle into your computer's USB port, and power
-          up the TeleMetrum.
+          <para>The flight number. Each altimeter remembers how many
+            times it has flown.
+          </para>
         </listitem>
         <listitem>
-          Run AltosUI, and select 'Flash Image' from the File menu.
-        </listitem>
-        <listitem>
-          Pick the TeleDongle device from the list, identifying it as the
-          programming device.
-        </listitem>
-        <listitem>
-          Select the image you want put on the TeleMetrum, which should have a
-          name in the form telemetrum-v1.1-1.0.0.ihx.  It should be visible
-       in the default directory, if not you may have to poke around
-       your system to find it.
-        </listitem>
-        <listitem>
-          Make sure the configuration parameters are reasonable
-          looking. If the serial number and/or RF configuration
-          values aren't right, you'll need to change them.
-        </listitem>
-        <listitem>
-          Hit the 'OK' button and the software should proceed to flash
-          the TeleMetrum with new firmware, showing a progress bar.
-        </listitem>
-        <listitem>
-          Confirm that the TeleMetrum board seems to have updated OK, which you
-          can do by plugging in to it over USB and using a terminal program
-          to connect to the board and issue the 'v' command to check
-          the version, etc.
-        </listitem>
-        <listitem>
-          If something goes wrong, give it another try.
-        </listitem>
-      </orderedlist>
-    </section>
-    <section>
-      <title>Updating TeleMini Firmware</title>
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-        <listitem>
-         You'll need a special 'programming cable' to reprogram the
-         TeleMini. It's available on the Altus Metrum web store, or
-         you can make your own using an 8-pin MicroMaTch connector on
-         one end and a set of four pins on the other.
-        </listitem>
-        <listitem>
-          Take the 2 screws out of the TeleDongle case to get access
-          to the circuit board.
-        </listitem>
-        <listitem>
-          Plug the 8-pin end of the programming cable to the matching
-          connector on the TeleDongle, and the 4-pins into the holes
-          in the TeleMini circuit board.  Note that the MicroMaTch
-          connector has an alignment pin that goes through a hole in
-          the PC board when you have the cable oriented correctly, and
-          that pin 1 on the TeleMini board is marked with a square pad
-          while the other pins have round pads.
-        </listitem>
-        <listitem>
-          Attach a battery to the TeleMini board.
-        </listitem>
-        <listitem>
-          Plug the TeleDongle into your computer's USB port, and power
-          up the TeleMini
-        </listitem>
-        <listitem>
-          Run AltosUI, and select 'Flash Image' from the File menu.
-        </listitem>
-        <listitem>
-          Pick the TeleDongle device from the list, identifying it as the
-          programming device.
-        </listitem>
-        <listitem>
-          Select the image you want put on the TeleMini, which should have a
-          name in the form telemini-v1.0-1.0.0.ihx.  It should be visible
-       in the default directory, if not you may have to poke around
-       your system to find it.
-        </listitem>
-        <listitem>
-          Make sure the configuration parameters are reasonable
-          looking. If the serial number and/or RF configuration
-          values aren't right, you'll need to change them.
-        </listitem>
-        <listitem>
-          Hit the 'OK' button and the software should proceed to flash
-          the TeleMini with new firmware, showing a progress bar.
-        </listitem>
-        <listitem>
-          Confirm that the TeleMini board seems to have updated OK, which you
-          can do by configuring it over the RF link through the TeleDongle, or
-         letting it come up in "flight" mode and listening for telemetry.
-        </listitem>
-        <listitem>
-          If something goes wrong, give it another try.
-        </listitem>
-      </orderedlist>
-    </section>
-    <section>
-      <title>Updating TeleDongle Firmware</title>
-      <para>
-        Updating TeleDongle's firmware is just like updating TeleMetrum or TeleMini
-       firmware, but you use either a TeleMetrum or another TeleDongle as the programmer.
-       </para>
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-        <listitem>
-          Find the 'programming cable' that you got as part of the starter
-          kit, that has a red 8-pin MicroMaTch connector on one end and a
-          red 4-pin MicroMaTch connector on the other end.
-        </listitem>
-        <listitem>
-         Find the USB cable that you got as part of the starter kit, and
-         plug the "mini" end in to the mating connector on TeleMetrum or TeleDongle.
-        </listitem>
-        <listitem>
-          Take the 2 screws out of the TeleDongle case to get access
-          to the circuit board.
-        </listitem>
-        <listitem>
-          Plug the 8-pin end of the programming cable to the
-          matching connector on the programmer, and the 4-pin end to the
-          matching connector on the TeleDongle.
-         Note that each MicroMaTch connector has an alignment pin that
-         goes through a hole in the PC board when you have the cable
-         oriented correctly.
-        </listitem>
-        <listitem>
-          Attach a battery to the TeleMetrum board if you're using one.
-        </listitem>
-        <listitem>
-          Plug both the programmer and the TeleDongle into your computer's USB
-         ports, and power up the programmer.
-        </listitem>
-        <listitem>
-          Run AltosUI, and select 'Flash Image' from the File menu.
-        </listitem>
-        <listitem>
-          Pick the programmer device from the list, identifying it as the
-          programming device.
-        </listitem>
-        <listitem>
-          Select the image you want put on the TeleDongle, which should have a
-          name in the form teledongle-v0.2-1.0.0.ihx.  It should be visible
-       in the default directory, if not you may have to poke around
-       your system to find it.
-        </listitem>
-        <listitem>
-          Make sure the configuration parameters are reasonable
-          looking. If the serial number and/or RF configuration
-          values aren't right, you'll need to change them.  The TeleDongle
-         serial number is on the "bottom" of the circuit board, and can
-         usually be read through the translucent blue plastic case without
-         needing to remove the board from the case.
-        </listitem>
-        <listitem>
-          Hit the 'OK' button and the software should proceed to flash
-          the TeleDongle with new firmware, showing a progress bar.
-        </listitem>
-        <listitem>
-          Confirm that the TeleDongle board seems to have updated OK, which you
-          can do by plugging in to it over USB and using a terminal program
-          to connect to the board and issue the 'v' command to check
-          the version, etc.  Once you're happy, remove the programming cable
-         and put the cover back on the TeleDongle.
-        </listitem>
-        <listitem>
-          If something goes wrong, give it another try.
-        </listitem>
-      </orderedlist>
-      <para>
-        Be careful removing the programming cable from the locking 8-pin
-        connector on TeleMetrum.  You'll need a fingernail or perhaps a thin
-        screwdriver or knife blade to gently pry the locking ears out
-        slightly to extract the connector.  We used a locking connector on
-        TeleMetrum to help ensure that the cabling to companion boards
-        used in a rocket don't ever come loose accidentally in flight.
-      </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, TeleMini and TeleDongle. AltosUI can monitor telemetry data,
-      configure TeleMetrum, TeleMini 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>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 frequency being monitored by the TeleDongle device is
-        displayed at the top of the window. You can configure the
-        frequency by clicking on the frequency box and selecting the desired
-        frequency. AltosUI remembers the last frequency selected for each
-        TeleDongle and selects that automatically the next time you use
-        that device.
-      </para>
-      <para>
-        Below the TeleDongle frequency selector, the window contains a few
-        significant pieces of information about the altimeter providing
-        the telemetry data stream:
-      </para>
-      <itemizedlist>
-        <listitem>
-          <para>The configured call-sign</para>
-        </listitem>
-        <listitem>
-          <para>The device serial number</para>
-        </listitem>
-        <listitem>
-          <para>The flight number. Each altimeter 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>
+          <para>
+            The rocket flight state. Each flight passes through several
+            states including Pad, Boost, Fast, Coast, Drogue, Main and
+            Landed.
+          </para>
         </listitem>
         <listitem>
           <para>
@@ -953,6 +772,21 @@ NAR #88757, TRA #12200
                 required for a 'GO' status.
               </para>
             </listitem>
+           <listitem>
+             <para>
+               On-board Data Logging. This indicates whether there is
+               space remaining on-board to store flight data for the
+               upcoming flight. If you've downloaded data, but failed
+               to erase flights, there may not be any space
+               left. TeleMetrum can store multiple flights, depending
+               on the configured maximum flight log size. TeleMini
+               stores only a single flight, so it will need to be
+               downloaded and erased after each flight to capture
+               data. This only affects on-board flight logging; the
+               altimeter will still transmit telemetry and fire
+               ejection charges at the proper times.
+             </para>
+           </listitem>
             <listitem>
               <para>
                 GPS Locked. For a TeleMetrum device, this indicates whether the GPS receiver is
@@ -1091,92 +925,6 @@ NAR #88757, TRA #12200
        </para>
       </section>
     </section>
-    <section>
-      <title>Packet Command Mode</title>
-      <subtitle>Controlling An Altimeter Over The Radio Link</subtitle>
-      <para>
-        One of the unique features of the Altus Metrum environment is
-        the ability to create a two way command link between TeleDongle
-        and an altimeter using the digital radio transceivers built into
-        each device. This allows you to interact with the altimeter 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>
-      <para>
-       One oddity in the current interface is how AltosUI selects the
-       frequency for packet mode communications. Instead of providing
-       an interface to specifically configure the frequency, it uses
-       whatever frequency was most recently selected for the target
-       TeleDongle device in Monitor Flight mode. If you haven't ever
-       used that mode with the TeleDongle in question, select the
-       Monitor Flight button from the top level UI, pick the
-       appropriate TeleDongle device. Once the flight monitoring
-       window is open, select the desired frequency and then close it
-       down again. All Packet Command Mode operations will now use
-       that frequency.
-      </para>
-      <itemizedlist>
-        <listitem>
-          <para>
-            Save Flight Data—Recover flight data from the rocket without
-            opening it up.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            Configure altimeter apogee delays or main deploy heights
-            to respond to changing launch conditions. You can also
-            'reboot' the altimeter. Use this to remotely enable the
-            flight computer by turning TeleMetrum on in "idle" mode,
-            then once the air-frame is oriented for launch, you can
-            reboot the altimeter 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 air-frame. Simply assembly the
-            rocket as if for flight with the apogee and main charges
-            loaded, then remotely command the altimeter to fire the
-            igniters.
-          </para>
-        </listitem>
-      </itemizedlist>
-      <para>
-        Packet command mode uses the same RF frequencies as telemetry
-        mode. Configure the desired TeleDongle frequency using the
-        flight monitor window frequency 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>
-       TeleMini listens for a command packet for five seconds after
-       first being turned on, if it doesn't hear anything, it enters
-       'pad' mode, ready for flight and will no longer listen for
-       command packets.
-      </para>
-      <para>
-        When packet command mode is enabled, you can monitor the link
-        by watching the lights on the
-        devices. The red LED will flash each time they
-        transmit a packet while the green LED will light up
-        on TeleDongle while it is waiting to receive a packet from
-       the altimeter.
-      </para>
-    </section>
     <section>
       <title>Save Flight Data</title>
       <para>
@@ -1538,10 +1286,10 @@ NAR #88757, TRA #12200
       <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
+          This value is transmitted in each command packet sent from 
+         TeleDongle and received from an altimeter.  It is not used in 
+         telemetry mode, as the callsign configured in the altimeter board
+         is included in all telemetry packets.  Configure this
           with the AltosUI operators call sign as needed to comply with
           your local radio regulations.
         </para>
@@ -1581,7 +1329,7 @@ NAR #88757, TRA #12200
         This reprograms any Altus Metrum device by using a TeleMetrum
         or TeleDongle as a programming dongle. Please read the
         directions for flashing devices in the Updating Device
-        Firmware section above
+        Firmware chapter below.
       </para>
       <para>
         Once you have the programmer and target devices connected,
@@ -1731,7 +1479,7 @@ NAR #88757, TRA #12200
          for Linux which can perform most of the same tasks.
         </para>
         <para>
-          After the flight, you can use the RF link to extract the more detailed data
+          After the flight, you can use the radio link to extract the more detailed data
           logged in either TeleMetrum or TeleMini devices, 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 Li-Po
@@ -1787,7 +1535,7 @@ NAR #88757, TRA #12200
         <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
+          telemetry received during the flight itself, and the more
           complete data log recorded in the flash memory on the altimeter
           board.  Once this data is on your computer, our post-flight tools make it
           easy to quickly get to the numbers everyone wants, like apogee altitude,
@@ -2014,29 +1762,252 @@ NAR #88757, TRA #12200
       </para>
     </section>
     <section>
-      <title>Ground Testing</title>
-      <para>
-       The most important aspect of any installation is careful
-       ground testing. Bringing an air-frame up to the LCO table which
-       hasn't been ground tested can lead to delays or ejection
-       charges firing on the pad, or, even worse, a recovery system
-       failure.
-      </para>
+      <title>Ground Testing</title>
+      <para>
+       The most important aspect of any installation is careful
+       ground testing. Bringing an air-frame up to the LCO table which
+       hasn't been ground tested can lead to delays or ejection
+       charges firing on the pad, or, even worse, a recovery system
+       failure.
+      </para>
+      <para>
+       Do a 'full systems' test that includes wiring up all igniters
+       without any BP and turning on all of the electronics in flight
+       mode. This will catch any mistakes in wiring and any residual
+       RFI issues that might accidentally fire igniters at the wrong
+       time. Let the air-frame sit for several minutes, checking for
+       adequate telemetry signal strength and GPS lock.
+      </para>
+      <para>
+       Ground test the ejection charges. Prepare the rocket for
+       flight, loading ejection charges and igniters. Completely
+       assemble the air-frame and then use the 'Fire Igniters'
+       interface through a TeleDongle to command each charge to
+       fire. Make sure the charge is sufficient to robustly separate
+       the air-frame and deploy the recovery system.
+      </para>
+    </section>
+  </chapter>
+  <chapter>
+    <title>Updating Device Firmware</title>
+    <para>
+      The big conceptual thing to realize is that you have to use a
+      TeleDongle as a programmer to update a TeleMetrum or TeleMini,
+      and a TeleMetrum or other TeleDongle to program the TeleDongle
+      Due to limited memory resources in the cc1111, we don't support
+      programming directly over USB.
+    </para>
+    <para>
+      You may wish to begin by ensuring you have current firmware images.
+      These are distributed as part of the AltOS software bundle that
+      also includes the AltosUI ground station program.  Newer ground
+      station versions typically work fine with older firmware versions,
+      so you don't need to update your devices just to try out new
+      software features.  You can always download the most recent
+      version from <ulink url="http://www.altusmetrum.org/AltOS/"/>.
+    </para>
+    <para>
+      We recommend updating the altimeter first, before updating TeleDongle.
+    </para>
+    <section>
+      <title>Updating TeleMetrum Firmware</title>
+      <orderedlist inheritnum='inherit' numeration='arabic'>
+        <listitem>
+          Find the 'programming cable' that you got as part of the starter
+          kit, that has a red 8-pin MicroMaTch connector on one end and a
+          red 4-pin MicroMaTch connector on the other end.
+        </listitem>
+        <listitem>
+          Take the 2 screws out of the TeleDongle case to get access
+          to the circuit board.
+        </listitem>
+        <listitem>
+          Plug the 8-pin end of the programming cable to the
+          matching connector on the TeleDongle, and the 4-pin end to the
+          matching connector on the TeleMetrum.
+         Note that each MicroMaTch connector has an alignment pin that
+         goes through a hole in the PC board when you have the cable
+         oriented correctly.
+        </listitem>
+        <listitem>
+          Attach a battery to the TeleMetrum board.
+        </listitem>
+        <listitem>
+          Plug the TeleDongle into your computer's USB port, and power
+          up the TeleMetrum.
+        </listitem>
+        <listitem>
+          Run AltosUI, and select 'Flash Image' from the File menu.
+        </listitem>
+        <listitem>
+          Pick the TeleDongle device from the list, identifying it as the
+          programming device.
+        </listitem>
+        <listitem>
+          Select the image you want put on the TeleMetrum, which should have a
+          name in the form telemetrum-v1.1-1.0.0.ihx.  It should be visible
+       in the default directory, if not you may have to poke around
+       your system to find it.
+        </listitem>
+        <listitem>
+          Make sure the configuration parameters are reasonable
+          looking. If the serial number and/or RF configuration
+          values aren't right, you'll need to change them.
+        </listitem>
+        <listitem>
+          Hit the 'OK' button and the software should proceed to flash
+          the TeleMetrum with new firmware, showing a progress bar.
+        </listitem>
+        <listitem>
+          Confirm that the TeleMetrum board seems to have updated OK, which you
+          can do by plugging in to it over USB and using a terminal program
+          to connect to the board and issue the 'v' command to check
+          the version, etc.
+        </listitem>
+        <listitem>
+          If something goes wrong, give it another try.
+        </listitem>
+      </orderedlist>
+    </section>
+    <section>
+      <title>Updating TeleMini Firmware</title>
+      <orderedlist inheritnum='inherit' numeration='arabic'>
+        <listitem>
+         You'll need a special 'programming cable' to reprogram the
+         TeleMini. It's available on the Altus Metrum web store, or
+         you can make your own using an 8-pin MicroMaTch connector on
+         one end and a set of four pins on the other.
+        </listitem>
+        <listitem>
+          Take the 2 screws out of the TeleDongle case to get access
+          to the circuit board.
+        </listitem>
+        <listitem>
+          Plug the 8-pin end of the programming cable to the matching
+          connector on the TeleDongle, and the 4-pins into the holes
+          in the TeleMini circuit board.  Note that the MicroMaTch
+          connector has an alignment pin that goes through a hole in
+          the PC board when you have the cable oriented correctly, and
+          that pin 1 on the TeleMini board is marked with a square pad
+          while the other pins have round pads.
+        </listitem>
+        <listitem>
+          Attach a battery to the TeleMini board.
+        </listitem>
+        <listitem>
+          Plug the TeleDongle into your computer's USB port, and power
+          up the TeleMini
+        </listitem>
+        <listitem>
+          Run AltosUI, and select 'Flash Image' from the File menu.
+        </listitem>
+        <listitem>
+          Pick the TeleDongle device from the list, identifying it as the
+          programming device.
+        </listitem>
+        <listitem>
+          Select the image you want put on the TeleMini, which should have a
+          name in the form telemini-v1.0-1.0.0.ihx.  It should be visible
+       in the default directory, if not you may have to poke around
+       your system to find it.
+        </listitem>
+        <listitem>
+          Make sure the configuration parameters are reasonable
+          looking. If the serial number and/or RF configuration
+          values aren't right, you'll need to change them.
+        </listitem>
+        <listitem>
+          Hit the 'OK' button and the software should proceed to flash
+          the TeleMini with new firmware, showing a progress bar.
+        </listitem>
+        <listitem>
+          Confirm that the TeleMini board seems to have updated OK, which you
+          can do by configuring it over the radio link through the TeleDongle, or
+         letting it come up in "flight" mode and listening for telemetry.
+        </listitem>
+        <listitem>
+          If something goes wrong, give it another try.
+        </listitem>
+      </orderedlist>
+    </section>
+    <section>
+      <title>Updating TeleDongle Firmware</title>
       <para>
-       Do a 'full systems' test that includes wiring up all igniters
-       without any BP and turning on all of the electronics in flight
-       mode. This will catch any mistakes in wiring and any residual
-       RFI issues that might accidentally fire igniters at the wrong
-       time. Let the air-frame sit for several minutes, checking for
-       adequate telemetry signal strength and GPS lock.
-      </para>
+        Updating TeleDongle's firmware is just like updating TeleMetrum or TeleMini
+       firmware, but you use either a TeleMetrum or another TeleDongle as the programmer.
+       </para>
+      <orderedlist inheritnum='inherit' numeration='arabic'>
+        <listitem>
+          Find the 'programming cable' that you got as part of the starter
+          kit, that has a red 8-pin MicroMaTch connector on one end and a
+          red 4-pin MicroMaTch connector on the other end.
+        </listitem>
+        <listitem>
+         Find the USB cable that you got as part of the starter kit, and
+         plug the "mini" end in to the mating connector on TeleMetrum or TeleDongle.
+        </listitem>
+        <listitem>
+          Take the 2 screws out of the TeleDongle case to get access
+          to the circuit board.
+        </listitem>
+        <listitem>
+          Plug the 8-pin end of the programming cable to the
+          matching connector on the programmer, and the 4-pin end to the
+          matching connector on the TeleDongle.
+         Note that each MicroMaTch connector has an alignment pin that
+         goes through a hole in the PC board when you have the cable
+         oriented correctly.
+        </listitem>
+        <listitem>
+          Attach a battery to the TeleMetrum board if you're using one.
+        </listitem>
+        <listitem>
+          Plug both the programmer and the TeleDongle into your computer's USB
+         ports, and power up the programmer.
+        </listitem>
+        <listitem>
+          Run AltosUI, and select 'Flash Image' from the File menu.
+        </listitem>
+        <listitem>
+          Pick the programmer device from the list, identifying it as the
+          programming device.
+        </listitem>
+        <listitem>
+          Select the image you want put on the TeleDongle, which should have a
+          name in the form teledongle-v0.2-1.0.0.ihx.  It should be visible
+       in the default directory, if not you may have to poke around
+       your system to find it.
+        </listitem>
+        <listitem>
+          Make sure the configuration parameters are reasonable
+          looking. If the serial number and/or RF configuration
+          values aren't right, you'll need to change them.  The TeleDongle
+         serial number is on the "bottom" of the circuit board, and can
+         usually be read through the translucent blue plastic case without
+         needing to remove the board from the case.
+        </listitem>
+        <listitem>
+          Hit the 'OK' button and the software should proceed to flash
+          the TeleDongle with new firmware, showing a progress bar.
+        </listitem>
+        <listitem>
+          Confirm that the TeleDongle board seems to have updated OK, which you
+          can do by plugging in to it over USB and using a terminal program
+          to connect to the board and issue the 'v' command to check
+          the version, etc.  Once you're happy, remove the programming cable
+         and put the cover back on the TeleDongle.
+        </listitem>
+        <listitem>
+          If something goes wrong, give it another try.
+        </listitem>
+      </orderedlist>
       <para>
-       Ground test the ejection charges. Prepare the rocket for
-       flight, loading ejection charges and igniters. Completely
-       assemble the air-frame and then use the 'Fire Igniters'
-       interface through a TeleDongle to command each charge to
-       fire. Make sure the charge is sufficient to robustly separate
-       the air-frame and deploy the recovery system.
+        Be careful removing the programming cable from the locking 8-pin
+        connector on TeleMetrum.  You'll need a fingernail or perhaps a thin
+        screwdriver or knife blade to gently pry the locking ears out
+        slightly to extract the connector.  We used a locking connector on
+        TeleMetrum to help ensure that the cabling to companion boards
+        used in a rocket don't ever come loose accidentally in flight.
       </para>
     </section>
   </chapter>
@@ -2196,7 +2167,7 @@ NAR #88757, TRA #12200
         but is easily changed using the menus in AltosUI. The files that
         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 losses
+        unlike the .telem files that are subject to losses
         along the RF data path.
         See the above instructions on what and how to save the eeprom stored
         data after physically retrieving your altimeter.  Make sure to save
@@ -2277,6 +2248,43 @@ NAR #88757, TRA #12200
       Verify you can connect and disconnect from the units while in your
       terminal program by sending the escape-disconnect mentioned above.
     </para>
+        <para>
+          To set the radio frequency, use the 'c R' command to specify the
+         radio transceiver configuration parameter. This parameter is computed
+         using the desired frequency, 'F', the radio calibration parameter, 'C' (showed by the 'c s' command) and
+         the standard calibration reference frequency, 'S', (normally 434.550MHz):
+         <programlisting>
+           R = F / S * C
+         </programlisting>
+         Round the result to the nearest integer value.
+          As with all 'c' sub-commands, follow this with a 'c w' to write the
+          change to the parameter block in the on-board flash on
+          your altimeter board if you want the change to stay in place across reboots.
+        </para>
+        <para>
+          To set the apogee delay, use the 'c d' 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>
+          To set the main deployment altitude, use the 'c m' 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>
+          To calibrate the radio frequency, connect the UHF antenna port to a
+          frequency counter, set the board to 434.550MHz, 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>
     <para>
       Note that the 'reboot' command, which is very useful on the altimeters,
       will likely just cause problems with the dongle.  The *correct* way
@@ -2284,7 +2292,7 @@ NAR #88757, TRA #12200
     </para>
     <para>
       A fun thing to do at the launch site and something you can do while
-      learning how to use these units is to play with the RF-link access
+      learning how to use these units is to play with the radio link access
       between an altimeter and the TeleDongle.  Be aware that you *must* create
       some physical separation between the devices, otherwise the link will
       not function due to signal overload in the receivers in each device.
@@ -2299,14 +2307,14 @@ NAR #88757, TRA #12200
     </para>
     <para>
       You can access an altimeter in idle mode from the TeleDongle's USB
-      connection using the RF link
+      connection using the radio link
       by issuing a 'p' command to the TeleDongle. Practice connecting and
       disconnecting ('~~' while using 'cu') from the altimeter.  If
       you cannot escape out of the "p" command, (by using a '~~' when in
       CU) then it is likely that your kernel has issues.  Try a newer version.
     </para>
     <para>
-      Using this RF link allows you to configure the altimeter, test
+      Using this radio link allows you to configure the altimeter, test
       fire e-matches and igniters from the flight line, check pyro-match
       continuity and so forth. You can leave the unit turned on while it
       is in 'idle mode' and then place the
@@ -2318,6 +2326,15 @@ NAR #88757, TRA #12200
       inside 'ao-view'. If this doesn't work, disconnect from the
       TeleDongle, unplug it, and try again after plugging it back in.
     </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>
     <para>
       On TeleMetrum, the GPS will eventually find enough satellites, lock in on them,
       and 'ao-view' will both auditorily announce and visually indicate
@@ -2334,7 +2351,7 @@ NAR #88757, TRA #12200
       strength providing an indication of the direction from receiver to rocket.
     </para>
     <para>
-      TeleMetrum also provides GPS trekking data, which can further simplify
+      TeleMetrum also provides GPS tracking data, which can further simplify
       locating the rocket once it has landed. (The last good GPS data
       received before touch-down will be on the data screen of 'ao-view'.)
     </para>
@@ -2358,6 +2375,111 @@ NAR #88757, TRA #12200
       once you enable the voice output!
     </para>
   </appendix>
+  <appendix>
+      <title>Calibration</title>
+      <para>
+        There are only two calibrations required for a TeleMetrum board, and
+        only one for TeleDongle and TeleMini.  All boards are shipped from
+        the factory pre-calibrated, but the procedures are documented here
+       in case they are ever needed.  Re-calibration is not supported by
+       AltosUI, you must connect to the board with a serial terminal program
+       and interact directly with the on-board command interpreter to effect
+       calibration.
+      </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 434.550MHz, and use the 'C'
+          command in the on-board command interpreter to generate a CW 
+          carrier.  For TeleMetrum, this is best done over USB.  For TeleMini,
+         note that the only way to escape the 'C' command is via power cycle
+         since the board will no longer be listening for commands once it
+         starts generating a CW carrier.
+       </para>
+       <para>
+         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>
+       <para>
+         Note that any time you re-do the radio frequency calibration, the
+         radio frequency is reset to the default 434.550 Mhz.  If you want
+         to use another frequency, you will have to set that again after
+         calibration is completed.
+       </para>
+      </section>
+      <section>
+        <title>TeleMetrum Accelerometer</title>
+        <para>
+          The TeleMetrum 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 ratio-metric to
+          the ADC converter, and calibration is required.  Explicitly 
+         calibrating the accelerometers also allows us to load any device
+         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.  Note that the accuracy of this
+         calibration depends primarily on how perfectly vertical and still
+         the board is held during the cal process.  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 stored in onboard flash to be
+         downloaded after flight.  We always store and return raw ADC 
+         samples for each sensor... so nothing is permanently "lost" or 
+         "damaged" if the calibration is poor.
+        </para>
+        <para>
+         In the unlikely event an accel cal goes badly, it is possible
+         that TeleMetrum may always come up in 'pad mode' and as such not be
+         listening to either the USB or radio link.  If that happens,
+         there is a special hook in the firmware to force the board back
+         in to 'idle mode' so you can re-do the cal.  To use this hook, you
+         just need to ground the SPI clock pin at power-on.  This pin is
+         available as pin 2 on the 8-pin companion connector, and pin 1 is
+         ground.  So either carefully install a fine-gauge wire jumper
+         between the two pins closest to the index hole end of the 8-pin
+         connector, or plug in the programming cable to the 8-pin connector
+         and use a small screwdriver or similar to short the two pins closest
+         to the index post on the 4-pin end of the programming cable, and
+         power up the board.  It should come up in 'idle mode' (two beeps),
+        allowing a re-cal.
+        </para>
+      </section>
+  </appendix>
   <appendix
       xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Release Notes</title>