fold in content from Keith's email on the re-flashing subject
authorBdale Garbee <bdale@gag.com>
Sat, 13 Nov 2010 00:32:21 +0000 (17:32 -0700)
committerBdale Garbee <bdale@gag.com>
Sat, 13 Nov 2010 00:32:21 +0000 (17:32 -0700)
doc/telemetrum-doc.xsl

index ff8cd75559370c3f5fc0b33c3a0bd935b07398bb..67831fe2f04d6ba086ec0eab11f09f39874d13ec 100644 (file)
       </para>
     </legalnotice>
     <revhistory>
       </para>
     </legalnotice>
     <revhistory>
+      <revision>
+        <revnumber>0.3</revnumber>
+        <date>12 November 2010</date>
+        <revremark>
+          Add instructions for re-flashing devices using AltosUI
+        </revremark>
+      </revision>
       <revision>
         <revnumber>0.2</revnumber>
         <date>18 July 2010</date>
       <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 
       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 
       ('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/ 
       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). 
       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 +140,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 
       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.
       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 +165,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.  
     <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 
       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 +184,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').
       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.
       (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 +257,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 
       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!
       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,659 +306,768 @@ 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 
         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
         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>
         </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>
+      </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>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>
       <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.
+        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>
       </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.
+        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>
       </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.
+        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>
       </para>
+    </section>
+    <section>
+      <title>GPS </title>
       <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.  
+        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>
       </para>
       <para>
-        As with all other rocketry electronics, TeleMetrum must be protected 
-        from exposure to corrosive motor exhaust and ejection charge gasses.
+        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>
       </para>
-    </chapter>
-    <chapter>
-      <title>Hardware Overview</title>
+    </section>
+    <section>
+      <title>Ground Testing </title>
       <para>
       <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.
+        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>
       </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.  
+        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>
       </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]
+        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>
+    </section>
+    <section>
+      <title>Radio Link </title>
       <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. 
+        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>
       </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.
+        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>
       </para>
-    </chapter>
-    <chapter>
-      <title>Operation</title>
       <section>
       <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>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>
         </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>
+          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>
         </para>
       </section>
       <section>
-        <title>Ground Testing </title>
+        <title>Main Deployment Altitude</title>
         <para>
         <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!
+          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>
         </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.
+          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>
         </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'.
+          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>
         </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!
+        <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>
         </para>
       </section>
+    </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, and vice versa.
+      Due to limited memory resources in the cc1111, we don't support
+      programming either unit 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 http://www.altusmetrum.org/AltOS/.
+    </para>
+    <para>
+      We recommend updating TeleMetrum 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.  
+        </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.0-0.7.1.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 TeleDongle Firmware</title>
+      <para>
+        Updating TeleDongle's firmware is just like updating TeleMetrum
+       firmware, but you switch which board is the programmer and which
+       is the programming target.
+       </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.
+        </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 (latching)
+          matching connector on the TeleMetrum, and the 4-pin end to the
+          matching connector on the TeleDongle.  
+        </listitem>
+        <listitem>
+          Attach a battery to the TeleMetrum board.
+        </listitem>
+        <listitem>
+          Plug both TeleMetrum and TeleDongle into your computer's USB 
+         ports, and power up the TeleMetrum. 
+        </listitem>
+        <listitem>
+          Run AltosUI, and select 'Flash Image' from the File menu.
+        </listitem>
+        <listitem>
+          Pick the TeleMongle 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-0.7.1.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>
+  </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>
       <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>
-        <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>
+        <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>
       </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>
+        <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>
-    </chapter>
-    <chapter>
-      <title>Updating Device Firmware
-       <para>
-         The big conceptual thing to realize is that you have to use a
-         TeleDongle as a programmer to update a TeleMetrum, and vice versa.
-         Due to limited memory resources in the cc1111, we don't support
-         programming a unit directly over USB.
-       </para>
-       <para>
-         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.  Take the 2
-         screws out of the TeleDongle case to get access to the circuit
-         board.  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.  Plug the TeleDongle into
-         your computer's USB port, power up the TeleMetrum, then run
-         altosui.  Using the File/Flash menu, pick the TeleDongle as the
-         programming device, and the image you want put on the TeleMetrum,
-         and it should flash the TeleMetrum with new firmware.
-       </para>
-       <para>
-         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.
-       </para>
-       <para>
-         To update the TeleDongle's firmware, you switch things around.  Put
-         the 8-pin end of the programming cable on the TeleMetrum board's
-         (locking) 8-pin connector, put the 4-pin end on the TeleDongle
-         board, plug both into USB (the TeleDongle needs power, the
-         TeleMetrum is now the programmer).  Use the altosui interface to
-         pick the TeleMetrum as the programmer and a suitable image for
-         the TeleDongle, and it should program ok.  You can verify the
-         TeleDongle programmed correctly by using a terminal program to
-         talk to it and using the 'v' command, etc.  Once you're happy,
-         put the cover back on the TeleDongle.
-       </para>
-       <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>
-    </chapter>
-    <chapter>
-      <title>Using Altus Metrum Products</title>
       <section>
       <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>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>
+        <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>
       </section>
       <section>
-        <title>
-          How GPS Works
-        </title>
+        <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>
         <para>
-          Placeholder.
+          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>
         </para>
       </section>
-    </chapter>
-  </book>
-  
+    </section>
+    <section>
+      <title>
+        How GPS Works
+      </title>
+      <para>
+        Placeholder.
+      </para>
+    </section>
+  </chapter>
+</book>
+