Remove duplicate log description. Describe pyro config.
[fw/altos] / doc / altusmetrum.xsl
index 1df270bcc858328462607002d46987132ee7457c..9020881f11d2127b7f14814613a7caf781e3d7f5 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
 <book>
       </revision>
     </revhistory>
   </bookinfo>
-  <acknowledgements>
+  <dedication>
+    <title>Acknowledgements</title>
     <para>
       Thanks to Bob Finch, W9YA, NAR 12965, TRA 12350 for writing "The
       Mere-Mortals Quick Start/Usage Guide to the Altus Metrum Starter
@@ -130,7 +131,7 @@ Keith Packard, KD7SQG
 NAR #88757, TRA #12200
       </literallayout>
     </para>
-  </acknowledgements>
+  </dedication>
   <chapter>
     <title>Introduction and Overview</title>
     <para>
@@ -319,102 +320,454 @@ NAR #88757, TRA #12200
     </para>
   </chapter>
   <chapter>
-    <title>Hardware Overview</title>
-    <para>
-      TeleMetrum is a 1 inch by 2¾ 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 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, meaning an ideal "simple" avionics
-      bay for TeleMetrum should have at least 10 inches of interior length.
-    </para>
-    <para>
-      TeleMini v1.0 is a ½ inch by 1½ 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!  Since there is no accelerometer, TeleMini can be mounted
-      in any convenient orientation.  The default ¼
-      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
-      other end of the board, meaning an ideal "simple" avionics
-      bay for TeleMini should have at least 9 inches of interior length.
-    </para>
-    <para>
-      TeleMini v2.0 and EasyMini are both built on a 0.8 inch by 1½
-      inch circuit board. They're designed to fit in a 24mm coupler
-      tube. TeleMini has an antenna, which must be run straight out
-      fro the board. Bending or folding it will dramatically reduce RF
-      performance. For smaller rockets, it's often best to drill a
-      hole in the bulkhead forward of TeleMini and run the antenna
-      wire through that and alongside any recovery components
-      there. Be careful to seal the hole to prevent ejection gasses
-      from passing through the hole and damaging the electronics.
-    </para>
-    <para>
-      TeleMega is a 1¼ inch by 3¼ inch circuit board. It was
-      designed to easily fit in a 38mm coupler. Like TeleMetrum,
-      TeleMega has an accelerometer and so it must be mounted so that
-      the board is aligned with the flight axis. It can be mounted
-      either antenna up or down.
-    </para>
-    <para>
-      A typical installation involves attaching 
-      only a suitable battery, a single pole switch for 
-      power on/off, and two pairs of wires connecting e-matches for the 
-      apogee and main ejection charges.  All Altus Metrum products are 
-      designed for use with single-cell batteries with 3.7 volts
-      nominal. TeleMini v2.0 and EasyMini may also be used with other
-      batteries as long as they supply between 4 and 12 volts.
-    </para>
-    <para>
-      The battery connectors are a standard 2-pin JST connector and
-      match batteries sold by Spark Fun. These batteries are
-      single-cell Lithium Polymer batteries that nominally provide 3.7
-      volts.  Other vendors sell similar batteries for RC aircraft
-      using mating connectors, however the polarity for those is
-      generally reversed from the batteries used by Altus Metrum
-      products. In particular, the Tenergy batteries supplied for use
-      in Featherweight flight computers are not compatible with Altus
-      Metrum flight computers or battery chargers. <emphasis>Check
-      polarity and voltage before connecting any battery not purchased
-      from Altus Metrum or Spark Fun.</emphasis>
-    </para>
-    <para>
-      By default, we use the unregulated output of the 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 no more than 15 volts.
-    </para>
-    <para>
-      Ejection charges are wired directly to the screw terminal block
-      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>
-      Except for TeleMini v1.0, the flight computers also use the
-      screw terminal block for the power switch leads. On TeleMini v1.0,
-      the power switch leads are soldered 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 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 v1, you can unplug the integrated GPS
-      antenna and select an appropriate off-board GPS antenna with
-      cable terminating in a U.FL connector.
-    </para>
+    <title>Altus Metrum Hardware</title>
+    <section>
+      <title>Overview</title>
+      <para>
+       Here's the full set of Altus Metrum products, both in
+       production and retired.
+      </para>
+      <table frame='all'>
+       <title>Altus Metrum Electronics</title>
+       <tgroup cols='8' align='center' colsep='1' rowsep='1'>
+         <colspec align='center' colwidth='*' colname='Device'/>
+         <colspec align='center' colwidth='*' colname='Barometer'/>
+         <colspec align='center' colwidth='*' colname='Z-axis accelerometer'/>
+         <colspec align='center' colwidth='*' colname='GPS'/>
+         <colspec align='center' colwidth='*' colname='3D sensors'/>
+         <colspec align='center' colwidth='*' colname='Storage'/>
+         <colspec align='center' colwidth='*' colname='RF'/>
+         <colspec align='center' colwidth='*' colname='Battery'/>
+         <thead>
+           <row>
+             <entry align='center'>Device</entry>
+             <entry align='center'>Barometer</entry>
+             <entry align='center'>Z-axis accelerometer</entry>
+             <entry align='center'>GPS</entry>
+             <entry align='center'>3D sensors</entry>
+             <entry align='center'>Storage</entry>
+             <entry align='center'>RF Output</entry>
+             <entry align='center'>Battery</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>TeleMetrum v1.0</entry>
+             <entry><para>MP3H6115 10km (33k')</para></entry>
+             <entry><para>MMA2202 50g</para></entry>
+             <entry>SkyTraq</entry>
+             <entry>-</entry>
+             <entry>1MB</entry>
+             <entry>10mW</entry>
+             <entry>3.7V</entry>
+           </row>
+           <row>
+             <entry>TeleMetrum v1.1</entry>
+             <entry><para>MP3H6115 10km (33k')</para></entry>
+             <entry><para>MMA2202 50g</para></entry>
+             <entry>SkyTraq</entry>
+             <entry>-</entry>
+             <entry>2MB</entry>
+             <entry>10mW</entry>
+             <entry>3.7V</entry>
+           </row>
+           <row>
+             <entry>TeleMetrum v1.2</entry>
+             <entry><para>MP3H6115 10km (33k')</para></entry>
+             <entry><para>ADXL78 70g</para></entry>
+             <entry>SkyTraq</entry>
+             <entry>-</entry>
+             <entry>2MB</entry>
+             <entry>10mW</entry>
+             <entry>3.7V</entry>
+           </row>
+           <row>
+             <entry>TeleMetrum v2.0</entry>
+             <entry><para>MS5607 30km (100k')</para></entry>
+             <entry><para>MMA6555 102g</para></entry>
+             <entry>uBlox Max-7Q</entry>
+             <entry>-</entry>
+             <entry>8MB</entry>
+             <entry>40mW</entry>
+             <entry>3.7V</entry>
+           </row>
+           <row>
+             <entry><para>TeleMini <?linebreak?>v1.0</para></entry>
+             <entry><para>MP3H6115 10km (33k')</para></entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>5kB</entry>
+             <entry>10mW</entry>
+             <entry>3.7V</entry>
+           </row>
+           <row>
+             <entry>TeleMini <?linebreak?>v2.0</entry>
+             <entry><para>MS5607 30km (100k')</para></entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>1MB</entry>
+             <entry>10mW</entry>
+             <entry>3.7-12V</entry>
+           </row>
+           <row>
+             <entry>EasyMini <?linebreak?>v1.0</entry>
+             <entry><para>MS5607 30km (100k')</para></entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>1MB</entry>
+             <entry>-</entry>
+             <entry>3.7-12V</entry>
+           </row>
+           <row>
+             <entry>TeleMega <?linebreak?>v1.0</entry>
+             <entry><para>MS5607 30km (100k')</para></entry>
+             <entry><para>MMA6555 102g</para></entry>
+             <entry>uBlox Max-7Q</entry>
+             <entry><para>MPU6000 HMC5883</para></entry>
+             <entry>8MB</entry>
+             <entry>40mW</entry>
+             <entry>3.7V</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+      <table frame='all'>
+       <title>Altus Metrum Boards</title>
+       <tgroup cols='6' align='center' colsep='1' rowsep='1'>
+         <colspec align='center' colwidth='*' colname='Device'/>
+         <colspec align='center' colwidth='*' colname='Connectors'/>
+         <colspec align='center' colwidth='*' colname='Screw Terminals'/>
+         <colspec align='center' colwidth='*' colname='Width'/>
+         <colspec align='center' colwidth='*' colname='Length'/>
+         <colspec align='center' colwidth='*' colname='Tube Size'/>
+         <thead>
+           <row>
+             <entry align='center'>Device</entry>
+             <entry align='center'>Connectors</entry>
+             <entry align='center'>Screw Terminals</entry>
+             <entry align='center'>Width</entry>
+             <entry align='center'>Length</entry>
+             <entry align='center'>Tube Size</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>TeleMetrum</entry>
+             <entry><para>
+               Antenna<?linebreak?>
+               Debug<?linebreak?>
+               Companion<?linebreak?>
+               USB<?linebreak?>
+               Battery
+             </para></entry>
+             <entry><para>Apogee pyro <?linebreak?>Main pyro <?linebreak?>Switch</para></entry>
+             <entry>1 inch (2.54cm)</entry>
+             <entry>2 ¾ inch (6.99cm)</entry>
+             <entry>29mm coupler</entry>
+           </row>
+           <row>
+             <entry><para>TeleMini <?linebreak?>v1.0</para></entry>
+             <entry><para>
+               Antenna<?linebreak?>
+               Debug<?linebreak?>
+               Battery
+             </para></entry>
+             <entry><para>
+               Apogee pyro <?linebreak?>
+               Main pyro
+             </para></entry>
+             <entry>½ inch (1.27cm)</entry>
+             <entry>1½ inch (3.81cm)</entry>
+             <entry>18mm aiframe</entry>
+           </row>
+           <row>
+             <entry>TeleMini <?linebreak?>v2.0</entry>
+             <entry><para>
+               Antenna<?linebreak?>
+               Debug<?linebreak?>
+               USB<?linebreak?>
+               Battery
+             </para></entry>
+             <entry><para>
+               Apogee pyro <?linebreak?>
+               Main pyro <?linebreak?>
+               Battery <?linebreak?>
+               Switch
+               </para></entry>
+             <entry>0.8 inch (2.03cm)</entry>
+             <entry>1½ inch (3.81cm)</entry>
+             <entry>24mm coupler</entry>
+           </row>
+           <row>
+             <entry>EasyMini</entry>
+             <entry><para>
+               Debug<?linebreak?>
+               USB<?linebreak?>
+               Battery
+             </para></entry>
+             <entry><para>
+               Apogee pyro <?linebreak?>
+               Main pyro <?linebreak?>
+               Battery <?linebreak?>
+               Switch
+               </para></entry>
+             <entry>0.8 inch (2.03cm)</entry>
+             <entry>1½ inch (3.81cm)</entry>
+             <entry>24mm coupler</entry>
+           </row>
+           <row>
+             <entry>TeleMega</entry>
+             <entry><para>
+               Antenna<?linebreak?>
+               Debug<?linebreak?>
+               Companion<?linebreak?>
+               USB<?linebreak?>
+               Battery
+             </para></entry>
+             <entry><para>
+               Apogee pyro <?linebreak?>
+               Main pyro<?linebreak?>
+               Pyro A-D<?linebreak?>
+               Switch<?linebreak?>
+               Pyro battery
+             </para></entry>
+             <entry>1¼ inch (3.18cm)</entry>
+             <entry>3¼ inch (8.26cm)</entry>
+             <entry>38mm coupler</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+    </section>
+    <section>
+      <title>TeleMetrum</title>
+      <para>
+       TeleMetrum is a 1 inch by 2¾ 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 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, meaning an ideal "simple" avionics
+       bay for TeleMetrum should have at least 10 inches of interior length.
+      </para>
+    </section>
+    <section>
+      <title>TeleMini</title>
+      <para>
+       TeleMini v1.0 is ½ inches by 1½ inches.  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!  Since there is no
+       accelerometer, TeleMini can be mounted in any convenient
+       orientation.  The default ¼ wave UHF wire antenna attached to
+       the center of one end of the board is about 7 inches long. Two
+       wires for the power switch are connected to holes in the
+       middle of the board. Screw terminals for the e-matches for
+       apogee and main ejection charges depart from the other end of
+       the board, meaning an ideal "simple" avionics bay for TeleMini
+       should have at least 9 inches of interior length.
+      </para>
+      <para>
+       TeleMini v2.0 is 0.8 inches by 1½ inches. It adds more
+       on-board data logging memory, a built-in USB connector and
+       screw terminals for the battery and power switch. The larger
+       board fits in a 24mm coupler. There's also a battery connector
+       for a LiPo battery if you want to use one of those.
+      </para>
+    </section>
+    <section>
+      <title>EasyMini</title>
+      <para>
+       EasyMini is built on a 0.8 inch by 1½ inch circuit board. It's
+       designed to fit in a 24mm coupler tube. The connectors and
+       screw terminals match TeleMini, so you can swap an EasyMini
+       with a TeleMini.
+      </para>
+    </section>
+    <section>
+      <title>TeleMega</title>
+      <para>
+       TeleMega is a 1¼ inch by 3¼ inch circuit board. It was
+       designed to easily fit in a 38mm coupler. Like TeleMetrum,
+       TeleMega has an accelerometer and so it must be mounted so that
+       the board is aligned with the flight axis. It can be mounted
+       either antenna up or down.
+      </para>
+    </section>
+    <section>
+      <title>Flight Data Recording</title>
+      <para>
+       Each flight computer logs data at 100 samples per second
+       during ascent and 10 samples per second during descent, except
+       for TeleMini v1.0, which records ascent at 10 samples per
+       second and descent at 1 sample per second. Data are logged to
+       an on-board flash memory part, which can be partitioned into
+       several equal-sized blocks, one for each flight.
+      </para>
+      <table frame='all'>
+       <title>Data Storage on Altus Metrum altimeters</title>
+       <tgroup cols='4' align='center' colsep='1' rowsep='1'>
+         <colspec align='center' colwidth='*' colname='Device'/>
+         <colspec align='center' colwidth='*' colname='Bytes per sample'/>
+         <colspec align='center' colwidth='*' colname='Total storage'/>
+         <colspec align='center' colwidth='*' colname='Minutes of
+                                                       full-rate'/>
+         <thead>
+           <row>
+             <entry align='center'>Device</entry>
+             <entry align='center'>Bytes per Sample</entry>
+             <entry align='center'>Total Storage</entry>
+             <entry align='center'>Minutes at Full Rate</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>TeleMetrum v1.0</entry>
+             <entry>8</entry>
+             <entry>1MB</entry>
+             <entry>20</entry>
+           </row>
+           <row>
+             <entry>TeleMetrum v1.1 v1.2</entry>
+             <entry>8</entry>
+             <entry>2MB</entry>
+             <entry>40</entry>
+           </row>
+           <row>
+             <entry>TeleMetrum v2.0</entry>
+             <entry>16</entry>
+             <entry>8MB</entry>
+             <entry>80</entry>
+           </row>
+           <row>
+             <entry>TeleMini v1.0</entry>
+             <entry>2</entry>
+             <entry>5kB</entry>
+             <entry>4</entry>
+           </row>
+           <row>
+             <entry>TeleMini v2.0</entry>
+             <entry>16</entry>
+             <entry>1MB</entry>
+             <entry>10</entry>
+           </row>
+           <row>
+             <entry>EasyMini</entry>
+             <entry>16</entry>
+             <entry>1MB</entry>
+             <entry>10</entry>
+           </row>
+           <row>
+             <entry>TeleMega</entry>
+             <entry>32</entry>
+             <entry>8MB</entry>
+             <entry>40</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+      <para>
+       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 you can store more flights.
+      </para>
+      <para>
+       Configuration data is also stored in the flash memory on
+       TeleMetrum v1.x, TeleMini and EasyMini. This consumes 64kB
+       of flash space.  This configuration space is not available
+       for storing flight log data. TeleMetrum v2.0 and TeleMega
+       store configuration data in a bit of eeprom available within
+       the processor chip, leaving that space available in flash for
+       more flight data.
+      </para>
+      <para>
+       To compute the amount of space needed for a single flight, you
+       can multiply the expected ascent time (in seconds) by 100
+       times bytes-per-sample, multiply the expected descent time (in
+       seconds) by 10 times the bytes per sample and add the two
+       together. That will slightly under-estimate the storage (in
+       bytes) needed for the flight. For instance, a TeleMetrum v2.0 flight spending
+       20 seconds in ascent and 150 seconds in descent will take
+       about (20 * 1600) + (150 * 160) = 56000 bytes of storage. You
+       could store dozens of these flights in the on-board flash.
+      </para>
+      <para>
+       The default size allows for several flights on each flight
+       computer, except for TeleMini v1.0, which only holds data for a
+       single flight. You can adjust the size.
+      </para>
+      <para>
+       Altus Metrum flight computers will not overwrite existing
+       flight data, so be sure to download flight data and erase it
+       from the flight computer before it fills up. The flight
+       computer will still successfully control the flight even if it
+       cannot log data, so the only thing you will lose is the data.
+      </para>
+    </section>
+    <section>
+      <title>Installation</title>
+      <para>
+       A typical installation involves attaching 
+       only a suitable battery, a single pole switch for 
+       power on/off, and two pairs of wires connecting e-matches for the 
+       apogee and main ejection charges.  All Altus Metrum products are 
+       designed for use with single-cell batteries with 3.7 volts
+       nominal. TeleMini v2.0 and EasyMini may also be used with other
+       batteries as long as they supply between 4 and 12 volts.
+      </para>
+      <para>
+       The battery connectors are a standard 2-pin JST connector and
+       match batteries sold by Spark Fun. These batteries are
+       single-cell Lithium Polymer batteries that nominally provide 3.7
+       volts.  Other vendors sell similar batteries for RC aircraft
+       using mating connectors, however the polarity for those is
+       generally reversed from the batteries used by Altus Metrum
+       products. In particular, the Tenergy batteries supplied for use
+       in Featherweight flight computers are not compatible with Altus
+       Metrum flight computers or battery chargers. <emphasis>Check
+       polarity and voltage before connecting any battery not purchased
+       from Altus Metrum or Spark Fun.</emphasis>
+      </para>
+      <para>
+       By default, we use the unregulated output of the 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 no more than 15 volts.
+
+      </para>
+      <para>
+       Ejection charges are wired directly to the screw terminal block
+       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>
+       Except for TeleMini v1.0, the flight computers also use the
+       screw terminal block for the power switch leads. On TeleMini v1.0,
+       the power switch leads are soldered 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 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 v1, you can unplug the integrated GPS
+       antenna and select an appropriate off-board GPS antenna with
+       cable terminating in a U.FL connector.
+      </para>
+    </section>
   </chapter>
   <chapter>
     <title>System Operation</title>
@@ -490,16 +843,24 @@ NAR #88757, TRA #12200
        configured as follows:
        <itemizedlist>
          <listitem>
+           <para>
            Sets the radio frequency to 434.550MHz
+           </para>
          </listitem>
          <listitem>
+           <para>
            Sets the radio calibration back to the factory value.
+           </para>
          </listitem>
          <listitem>
+           <para>
            Sets the callsign to N0CALL
+           </para>
          </listitem>
          <listitem>
+           <para>
            Does not go to 'pad' mode after five seconds.
+           </para>
          </listitem>
        </itemizedlist>
       </para>
@@ -670,25 +1031,28 @@ NAR #88757, TRA #12200
         data later...
       </para>
       <para>
-        We don't generally 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 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>
-      <para>
-       However, TeleMetrum v2.0 and TeleMega can send APRS if
-       desired, the interval between APRS packets can be
-       configured. As each APRS packet takes a full second to
-       transmit, we recommend an interval of at least 5 seconds.
+        We don't generally 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 forward error
+        correction and interleaving, this allows us to have a very
+        robust 19.2 kilobit data link with only 10-40 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 with our 10mW units and over 100k feet AGL with the
+        40mW devices.  We hope to fly boards to higher altitudes over
+        time, and would of course appreciate customer feedback on
+        performance in higher altitude flights!
+      </para>
+      <para>
+       TeleMetrum v2.0 and TeleMega can send APRS if desired, the
+       interval between APRS packets can be configured. As each APRS
+       packet takes a full second to transmit, we recommend an
+       interval of at least 5 seconds to avoid consuming too much
+       battery power or radio channel bandwidth.
       </para>
     </section>
     <section>
@@ -751,57 +1115,13 @@ NAR #88757, TRA #12200
       <section>
        <title>Maximum Flight Log</title>
        <para>
-         TeleMetrum version 1.1 and 1.2 have 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
-         (10 samples/second), there's plenty of space to store many
-         flights worth of data.
-       </para>
-       <para>
-         TeleMetrum v2.0 and TeleMega have 8MB of on-board flash stroage, enough to hold 
-       </para>
-       <para>
-         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/v1.2 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/v1.2 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>
-       <para>
-         As TeleMini does not contain an accelerometer, it stores
-         data at 10 samples per second during ascent and one sample
-         per second during descent. Each sample is a two byte reading
-         from the barometer. These are stored in 5kB of
-         on-chip flash memory which can hold 256 seconds at the
-         ascent rate or 2560 seconds at the descent rate. Because of
-         the limited storage, TeleMini cannot hold data for more than
-         one flight, and so must be erased after each flight or it
-         will not capture data for subsequent flights.
+         Changing this value will set the maximum amount of flight
+         log storage that an individual flight will use. The
+         available storage is divided into as many flights of the
+         specified size as can fit in the available space. You can
+         download and erase individual flight logs. If you fill up
+         the available storage, future flights will not get logged
+         until you erase some of the stored ones.
        </para>
       </section>
       <section>
@@ -811,7 +1131,7 @@ NAR #88757, TRA #12200
          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
+         altimeters, one in the fin can and one in the
          nose.
        </para>
        <para>
@@ -824,17 +1144,175 @@ NAR #88757, TRA #12200
       <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
+         TeleMetrum and TeleMega measure 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, the
+         altimeter must be explicitly configured for either Antenna
+         Up or Antenna Down. The default, Antenna Up, expects the end
+         of the 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>
+       <title>Pyro Channels</title>
+       <para>
+         In addition to the usual Apogee and Main pyro channels,
+         TeleMega has four additional channels that can be configured
+         to activate when various flight conditions are
+         satisfied. You can select as many conditions as necessary;
+         all of them must be met in order to activate the
+         channel. The conditions available are:
+       </para>
+       <itemizedlist>
+         <listitem>
+           <para>
+             Acceleration away from the ground. Select a value, and
+             then choose whether acceleration should be above or
+             below that value. Acceleration is positive upwards, so
+             accelerating towards the ground would produce negative
+             numbers. Acceleration during descent is noisy and
+             inaccurate, so be careful when using it during these
+             phases of the flight.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Vertical speed.  Select a value, and then choose whether
+             vertical speed should be above or below that
+             value. Speed is positive upwards, so moving towards the
+             ground would produce negative numbers. Speed during
+             descent is a bit noisy and so be careful when using it
+             during these phases of the flight.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Height. Select a value, and then choose whether the
+             height above the launch pad should be above or below
+             that value.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Orientation. TeleMega contains a 3-axis gyroscope and
+             accelerometer which is used to measure the current
+             angle. Note that this angle is not the change in angle
+             from the launch pad, but rather absolute relative to
+             gravity; the 3-axis accelerometer is used to compute the
+             angle of the rocket on the launch pad and initialize the
+             system. Because this value is computed by integrating
+             rate gyros, it gets progressively less accurate as the
+             flight goes on. It should have an accumulated error of
+             less than .2°/second (after 10 seconds of flight, the
+             error should be less than 2°).
+           </para>
+           <para>
+             The usual use of the orientation configuration is to
+             ensure that the rocket is traveling mostly upwards when
+             deciding whether to ignite air starts or additional
+             stages. For that, choose a reasonable maximum angle
+             (like 20°) and set the motor igniter to require an angle
+             of less than that value.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Flight Time. Time since boost was detected. Select a
+             value and choose whether to activate the pyro channel
+             before or after that amount of time.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Ascending. A simple test saying whether the rocket is
+             going up or not. This is exactly equivalent to testing
+             whether the speed is &gt; 0.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Descending. A simple test saying whether the rocket is
+             going down or not. This is exactly equivalent to testing
+             whether the speed is &lt; 0.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             After Motor. The flight software counts each time the
+             rocket starts accelerating (presumably due to a motor or
+             motors igniting). Use this value to count ignitions for
+             multi-staged or multi-airstart launches.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Delay. This value doesn't perform any checks, instead it
+             inserts a delay between the time when the other
+             parameters become true and when the pyro channel is
+             activated.
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             Flight State. The flight software tracks the flight
+             through a sequence of states:
+             <orderedlist>
+               <listitem>
+                 <para>
+                   Boost. The motor has lit and the rocket is
+                   accelerating upwards.
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>
+                   Fast. The motor has burned out and the rocket is
+                   descellerating, but it is going faster than 200m/s.
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>
+                   Coast. The rocket is still moving upwards and
+                   decelerating, but the speed is less than 200m/s.
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>
+                   Drogue. The rocket has reached apogee and is heading
+                   back down, but is above the configured Main
+                   altitude.
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>
+                   Main. The rocket is still descending, and is blow
+                   the Main altitude
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>
+                   Landed. The rocket is no longer moving.
+                 </para>
+               </listitem>
+             </orderedlist>
+           </para>
+           <para>
+             You can select a state to limit when the pyro channel
+             may activate; note that the check is based on when the
+             rocket transitions *into* the state, and so checking for
+             'greater than Boost' means that the rocket is currently
+             in boost state.
+           </para>
+           <para>
+             When a motor burns out, the rocket enters either Fast or
+             Coast state (depending on how fast it is moving). If the
+             computer detects upwards acceleration again, it will
+             move back to Boost state.
+           </para>
+         </listitem>
+       </itemizedlist>
+      </section>
     </section>
 
   </chapter>
@@ -843,9 +1321,8 @@ NAR #88757, TRA #12200
     <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
+      interacting with the Altus Metrum product family. AltosUI can
+      monitor telemetry data, configure 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
@@ -991,12 +1468,12 @@ NAR #88757, TRA #12200
               </para>
             </listitem>
           </itemizedlist>
-          <para>
-            The Launchpad tab also shows the computed launch pad position
-            and altitude, averaging many reported positions to improve the
-            accuracy of the fix.
-          </para>
         </para>
+       <para>
+         The Launchpad tab also shows the computed launch pad position
+         and altitude, averaging many reported positions to improve the
+         accuracy of the fix.
+       </para>
       </section>
       <section>
         <title>Ascent</title>
@@ -1396,11 +1873,11 @@ NAR #88757, TRA #12200
       <section>
         <title>Pad Orientation</title>
        <para>
-         Because it includes an accelerometer, TeleMetrum is
-         sensitive to the orientation of the board. By default, it
-         expects the antenna end to point forward. This parameter
-         allows that default to be changed, permitting the board to
-         be mounted with the antenna pointing aft instead.
+         Because it includes an accelerometer, TeleMetrum and
+         TeleMega are sensitive to the orientation of the board. By
+         default, it expects the antenna end to point forward. This
+         parameter allows that default to be changed, permitting the
+         board to be mounted with the antenna pointing aft instead.
        </para>
        <itemizedlist>
          <listitem>
@@ -1821,12 +2298,12 @@ NAR #88757, TRA #12200
               </para>
             </listitem>
           </itemizedlist>
-          <para>
-            The Launchpad tab also shows the computed launch pad position
-            and altitude, averaging many reported positions to improve the
-            accuracy of the fix.
-          </para>
-        </para>
+       </para>
+       <para>
+         The Launchpad tab also shows the computed launch pad position
+         and altitude, averaging many reported positions to improve the
+         accuracy of the fix.
+       </para>
       </section>
     </section>
     <section>
@@ -1913,19 +2390,29 @@ NAR #88757, TRA #12200
           So, to recap, on the ground the hardware you'll need includes:
           <orderedlist inheritnum='inherit' numeration='arabic'>
             <listitem>
-              an antenna and feed-line or adapter
+              <para>
+             an antenna and feed-line or adapter
+             </para>
             </listitem>
             <listitem>
-              a TeleDongle
+              <para>
+             a TeleDongle
+             </para>
             </listitem>
             <listitem>
-              a notebook computer
+              <para>
+             a notebook computer
+             </para>
             </listitem>
             <listitem>
-              optionally, a hand-held GPS receiver
+              <para>
+             optionally, a hand-held GPS receiver
+             </para>
             </listitem>
             <listitem>
-              optionally, an HT or receiver covering 435 MHz
+              <para>
+             optionally, an HT or receiver covering 435 MHz
+             </para>
             </listitem>
           </orderedlist>
         </para>
@@ -2021,14 +2508,18 @@ NAR #88757, TRA #12200
       </para>
       <orderedlist inheritnum='inherit' numeration='arabic'>
        <listitem>
-         Make sure TeleMetrum is aligned precisely along the axis of
-         acceleration so that the accelerometer can accurately
-         capture data during the flight.
+         <para>
+           Make sure TeleMetrum is aligned precisely along the axis of
+           acceleration so that the accelerometer can accurately
+           capture data during the flight.
+         </para>
        </listitem>
        <listitem>
-         Watch for any metal touching components on the
-         board. Shorting out connections on the bottom of the board
-         can cause the altimeter to fail during flight.
+         <para>
+           Watch for any metal touching components on the
+           board. Shorting out connections on the bottom of the board
+           can cause the altimeter to fail during flight.
+         </para>
        </listitem>
       </orderedlist>
     </section>
@@ -2094,18 +2585,22 @@ NAR #88757, TRA #12200
        attenuate the GPS signal.
       <orderedlist inheritnum='inherit' numeration='arabic'>
        <listitem>
-         Conductive tubing or coatings. Carbon fiber and metal
-         tubing, or metallic paint will all dramatically attenuate the
-         GPS signal. We've never heard of anyone successfully
-         receiving GPS from inside these materials.
+         <para>
+           Conductive tubing or coatings. Carbon fiber and metal
+           tubing, or metallic paint will all dramatically attenuate the
+           GPS signal. We've never heard of anyone successfully
+           receiving GPS from inside these materials.
+         </para>
        </listitem>
        <listitem>
-         Metal components near the GPS patch antenna. These will
-         de-tune the patch antenna, changing the resonant frequency
-         away from the L1 carrier and reduce the effectiveness of the
-         antenna. You can place as much stuff as you like beneath the
-         antenna as that's covered with a ground plane. But, keep
-         wires and metal out from above the patch antenna.
+         <para>
+           Metal components near the GPS patch antenna. These will
+           de-tune the patch antenna, changing the resonant frequency
+           away from the L1 carrier and reduce the effectiveness of the
+           antenna. You can place as much stuff as you like beneath the
+           antenna as that's covered with a ground plane. But, keep
+           wires and metal out from above the patch antenna.
+         </para>
        </listitem>
       </orderedlist>
       </para>
@@ -2132,16 +2627,21 @@ NAR #88757, TRA #12200
       </para>
       <itemizedlist>
        <listitem>
-         Keep wires from different circuits apart. Moving circuits
-         further apart will reduce RFI.
+         <para>
+           Keep wires from different circuits apart. Moving circuits
+           further apart will reduce RFI.
+         </para>
        </listitem>
        <listitem>
+         <para>
          Avoid parallel wires from different circuits. The longer two
          wires run parallel to one another, the larger the amount of
          transferred energy. Cross wires at right angles to reduce
          RFI.
+         </para>
        </listitem>
        <listitem>
+         <para>
          Twist wires from the same circuits. Two wires the same
          distance from the transmitter will get the same amount of
          induced energy which will then cancel out. Any time you have
@@ -2149,14 +2649,17 @@ NAR #88757, TRA #12200
          even out distances and reduce RFI. For altimeters, this
          includes battery leads, switch hookups and igniter
          circuits.
+         </para>
        </listitem>
        <listitem>
+         <para>
          Avoid resonant lengths. Know what frequencies are present
          in the environment and avoid having wire lengths near a
          natural resonant length. Altusmetrum products transmit on the
          70cm amateur band, so you should avoid lengths that are a
          simple ratio of that length; essentially any multiple of 1/4
          of the wavelength (17.5cm).
+         </para>
        </listitem>
       </itemizedlist>
     </section>
@@ -2238,59 +2741,83 @@ NAR #88757, TRA #12200
       <title>Updating TeleMetrum Firmware</title>
       <orderedlist inheritnum='inherit' numeration='arabic'>
         <listitem>
+         <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.
+         </para>
         </listitem>
         <listitem>
+         <para>
           Take the 2 screws out of the TeleDongle case to get access
           to the circuit board.
+         </para>
         </listitem>
         <listitem>
+         <para>
           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>
         </listitem>
         <listitem>
+         <para>
           Attach a battery to the TeleMetrum board.
+         </para>
         </listitem>
         <listitem>
+         <para>
           Plug the TeleDongle into your computer's USB port, and power
           up the TeleMetrum.
+         </para>
         </listitem>
         <listitem>
+         <para>
           Run AltosUI, and select 'Flash Image' from the File menu.
+         </para>
         </listitem>
         <listitem>
+         <para>
           Pick the TeleDongle device from the list, identifying it as the
           programming device.
+         </para>
         </listitem>
         <listitem>
+         <para>
           Select the image you want put on the TeleMetrum, which should have a
           name in the form telemetrum-v1.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.
+         </para>
         </listitem>
         <listitem>
+         <para>
           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.
+         </para>
         </listitem>
         <listitem>
+         <para>
           Hit the 'OK' button and the software should proceed to flash
           the TeleMetrum with new firmware, showing a progress bar.
+         </para>
         </listitem>
         <listitem>
+         <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>
         </listitem>
         <listitem>
+         <para>
           If something goes wrong, give it another try.
+         </para>
         </listitem>
       </orderedlist>
     </section>
@@ -2298,16 +2825,21 @@ NAR #88757, TRA #12200
       <title>Updating TeleMini Firmware</title>
       <orderedlist inheritnum='inherit' numeration='arabic'>
         <listitem>
+<para>
          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>
+        </para>
+</listitem>
         <listitem>
+<para>
           Take the 2 screws out of the TeleDongle case to get access
           to the circuit board.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           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
@@ -2315,44 +2847,63 @@ NAR #88757, TRA #12200
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           Attach a battery to the TeleMini board.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           Plug the TeleDongle into your computer's USB port, and power
           up the TeleMini
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           Run AltosUI, and select 'Flash Image' from the File menu.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           Pick the TeleDongle device from the list, identifying it as the
           programming device.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           Hit the 'OK' button and the software should proceed to flash
           the TeleMini with new firmware, showing a progress bar.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           If something goes wrong, give it another try.
-        </listitem>
+        </para>
+</listitem>
       </orderedlist>
     </section>
     <section>
@@ -2363,68 +2914,94 @@ NAR #88757, TRA #12200
        </para>
       <orderedlist inheritnum='inherit' numeration='arabic'>
         <listitem>
+<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.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
          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>
+        </para>
+</listitem>
         <listitem>
+<para>
           Take the 2 screws out of the TeleDongle case to get access
           to the circuit board.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           Attach a battery to the TeleMetrum board if you're using one.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           Plug both the programmer and the TeleDongle into your computer's USB
          ports, and power up the programmer.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           Run AltosUI, and select 'Flash Image' from the File menu.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           Pick the programmer device from the list, identifying it as the
           programming device.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           Hit the 'OK' button and the software should proceed to flash
           the TeleDongle with new firmware, showing a progress bar.
-        </listitem>
+        </para>
+</listitem>
         <listitem>
+<para>
           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>
+        </para>
+</listitem>
         <listitem>
+<para>
           If something goes wrong, give it another try.
-        </listitem>
+        </para>
+</listitem>
       </orderedlist>
       <para>
         Be careful removing the programming cable from the locking 8-pin
@@ -2936,21 +3513,80 @@ NAR #88757, TRA #12200
         </para>
       </section>
   </appendix>
-  <appendix
-      xmlns:xi="http://www.w3.org/2001/XInclude">
+  <appendix>
     <title>Release Notes</title>
-    <simplesect><title>Version 1.3</title><xi:include  href="release-notes-1.3.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 1.2.1</title><xi:include        href="release-notes-1.2.1.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 1.2</title><xi:include  href="release-notes-1.2.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 1.1.1</title><xi:include        href="release-notes-1.1.1.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 1.1</title><xi:include  href="release-notes-1.1.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 1.0.1</title><xi:include        href="release-notes-1.0.1.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 0.9.2</title><xi:include        href="release-notes-0.9.2.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 0.9</title><xi:include  href="release-notes-0.9.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 0.8</title><xi:include  href="release-notes-0.8.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
-    <simplesect><title>Version 0.7.1</title><xi:include        href="release-notes-0.7.1.xsl"  xpointer="xpointer(/article/*)"/></simplesect>
+    <simplesect>
+      <title>Version 1.3</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-1.3.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 1.2.1</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-1.2.1.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 1.2</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-1.2.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 1.1.1</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-1.1.1.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 1.1</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-1.1.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 1.0.1</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-1.0.1.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 0.9.2</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-0.9.2.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 0.9</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-0.9.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 0.8</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-0.8.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
+    <simplesect>
+      <title>Version 0.7.1</title>
+      <xi:include
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         href="release-notes-0.7.1.xsl"
+         xpointer="xpointer(/article/*)"/>
+    </simplesect>
   </appendix>
 </book>
 
-<!--  LocalWords:  Altusmetrum
--->
+<!-- LocalWords: Altusmetrum
+-->
\ No newline at end of file