doc: Start doc transition to asciidoc
authorKeith Packard <keithp@keithp.com>
Thu, 29 Oct 2015 03:12:15 +0000 (12:12 +0900)
committerKeith Packard <keithp@keithp.com>
Sun, 1 Nov 2015 13:56:17 +0000 (05:56 -0800)
Signed-off-by: Keith Packard <keithp@keithp.com>
24 files changed:
doc/.gitignore
doc/Makefile
doc/altusmetrum-docinfo.xml [new file with mode: 0644]
doc/altusmetrum.txt [new file with mode: 0644]
doc/altusmetrum.xsl [deleted file]
doc/am-fo.xsl [new file with mode: 0644]
doc/am.css [new file with mode: 0644]
doc/common.xsl [new file with mode: 0644]
doc/fonts/DejaVuSansMono-Bold.ttf [new file with mode: 0644]
doc/fonts/DejaVuSansMono-BoldOblique.ttf [new file with mode: 0644]
doc/fonts/DejaVuSansMono-Oblique.ttf [new file with mode: 0644]
doc/fonts/DejaVuSansMono.ttf [new file with mode: 0644]
doc/fonts/FrutigerLTStd-Italic.otf [new file with mode: 0644]
doc/fonts/FrutigerLTStd-Light.otf [new file with mode: 0644]
doc/fonts/FrutigerLTStd-LightItalic.otf [new file with mode: 0644]
doc/fonts/FrutigerLTStd-Roman.otf [new file with mode: 0644]
doc/footer.templates.xsl [new file with mode: 0644]
doc/fop.xconf [new file with mode: 0644]
doc/getting-started.inc [new file with mode: 0644]
doc/handling.inc [new file with mode: 0644]
doc/intro.inc [new file with mode: 0644]
doc/specs.inc [new file with mode: 0644]
doc/telemetrum.inc [new file with mode: 0644]
doc/usage.inc [new file with mode: 0644]

index 73fe56e6e18bb0b0f65cddf49324a9bd2014db02..786123a3d43c0afd5db2710b8574a8e3ddef9953 100644 (file)
@@ -1,4 +1,6 @@
 *.html
 *.pdf
 *.fo
+*.raw
 titlepage.templates.xsl
+fop-cfg.xml
index 9d4d68c6e18ff70108fa6a34181fb458f75c4fc7..6ebe829cc2fbc1a1693dd02898efc7d348ff958e 100644 (file)
@@ -61,6 +61,15 @@ PICTURES=\
        telemini-v1-top.jpg \
        telemini-v2-top.jpg
 
+TXT_FILES=altusmetrum.txt
+INC_FILES=intro.inc getting-started.inc usage.inc telemetrum.inc handling.inc specs.inc
+
+RAW_FILES=$(TXT_FILES:.txt=.raw)
+
+RAW_INC=$(INC_FILES:.inc=.raw)
+
+AD_PDF=$(TXT_FILES:.txt=.pdf)
+
 SVG=\
        easymini.svg \
        telemega.svg \
@@ -71,7 +80,7 @@ SVG=\
 RELNOTES_XSL=$(RELNOTES:.html=.xsl)
 HTML=altusmetrum.html altos.html telemetry.html companion.html micropeak.html telegps.html $(RELNOTES)
 PDF=altusmetrum.pdf altos.pdf telemetry.pdf companion.pdf micropeak.pdf telegps.pdf \
-       telemetrum-outline.pdf telemega-outline.pdf easymini-outline.pdf easymega-outline.pdf
+       telemetrum-outline.pdf telemega-outline.pdf easymini-outline.pdf easymega-outline.pdf $(AD_PDF)
 HTMLSTYLE=/usr/share/xml/docbook/stylesheet/docbook-xsl/html/docbook.xsl
 FOSTYLE=xorg-fo.xsl
 FOPCFG=fop-cfg.xml
@@ -80,10 +89,22 @@ PDFSTYLE=
 IMAGES=$(PICTURES) $(SVG)
 DOC=$(HTML) $(PDF) $(IMAGES)
 
-.SUFFIXES: .xml .xsl .html .pdf
+.SUFFIXES: .inc .txt .raw .pdf .html
 
 XSLTFLAGS=--stringparam section.autolabel 1 --xinclude
 
+.txt.raw:
+       sed -e 's/@@VERSION@@/$(VERSION)/' -e 's/@@DATE@@/$(DATE)/' -e 's/^[    ]*//' -e 's/^\\//' $*.txt > $@
+
+.inc.raw:
+       sed -e 's/@@VERSION@@/$(VERSION)/' -e 's/@@DATE@@/$(DATE)/' -e 's/^[    ]*//' -e 's/^\\//' $*.inc > $@
+
+.raw.pdf:
+       a2x --verbose -k -d book -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file am-fo.xsl --fop --fop-opts="-c fop.xconf" $*.raw
+
+.raw.html:
+       a2x --verbose -k -d book -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --stylesheet=am.css $*.raw
+
 .xsl.html:
        xsltproc $(XSLTFLAGS) -o $@ $(HTMLSTYLE) $*.xsl
 
@@ -95,6 +116,8 @@ XSLTFLAGS=--stringparam section.autolabel 1 --xinclude
 
 all:   $(HTML) $(PDF)
 
+altusmetrum.pdf: altusmetrum-docinfo.xml $(RAW_FILES) $(RAW_INC)
+
 install:       all
 
 publish:       $(DOC)
diff --git a/doc/altusmetrum-docinfo.xml b/doc/altusmetrum-docinfo.xml
new file mode 100644 (file)
index 0000000..05815f5
--- /dev/null
@@ -0,0 +1,153 @@
+<subtitle>An Owner's Manual for Altus Metrum Rocketry Electronics</subtitle>
+<author>
+  <firstname>Bdale</firstname>
+  <surname>Garbee</surname>
+</author>
+<author>
+  <firstname>Keith</firstname>
+  <surname>Packard</surname>
+</author>
+<author>
+  <firstname>Bob</firstname>
+  <surname>Finch</surname>
+</author>
+<author>
+  <firstname>Anthony</firstname>
+  <surname>Towns</surname>
+</author>
+<copyright>
+  <year>2015</year>
+  <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+  <imageobject>
+    <imagedata fileref="../themes/background.png" width="6.0in"/>
+  </imageobject>
+</mediaobject>
+<legalnotice>
+  <para>
+    This document is released under the terms of the
+    <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+      Creative Commons ShareAlike 3.0
+    </ulink>
+    license.
+  </para>
+</legalnotice>
+<revhistory>
+  <revision>
+    <revnumber>1.6.1</revnumber>
+    <date>15 July 2015</date>
+    <revremark>
+      Minor release adding TeleBT v3.0 support.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.6</revnumber>
+    <date>8 January 2015</date>
+    <revremark>
+      Major release adding TeleDongle v3.0 support.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.5</revnumber>
+    <date>6 September 2014</date>
+    <revremark>
+      Major release adding EasyMega support.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.4.1</revnumber>
+    <date>20 June 2014</date>
+    <revremark>
+      Minor release fixing some installation bugs.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.4</revnumber>
+    <date>15 June 2014</date>
+    <revremark>
+      Major release adding TeleGPS support.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.3.2</revnumber>
+    <date>24 January 2014</date>
+    <revremark>
+      Bug fixes for TeleMega and AltosUI.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.3.1</revnumber>
+    <date>21 January 2014</date>
+    <revremark>
+      Bug fixes for TeleMega and TeleMetrum v2.0 along with a few
+      small UI improvements.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.3</revnumber>
+    <date>12 November 2013</date>
+    <revremark>
+      Updated for software version 1.3. Version 1.3 adds support
+      for TeleMega, TeleMetrum v2.0, TeleMini v2.0 and EasyMini
+      and fixes bugs in AltosUI and the AltOS firmware.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.2.1</revnumber>
+    <date>21 May 2013</date>
+    <revremark>
+      Updated for software version 1.2. Version 1.2 adds support
+      for TeleBT and AltosDroid. It also adds a few minor features
+      and fixes bugs in AltosUI and the AltOS firmware.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.2</revnumber>
+    <date>18 April 2013</date>
+    <revremark>
+      Updated for software version 1.2. Version 1.2 adds support
+      for MicroPeak and the MicroPeak USB interface.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.1.1</revnumber>
+    <date>16 September 2012</date>
+    <revremark>
+      Updated for software version 1.1.1 Version 1.1.1 fixes a few
+      bugs found in version 1.1.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.1</revnumber>
+    <date>13 September 2012</date>
+    <revremark>
+      Updated for software version 1.1. Version 1.1 has new
+      features but is otherwise compatible with version 1.0.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>1.0</revnumber>
+    <date>24 August 2011</date>
+    <revremark>
+      Updated for software version 1.0.  Note that 1.0 represents a
+      telemetry format change, meaning both ends of a link 
+      (TeleMetrum/TeleMini and TeleDongle) must be updated or 
+      communications will fail.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>0.9</revnumber>
+    <date>18 January 2011</date>
+    <revremark>
+      Updated for software version 0.9.  Note that 0.9 represents a
+      telemetry format change, meaning both ends of a link (TeleMetrum and
+      TeleDongle) must be updated or communications will fail.
+    </revremark>
+  </revision>
+  <revision>
+    <revnumber>0.8</revnumber>
+    <date>24 November 2010</date>
+    <revremark>Updated for software version 0.8 </revremark>
+  </revision>
+</revhistory>
diff --git a/doc/altusmetrum.txt b/doc/altusmetrum.txt
new file mode 100644 (file)
index 0000000..5b6dfe8
--- /dev/null
@@ -0,0 +1,46 @@
+= The Altus Metrum System
+
+:doctype: book
+:numbered:
+
+       [dedication]
+       == Acknowledgments
+
+               Thanks to Bob Finch, W9YA, NAR 12965, TRA 12350 for writing “The
+               Mere-Mortals Quick Start/Usage Guide to the Altus Metrum Starter
+               Kit” which formed the basis of the original Getting Started chapter
+               in this manual.  Bob was one of our first customers for a production
+               TeleMetrum, and his continued enthusiasm and contributions
+               are immensely gratifying and highly appreciated!
+
+               And thanks to Anthony (AJ) Towns for major contributions including
+               the AltosUI graphing and site map code and associated documentation.
+               Free software means that our customers and friends can become our
+               collaborators, and we certainly appreciate this level of
+               contribution!
+
+               Have fun using these products, and we hope to meet all of you
+               out on the rocket flight line somewhere.
+
+               [verse]
+               Bdale Garbee, KB0G
+               NAR #87103, TRA #12201
+
+               [verse]
+               Keith Packard, KD7SQG
+               NAR #88757, TRA #12200
+
+       include::intro.raw[]
+
+       include::getting-started.raw[]
+
+       include::usage.raw[]
+
+       include::telemetrum.raw[]
+
+       include::handling.raw[]
+
+       include::specs.raw[]
+
+       [index]
+       == Index
diff --git a/doc/altusmetrum.xsl b/doc/altusmetrum.xsl
deleted file mode 100644 (file)
index d1328ab..0000000
+++ /dev/null
@@ -1,6413 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
-<book>
-  <title>The Altus Metrum System</title>
-  <subtitle>An Owner's Manual for Altus Metrum Rocketry Electronics</subtitle>
-  <bookinfo>
-    <author>
-      <firstname>Bdale</firstname>
-      <surname>Garbee</surname>
-    </author>
-    <author>
-      <firstname>Keith</firstname>
-      <surname>Packard</surname>
-    </author>
-    <author>
-      <firstname>Bob</firstname>
-      <surname>Finch</surname>
-    </author>
-    <author>
-      <firstname>Anthony</firstname>
-      <surname>Towns</surname>
-    </author>
-    <copyright>
-      <year>2015</year>
-      <holder>Bdale Garbee and Keith Packard</holder>
-    </copyright>
-    <mediaobject>
-      <imageobject>
-       <imagedata fileref="../themes/background.png" width="6.0in"/>
-      </imageobject>
-    </mediaobject>
-    <legalnotice>
-      <para>
-        This document is released under the terms of the
-        <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
-          Creative Commons ShareAlike 3.0
-        </ulink>
-        license.
-      </para>
-    </legalnotice>
-    <revhistory>
-      <revision>
-       <revnumber>1.6.1</revnumber>
-       <date>15 July 2015</date>
-       <revremark>
-         Minor release adding TeleBT v3.0 support.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.6</revnumber>
-       <date>8 January 2015</date>
-       <revremark>
-         Major release adding TeleDongle v3.0 support.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.5</revnumber>
-       <date>6 September 2014</date>
-       <revremark>
-         Major release adding EasyMega support.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.4.1</revnumber>
-       <date>20 June 2014</date>
-       <revremark>
-         Minor release fixing some installation bugs.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.4</revnumber>
-       <date>15 June 2014</date>
-       <revremark>
-         Major release adding TeleGPS support.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.3.2</revnumber>
-       <date>24 January 2014</date>
-       <revremark>
-         Bug fixes for TeleMega and AltosUI.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.3.1</revnumber>
-       <date>21 January 2014</date>
-       <revremark>
-         Bug fixes for TeleMega and TeleMetrum v2.0 along with a few
-         small UI improvements.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.3</revnumber>
-       <date>12 November 2013</date>
-       <revremark>
-         Updated for software version 1.3. Version 1.3 adds support
-         for TeleMega, TeleMetrum v2.0, TeleMini v2.0 and EasyMini
-         and fixes bugs in AltosUI and the AltOS firmware.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.2.1</revnumber>
-       <date>21 May 2013</date>
-       <revremark>
-         Updated for software version 1.2. Version 1.2 adds support
-         for TeleBT and AltosDroid. It also adds a few minor features
-         and fixes bugs in AltosUI and the AltOS firmware.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.2</revnumber>
-       <date>18 April 2013</date>
-       <revremark>
-         Updated for software version 1.2. Version 1.2 adds support
-         for MicroPeak and the MicroPeak USB interface.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.1.1</revnumber>
-       <date>16 September 2012</date>
-       <revremark>
-         Updated for software version 1.1.1 Version 1.1.1 fixes a few
-         bugs found in version 1.1.
-       </revremark>
-      </revision>
-      <revision>
-       <revnumber>1.1</revnumber>
-       <date>13 September 2012</date>
-       <revremark>
-         Updated for software version 1.1. Version 1.1 has new
-         features but is otherwise compatible with version 1.0.
-       </revremark>
-      </revision>
-      <revision>
-        <revnumber>1.0</revnumber>
-        <date>24 August 2011</date>
-       <revremark>
-         Updated for software version 1.0.  Note that 1.0 represents a
-         telemetry format change, meaning both ends of a link 
-         (TeleMetrum/TeleMini and TeleDongle) must be updated or 
-          communications will fail.
-       </revremark>
-      </revision>
-      <revision>
-        <revnumber>0.9</revnumber>
-        <date>18 January 2011</date>
-       <revremark>
-         Updated for software version 0.9.  Note that 0.9 represents a
-         telemetry format change, meaning both ends of a link (TeleMetrum and
-         TeleDongle) must be updated or communications will fail.
-       </revremark>
-      </revision>
-      <revision>
-        <revnumber>0.8</revnumber>
-        <date>24 November 2010</date>
-       <revremark>Updated for software version 0.8 </revremark>
-      </revision>
-    </revhistory>
-  </bookinfo>
-  <dedication>
-    <title>Acknowledgments</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
-      Kit” which formed the basis of the original Getting Started chapter 
-      in this manual.  Bob was one of our first customers for a production
-      TeleMetrum, and his continued enthusiasm and contributions
-      are immensely gratifying and highly appreciated!
-    </para>
-    <para>
-      And thanks to Anthony (AJ) Towns for major contributions including
-      the AltosUI graphing and site map code and associated documentation. 
-      Free software means that our customers and friends can become our
-      collaborators, and we certainly appreciate this level of
-      contribution!
-    </para>
-    <para>
-      Have fun using these products, and we hope to meet all of you
-      out on the rocket flight line somewhere.
-      <literallayout>
-Bdale Garbee, KB0G
-NAR #87103, TRA #12201
-
-Keith Packard, KD7SQG
-NAR #88757, TRA #12200
-      </literallayout>
-    </para>
-  </dedication>
-  <chapter>
-    <title>Introduction and Overview</title>
-    <para>
-      Welcome to the Altus Metrum community!  Our circuits and software reflect
-      our passion for both hobby rocketry and Free Software.  We hope their
-      capabilities and performance will delight you in every way, but by
-      releasing all of our hardware and software designs under open licenses,
-      we also hope to empower you to take as active a role in our collective
-      future as you wish!
-    </para>
-    <para>
-      The first device created for our community was TeleMetrum, a dual
-      deploy altimeter with fully integrated GPS and radio telemetry
-      as standard features, and a “companion interface” that will
-      support optional capabilities in the future. The latest version
-      of TeleMetrum, v2.0, has all of the same features but with
-      improved sensors and radio to offer increased performance.
-    </para>
-    <para>
-      Our second device was TeleMini, a dual deploy altimeter with
-      radio telemetry and radio direction finding. The first version
-      of this device was only 13mm by 38mm (½ inch by 1½ inches) and
-      could fit easily in an 18mm air-frame. The latest version, v2.0,
-      includes a beeper, USB data download and extended on-board
-      flight logging, along with an improved barometric sensor.
-    </para>
-    <para>
-      TeleMega is our most sophisticated device, including six pyro
-      channels (four of which are fully programmable), integrated GPS,
-      integrated gyroscopes for staging/air-start inhibit and high
-      performance telemetry.
-    </para>
-    <para>
-      EasyMini is a dual-deploy altimeter with logging and built-in
-      USB data download.
-    </para>
-    <para>
-      EasyMega is essentially a TeleMega board with the GPS receiver
-      and telemetry transmitter removed. It offers the same 6 pyro
-      channels and integrated gyroscopes for staging/air-start inhibit.
-    </para>
-    <para>
-      TeleDongle v0.2 was our first ground station, providing a USB to RF
-      interfaces for communicating with the altimeters. Combined with
-      your choice of antenna and notebook computer, TeleDongle and our
-      associated user interface software form a complete ground
-      station capable of logging and displaying in-flight telemetry,
-      aiding rocket recovery, then processing and archiving flight
-      data for analysis and review. The latest version, TeleDongle
-      v3, has all new electronics with a higher performance radio
-      for improved range.
-    </para>
-    <para>
-      For a slightly more portable ground station experience that also
-      provides direct rocket recovery support, TeleBT offers flight
-      monitoring and data logging using a  Bluetooth™ connection between
-      the receiver and an Android device that has the AltosDroid
-      application installed from the Google Play store.
-    </para>
-    <para>
-      More products will be added to the Altus Metrum family over time, and
-      we currently envision that this will be a single, comprehensive manual
-      for the entire product family.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Getting Started</title>
-    <para>
-      The first thing to do after you check the inventory of parts in your
-      “starter kit” is to charge the battery.
-    </para>
-    <para>
-      For TeleMetrum, TeleMega and EasyMega, the battery can be charged by plugging it into the
-      corresponding socket of the device and then using the USB
-      cable to plug the flight computer into your computer's USB socket. The
-      on-board circuitry will charge the battery whenever it is plugged
-      in, because the on-off switch does NOT control the
-      charging circuitry.
-    </para>
-    <para>
-      On TeleMetrum v1 boards, when the GPS chip is initially
-      searching for satellites, TeleMetrum will consume more current
-      than it pulls from the USB port, so the battery must be
-      attached in order to get satellite lock.  Once GPS is locked,
-      the current consumption goes back down enough to enable charging
-      while running. So it's a good idea to fully charge the battery
-      as your first item of business so there is no issue getting and
-      maintaining satellite lock.  The yellow charge indicator led
-      will go out when the battery is nearly full and the charger goes
-      to trickle charge. It can take several hours to fully recharge a
-      deeply discharged battery.
-    </para>
-    <para>
-      TeleMetrum v2.0, TeleMega and EasyMega use a higher power battery charger,
-      allowing them to charge the battery while running the board at
-      maximum power. When the battery is charging, or when the board
-      is consuming a lot of power, the red LED will be lit. When the
-      battery is fully charged, the green LED will be lit. When the
-      battery is damaged or missing, both LEDs will be lit, which
-      appears yellow.
-    </para>
-    <para>
-      The Lithium Polymer TeleMini and EasyMini battery can be charged by
-      disconnecting it from the board and plugging it into a
-      standalone battery charger such as the LipoCharger product
-      included in TeleMini Starter Kits, and connecting that via a USB
-      cable to a laptop or other USB power source.
-    </para>
-    <para>
-      You can also choose to use another battery with TeleMini v2.0
-      and EasyMini, anything supplying between 4 and 12 volts should
-      work fine (like a standard 9V battery), but if you are planning
-      to fire pyro charges, ground testing is required to verify that
-      the battery supplies enough current to fire your chosen e-matches.
-    </para>
-    <para>
-      The other active device in the starter kit is the TeleDongle USB to
-      RF interface.  If you plug it in to your Mac or Linux computer it should
-      “just work”, showing up as a serial port device.  Windows systems need
-      driver information that is part of the AltOS download to know that the
-      existing USB modem driver will work.  We therefore recommend installing
-      our software before plugging in TeleDongle if you are using a Windows
-      computer.  If you are using an older version of Linux and are having 
-      problems, try moving to a fresher kernel (2.6.33 or newer). 
-    </para>
-    <para>
-      Next you should obtain and install the AltOS software.  The AltOS
-      distribution includes the AltosUI ground station program, current 
-      firmware
-      images for all of the hardware, and a number of standalone
-      utilities that are rarely needed.  Pre-built binary packages are
-      available for Linux, Microsoft Windows, and recent MacOSX
-      versions.  Full source code and build instructions are also
-      available.  The latest version may always be downloaded from
-      <ulink url="http://altusmetrum.org/AltOS"/>.
-    </para>
-    <para>
-      If you're using a TeleBT instead of the TeleDongle, you'll want to 
-      install the AltosDroid application from the Google Play store on an 
-      Android device. You don't need a data plan to use AltosDroid, but 
-      without network access, the Map view will be less useful as it
-      won't contain any map data. You can also use TeleBT connected
-      over USB with your laptop computer; it acts exactly like a
-      TeleDongle. Anywhere this manual talks about TeleDongle, you can
-      also read that as 'and TeleBT when connected via USB'.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Handling Precautions</title>
-    <para>
-      All Altus Metrum products are sophisticated electronic devices.  
-      When handled gently and properly installed in an air-frame, they
-      will deliver impressive results.  However, as with all electronic 
-      devices, there are some precautions you must take.
-    </para>
-    <para>
-      The Lithium Polymer rechargeable batteries 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 air-frame.  We
-      often wrap them in suitable scraps of closed-cell packing foam before
-      strapping them down, for example.
-    </para>
-    <para>
-      The barometric sensors used on all of our flight computers are 
-      sensitive to sunlight.  In normal mounting situations, the baro sensor
-      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 when designing an 
-      installation in an air-frame with a see-through plastic payload bay.  It
-      is particularly important to
-      consider this with TeleMini v1.0, both because the baro sensor is on the
-      “top” of the board, and because many model rockets with payload bays
-      use clear plastic for the payload bay!  Replacing these with an opaque
-      cardboard tube, painting them, or wrapping them with a layer of masking
-      tape are all reasonable approaches to keep the sensor out of direct
-      sunlight.
-    </para>
-    <para>
-      The 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, and also by having a
-      suitable static vent to outside air.
-    </para>
-    <para>
-      As with all other rocketry electronics, Altus Metrum altimeters must 
-      be protected from exposure to corrosive motor exhaust and ejection 
-      charge gasses.
-    </para>
-  </chapter>
-  <chapter>
-    <title>Altus Metrum Hardware</title>
-    <section>
-      <title>General Usage Instructions</title>
-      <para>
-       Here are general instructions for hooking up an Altus Metrum
-       flight computer. Instructions specific to each model will be
-       found in the section devoted to that model below.
-      </para>
-      <para>
-       To prevent electrical interference from affecting the
-       operation of the flight computer, it's important to always
-       twist pairs of wires connected to the board. Twist the switch
-       leads, the pyro leads and the battery leads. This reduces
-       interference through a mechanism called common mode rejection.
-      </para>
-      <section>
-       <title>Hooking Up Lithium Polymer Batteries</title>
-       <para>
-         All Altus Metrum flight computers have a two pin JST PH
-         series connector to connect up a single-cell Lithium Polymer
-         cell (3.7V nominal). You can purchase matching batteries
-         from the Altus Metrum store, or other vendors, or you can
-         make your own. Pin 1 of the connector is positive, pin 2 is
-         negative. Spark Fun sells a cable with the connector
-         attached, which they call a <ulink
-         url="https://www.sparkfun.com/products/9914">JST Jumper 2
-         Wire Assembly</ulink>.
-       </para>
-       <para>
-         Many RC vendors also sell lithium polymer batteries with
-         this same connector. All that we have found use the opposite
-         polarity, and if you use them that way, you will damage or
-         destroy the flight computer.
-       </para>
-      </section>
-      <section>
-       <title>Hooking Up Pyro Charges</title>
-       <para>
-         Altus Metrum flight computers always have two screws for
-         each pyro charge. This means you shouldn't need to put two
-         wires into a screw terminal or connect leads from pyro
-         charges together externally.
-       </para>
-       <para>
-         On the flight computer, one lead from each charge is hooked
-         to the positive battery terminal through the power switch.
-         The other lead is connected through the pyro circuit, which
-         is connected to the negative battery terminal when the pyro
-         circuit is fired.
-       </para>
-      </section>
-      <section>
-       <title>Hooking Up a Power Switch</title>
-       <para>
-         Altus Metrum flight computers need an external power switch
-         to turn them on. This disconnects both the computer and the
-         pyro charges from the battery, preventing the charges from
-         firing when in the Off position. The switch is in-line with
-         the positive battery terminal.
-       </para>
-       <section>
-         <title>Using an External Active Switch Circuit</title>
-         <para>
-           You can use an active switch circuit, such as the
-           Featherweight Magnetic Switch, with any Altus Metrum
-           flight computer. These require three connections, one to
-           the battery, one to the positive power input on the flight
-           computer and one to ground. Find instructions on how to
-           hook these up for each flight computer below. The follow
-           the instructions that come with your active switch to
-           connect it up.
-         </para>
-       </section>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery</title>
-       <para>
-         As mentioned above in the section on hooking up pyro
-         charges, one lead for each of the pyro charges is connected
-         through the power switch directly to the positive battery
-         terminal. The other lead is connected to the pyro circuit,
-         which connects it to the negative battery terminal when the
-         pyro circuit is fired. The pyro circuit on all of the flight
-         computers is designed to handle up to 16V.
-       </para>
-       <para>
-         To use a separate pyro battery, connect the negative pyro
-         battery terminal to the flight computer ground terminal,
-         the positive battery terminal to the igniter and the other
-         igniter lead to the negative pyro terminal on the flight
-         computer. When the pyro channel fires, it will complete the
-         circuit between the negative pyro terminal and the ground
-         terminal, firing the igniter. Specific instructions on how
-         to hook this up will be found in each section below.
-       </para>
-      </section>
-      <section>
-       <title>Using a Different Kind of Battery</title>
-       <para>
-         EasyMini and TeleMini v2 are designed to use either a
-         lithium polymer battery or any other battery producing
-         between 4 and 12 volts, such as a rectangular 9V
-         battery. TeleMega, EasyMega and TeleMetrum are not designed for this,
-         and must only be powered by a lithium polymer battery. Find
-         instructions on how to use other batteries in the EasyMini
-         and TeleMini sections below.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>Specifications</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>
-       <?dbfo keep-together="always"?>
-       <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>
-           <row>
-             <entry>EasyMega <?linebreak?>v1.0</entry>
-             <entry><para>MS5607 30km (100k')</para></entry>
-             <entry><para>MMA6555 102g</para></entry>
-             <entry>-</entry>
-             <entry><para>MPU6000 HMC5883</para></entry>
-             <entry>8MB</entry>
-             <entry>-</entry>
-             <entry>3.7V</entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </table>
-      <table frame='all'>
-       <title>Altus Metrum Boards</title>
-       <?dbfo keep-together="always"?>
-       <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 coupler</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>
-           <row>
-             <entry>EasyMega</entry>
-             <entry><para>
-               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>2¼ inch (5.62cm)</entry>
-             <entry>38mm coupler</entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </table>
-    </section>
-    <section>
-      <title>TeleMetrum</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="telemetrum-v1.1-thside.jpg" width="5.5in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <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 ¼
-       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>
-       <title>TeleMetrum Screw Terminals</title>
-       <para>
-         TeleMetrum has six screw terminals on the end of the board
-         opposite the telemetry antenna. Two are for the power
-         switch, and two each for the apogee and main igniter
-         circuits. Using the picture above and starting from the top,
-         the terminals are as follows:
-       </para>
-       <table frame='all'>
-         <title>TeleMetrum Screw Terminals</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Pin #'/>
-           <colspec align='center' colwidth='2*' colname='Pin Name'/>
-           <colspec align='left' colwidth='5*' colname='Description'/>
-           <thead>
-             <row>
-               <entry align='center'>Terminal #</entry>
-               <entry align='center'>Terminal Name</entry>
-               <entry align='center'>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>1</entry>
-               <entry>Switch Output</entry>
-               <entry>Switch connection to flight computer</entry>
-             </row>
-             <row>
-               <entry>2</entry>
-               <entry>Switch Input</entry>
-               <entry>Switch connection to positive battery terminal</entry>
-             </row>
-             <row>
-               <entry>3</entry>
-               <entry>Main +</entry>
-               <entry>Main pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>4</entry>
-               <entry>Main -</entry>
-               <entry>Main pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>5</entry>
-               <entry>Apogee +</entry>
-               <entry>Apogee pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>6</entry>
-               <entry>Apogee -</entry>
-               <entry>Apogee pyro channel connection to pyro circuit</entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery with TeleMetrum</title>
-       <para>
-         As described above, using an external pyro battery involves
-         connecting the negative battery terminal to the flight
-         computer ground, connecting the positive battery terminal to
-         one of the igniter leads and connecting the other igniter
-         lead to the per-channel pyro circuit connection.
-       </para>
-       <para>
-         To connect the negative battery terminal to the TeleMetrum
-         ground, insert a small piece of wire, 24 to 28 gauge
-         stranded, into the GND hole just above the screw terminal
-         strip and solder it in place.
-       </para>
-       <para>
-         Connecting the positive battery terminal to the pyro
-         charges must be done separate from TeleMetrum, by soldering
-         them together or using some other connector.
-       </para>
-       <para>
-         The other lead from each pyro charge is then inserted into
-         the appropriate per-pyro channel screw terminal (terminal 4 for the
-         Main charge, terminal 6 for the Apogee charge).
-       </para>
-      </section>
-      <section>
-       <title>Using an Active Switch with TeleMetrum</title>
-       <para>
-         As explained above, an external active switch requires three
-         connections, one to the positive battery terminal, one to
-         the flight computer positive input and one to ground.
-       </para>
-       <para>
-         The positive battery terminal is available on screw terminal
-         2, the positive flight computer input is on terminal 1. To
-         hook a lead to ground, solder a piece of wire, 24 to 28
-         gauge stranded, to the GND hole just above terminal 1.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>TeleMini v1.0</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="telemini-v1-top.jpg" width="5.5in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <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>
-      <section>
-       <title>TeleMini v1.0 Screw Terminals</title>
-       <para>
-         TeleMini v1.0 has four screw terminals on the end of the
-         board opposite the telemetry antenna. Two are for the apogee
-         and two are for main igniter circuits. There are also wires
-         soldered to the board for the power switch.  Using the
-         picture above and starting from the top for the terminals
-         and from the left for the power switch wires, the
-         connections are as follows:
-       </para>
-       <table frame='all'>
-         <title>TeleMini v1.0 Connections</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Pin #'/>
-           <colspec align='center' colwidth='2*' colname='Pin Name'/>
-           <colspec align='left' colwidth='5*' colname='Description'/>
-           <thead>
-             <row>
-               <entry align='center'>Terminal #</entry>
-               <entry align='center'>Terminal Name</entry>
-               <entry align='center'>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>1</entry>
-               <entry>Apogee -</entry>
-               <entry>Apogee pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>2</entry>
-               <entry>Apogee +</entry>
-               <entry>Apogee pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>3</entry>
-               <entry>Main -</entry>
-               <entry>Main pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>4</entry>
-               <entry>Main +</entry>
-               <entry>Main pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Left</entry>
-               <entry>Switch Output</entry>
-               <entry>Switch connection to flight computer</entry>
-             </row>
-             <row>
-               <entry>Right</entry>
-               <entry>Switch Input</entry>
-               <entry>Switch connection to positive battery terminal</entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery with TeleMini v1.0</title>
-       <para>
-         As described above, using an external pyro battery involves
-         connecting the negative battery terminal to the flight
-         computer ground, connecting the positive battery terminal to
-         one of the igniter leads and connecting the other igniter
-         lead to the per-channel pyro circuit connection. Because
-         there is no solid ground connection to use on TeleMini, this
-         is not recommended.
-       </para>
-       <para>
-         The only available ground connection on TeleMini v1.0 are
-         the two mounting holes next to the telemetry
-         antenna. Somehow connect a small piece of wire to one of
-         those holes and hook it to the negative pyro battery terminal.
-       </para>
-       <para>
-         Connecting the positive battery terminal to the pyro
-         charges must be done separate from TeleMini v1.0, by soldering
-         them together or using some other connector.
-       </para>
-       <para>
-         The other lead from each pyro charge is then inserted into
-         the appropriate per-pyro channel screw terminal (terminal 3 for the
-         Main charge, terminal 1 for the Apogee charge).
-       </para>
-      </section>
-      <section>
-       <title>Using an Active Switch with TeleMini v1.0</title>
-       <para>
-         As explained above, an external active switch requires three
-         connections, one to the positive battery terminal, one to
-         the flight computer positive input and one to ground. Again,
-         because TeleMini doesn't have any good ground connection,
-         this is not recommended.
-       </para>
-       <para>
-         The positive battery terminal is available on the Right
-         power switch wire, the positive flight computer input is on
-         the left power switch wire. Hook a lead to either of the
-         mounting holes for a ground connection.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>TeleMini v2.0</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="telemini-v2-top.jpg" width="5.5in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <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>
-       <title>TeleMini v2.0 Screw Terminals</title>
-       <para>
-         TeleMini v2.0 has two sets of four screw terminals on the end of the
-         board opposite the telemetry antenna. Using the picture
-         above, the top four have connections for the main pyro
-         circuit and an external battery and the bottom four have
-         connections for the apogee pyro circuit and the power
-         switch. Counting from the left, the connections are as follows:
-       </para>
-       <table frame='all'>
-         <title>TeleMini v2.0 Connections</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Pin #'/>
-           <colspec align='center' colwidth='2*' colname='Pin Name'/>
-           <colspec align='left' colwidth='5*' colname='Description'/>
-           <thead>
-             <row>
-               <entry align='center'>Terminal #</entry>
-               <entry align='center'>Terminal Name</entry>
-               <entry align='center'>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>Top 1</entry>
-               <entry>Main -</entry>
-               <entry>Main pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 2</entry>
-               <entry>Main +</entry>
-               <entry>Main pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Top 3</entry>
-               <entry>Battery +</entry>
-               <entry>Positive external battery terminal</entry>
-             </row>
-             <row>
-               <entry>Top 4</entry>
-               <entry>Battery -</entry>
-               <entry>Negative external battery terminal</entry>
-             </row>
-             <row>
-               <entry>Bottom 1</entry>
-               <entry>Apogee -</entry>
-               <entry>Apogee pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 2</entry>
-               <entry>Apogee +</entry>
-               <entry>Apogee pyro channel common connection to
-               battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 3</entry>
-               <entry>Switch Output</entry>
-               <entry>Switch connection to flight computer</entry>
-             </row>
-             <row>
-               <entry>Bottom 4</entry>
-               <entry>Switch Input</entry>
-               <entry>Switch connection to positive battery terminal</entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery with TeleMini v2.0</title>
-       <para>
-         As described above, using an external pyro battery involves
-         connecting the negative battery terminal to the flight
-         computer ground, connecting the positive battery terminal to
-         one of the igniter leads and connecting the other igniter
-         lead to the per-channel pyro circuit connection.
-       </para>
-       <para>
-         To connect the negative pyro battery terminal to TeleMini
-         ground, connect it to the negative external battery
-         connection, top terminal 4.
-       </para>
-       <para>
-         Connecting the positive battery terminal to the pyro
-         charges must be done separate from TeleMini v2.0, by soldering
-         them together or using some other connector.
-       </para>
-       <para>
-         The other lead from each pyro charge is then inserted into
-         the appropriate per-pyro channel screw terminal (top
-         terminal 1 for the Main charge, bottom terminal 1 for the
-         Apogee charge).
-       </para>
-      </section>
-      <section>
-       <title>Using an Active Switch with TeleMini v2.0</title>
-       <para>
-         As explained above, an external active switch requires three
-         connections, one to the positive battery terminal, one to
-         the flight computer positive input and one to ground. Use
-         the negative external battery connection, top terminal 4 for
-         ground.
-       </para>
-       <para>
-         The positive battery terminal is available on bottom
-         terminal 4, the positive flight computer input is on the
-         bottom terminal 3.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>EasyMini</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="easymini-top.jpg" width="5.5in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <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 v2.0, so you can easily swap between
-       EasyMini and TeleMini.
-      </para>
-      <section>
-       <title>EasyMini Screw Terminals</title>
-       <para>
-         EasyMini has two sets of four screw terminals on the end of the
-         board opposite the telemetry antenna. Using the picture
-         above, the top four have connections for the main pyro
-         circuit and an external battery and the bottom four have
-         connections for the apogee pyro circuit and the power
-         switch. Counting from the left, the connections are as follows:
-       </para>
-       <table frame='all'>
-         <title>EasyMini Connections</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Pin #'/>
-           <colspec align='center' colwidth='2*' colname='Pin Name'/>
-           <colspec align='left' colwidth='5*' colname='Description'/>
-           <thead>
-             <row>
-               <entry align='center'>Terminal #</entry>
-               <entry align='center'>Terminal Name</entry>
-               <entry align='center'>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>Top 1</entry>
-               <entry>Main -</entry>
-               <entry>Main pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 2</entry>
-               <entry>Main +</entry>
-               <entry>Main pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Top 3</entry>
-               <entry>Battery +</entry>
-               <entry>Positive external battery terminal</entry>
-             </row>
-             <row>
-               <entry>Top 4</entry>
-               <entry>Battery -</entry>
-               <entry>Negative external battery terminal</entry>
-             </row>
-             <row>
-               <entry>Bottom 1</entry>
-               <entry>Apogee -</entry>
-               <entry>Apogee pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 2</entry>
-               <entry>Apogee +</entry>
-               <entry>Apogee pyro channel common connection to
-               battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 3</entry>
-               <entry>Switch Output</entry>
-               <entry>Switch connection to flight computer</entry>
-             </row>
-             <row>
-               <entry>Bottom 4</entry>
-               <entry>Switch Input</entry>
-               <entry>Switch connection to positive battery terminal</entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery with EasyMini</title>
-       <para>
-         As described above, using an external pyro battery involves
-         connecting the negative battery terminal to the flight
-         computer ground, connecting the positive battery terminal to
-         one of the igniter leads and connecting the other igniter
-         lead to the per-channel pyro circuit connection.
-       </para>
-       <para>
-         To connect the negative pyro battery terminal to TeleMini
-         ground, connect it to the negative external battery
-         connection, top terminal 4.
-       </para>
-       <para>
-         Connecting the positive battery terminal to the pyro
-         charges must be done separate from EasyMini, by soldering
-         them together or using some other connector.
-       </para>
-       <para>
-         The other lead from each pyro charge is then inserted into
-         the appropriate per-pyro channel screw terminal (top
-         terminal 1 for the Main charge, bottom terminal 1 for the
-         Apogee charge).
-       </para>
-      </section>
-      <section>
-       <title>Using an Active Switch with EasyMini</title>
-       <para>
-         As explained above, an external active switch requires three
-         connections, one to the positive battery terminal, one to
-         the flight computer positive input and one to ground. Use
-         the negative external battery connection, top terminal 4 for
-         ground.
-       </para>
-       <para>
-         The positive battery terminal is available on bottom
-         terminal 4, the positive flight computer input is on the
-         bottom terminal 3.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>TeleMega</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="telemega-v1.0-top.jpg" width="5.5in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <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>
-       <title>TeleMega Screw Terminals</title>
-       <para>
-         TeleMega has two sets of nine screw terminals on the end of
-         the board opposite the telemetry antenna. They are as follows:
-       </para>
-       <table frame='all'>
-         <title>TeleMega Screw Terminals</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Pin #'/>
-           <colspec align='center' colwidth='2*' colname='Pin Name'/>
-           <colspec align='left' colwidth='5*' colname='Description'/>
-           <thead>
-             <row>
-               <entry align='center'>Terminal #</entry>
-               <entry align='center'>Terminal Name</entry>
-               <entry align='center'>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>Top 1</entry>
-               <entry>Switch Input</entry>
-               <entry>Switch connection to positive battery terminal</entry>
-             </row>
-             <row>
-               <entry>Top 2</entry>
-               <entry>Switch Output</entry>
-               <entry>Switch connection to flight computer</entry>
-             </row>
-             <row>
-               <entry>Top 3</entry>
-               <entry>GND</entry>
-               <entry>Ground connection for use with external active switch</entry>
-             </row>
-             <row>
-               <entry>Top 4</entry>
-               <entry>Main -</entry>
-               <entry>Main pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 5</entry>
-               <entry>Main +</entry>
-               <entry>Main pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Top 6</entry>
-               <entry>Apogee -</entry>
-               <entry>Apogee pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 7</entry>
-               <entry>Apogee +</entry>
-               <entry>Apogee pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Top 8</entry>
-               <entry>D -</entry>
-               <entry>D pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 9</entry>
-               <entry>D +</entry>
-               <entry>D pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 1</entry>
-               <entry>GND</entry>
-               <entry>Ground connection for negative pyro battery terminal</entry>
-             </row>
-             <row>
-               <entry>Bottom 2</entry>
-               <entry>Pyro</entry>
-               <entry>Positive pyro battery terminal</entry>
-             </row>
-             <row>
-               <entry>Bottom 3</entry>
-               <entry>Lipo</entry>
-               <entry>
-                 Power switch output. Use to connect main battery to
-                 pyro battery input
-               </entry>
-             </row>
-             <row>
-               <entry>Bottom 4</entry>
-               <entry>A -</entry>
-               <entry>A pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 5</entry>
-               <entry>A +</entry>
-               <entry>A pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 6</entry>
-               <entry>B -</entry>
-               <entry>B pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 7</entry>
-               <entry>B +</entry>
-               <entry>B pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 8</entry>
-               <entry>C -</entry>
-               <entry>C pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 9</entry>
-               <entry>C +</entry>
-               <entry>C pyro channel common connection to battery +</entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery with TeleMega</title>
-       <para>
-         TeleMega provides explicit support for an external pyro
-         battery. All that is required is to remove the jumper
-         between the lipo terminal (Bottom 3) and the pyro terminal
-         (Bottom 2). Then hook the negative pyro battery terminal to ground
-         (Bottom 1) and the positive pyro battery to the pyro battery
-         input (Bottom 2). You can then use the existing pyro screw
-         terminals to hook up all of the pyro charges.
-       </para>
-      </section>
-      <section>
-       <title>Using Only One Battery With TeleMega</title>
-       <para>
-         Because TeleMega has built-in support for a separate pyro
-         battery, if you want to fly with just one battery running
-         both the computer and firing the charges, you need to
-         connect the flight computer battery to the pyro
-         circuit. TeleMega has two screw terminals for this—hook a
-         wire from the Lipo terminal (Bottom 3) to the Pyro terminal
-         (Bottom 2).
-       </para>
-      </section>
-      <section>
-       <title>Using an Active Switch with TeleMega</title>
-       <para>
-         As explained above, an external active switch requires three
-         connections, one to the positive battery terminal, one to
-         the flight computer positive input and one to ground.
-       </para>
-       <para>
-         The positive battery terminal is available on Top terminal
-         1, the positive flight computer input is on Top terminal
-         2. Ground is on Top terminal 3.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>EasyMega</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="easymega-v1.0-top.jpg" width="4.5in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-       EasyMega is a 1¼ inch by 2¼ inch circuit board. It was
-       designed to easily fit in a 38mm coupler. Like TeleMetrum,
-       EasyMega 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>
-       <title>EasyMega Screw Terminals</title>
-       <para>
-         EasyMega has two sets of nine screw terminals on the end of
-         the board opposite the telemetry antenna. They are as follows:
-       </para>
-       <table frame='all'>
-         <title>EasyMega Screw Terminals</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Pin #'/>
-           <colspec align='center' colwidth='2*' colname='Pin Name'/>
-           <colspec align='left' colwidth='5*' colname='Description'/>
-           <thead>
-             <row>
-               <entry align='center'>Terminal #</entry>
-               <entry align='center'>Terminal Name</entry>
-               <entry align='center'>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>Top 1</entry>
-               <entry>Switch Input</entry>
-               <entry>Switch connection to positive battery terminal</entry>
-             </row>
-             <row>
-               <entry>Top 2</entry>
-               <entry>Switch Output</entry>
-               <entry>Switch connection to flight computer</entry>
-             </row>
-             <row>
-               <entry>Top 3</entry>
-               <entry>GND</entry>
-               <entry>Ground connection for use with external active switch</entry>
-             </row>
-             <row>
-               <entry>Top 4</entry>
-               <entry>Main -</entry>
-               <entry>Main pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 5</entry>
-               <entry>Main +</entry>
-               <entry>Main pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Top 6</entry>
-               <entry>Apogee -</entry>
-               <entry>Apogee pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 7</entry>
-               <entry>Apogee +</entry>
-               <entry>Apogee pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Top 8</entry>
-               <entry>D -</entry>
-               <entry>D pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Top 9</entry>
-               <entry>D +</entry>
-               <entry>D pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 1</entry>
-               <entry>GND</entry>
-               <entry>Ground connection for negative pyro battery terminal</entry>
-             </row>
-             <row>
-               <entry>Bottom 2</entry>
-               <entry>Pyro</entry>
-               <entry>Positive pyro battery terminal</entry>
-             </row>
-             <row>
-               <entry>Bottom 3</entry>
-               <entry>Lipo</entry>
-               <entry>
-                 Power switch output. Use to connect main battery to
-                 pyro battery input
-               </entry>
-             </row>
-             <row>
-               <entry>Bottom 4</entry>
-               <entry>A -</entry>
-               <entry>A pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 5</entry>
-               <entry>A +</entry>
-               <entry>A pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 6</entry>
-               <entry>B -</entry>
-               <entry>B pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 7</entry>
-               <entry>B +</entry>
-               <entry>B pyro channel common connection to battery +</entry>
-             </row>
-             <row>
-               <entry>Bottom 8</entry>
-               <entry>C -</entry>
-               <entry>C pyro channel connection to pyro circuit</entry>
-             </row>
-             <row>
-               <entry>Bottom 9</entry>
-               <entry>C +</entry>
-               <entry>C pyro channel common connection to battery +</entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </section>
-      <section>
-       <title>Using a Separate Pyro Battery with EasyMega</title>
-       <para>
-         EasyMega provides explicit support for an external pyro
-         battery. All that is required is to remove the jumper
-         between the lipo terminal (Bottom 3) and the pyro terminal
-         (Bottom 2). Then hook the negative pyro battery terminal to ground
-         (Bottom 1) and the positive pyro battery to the pyro battery
-         input (Bottom 2). You can then use the existing pyro screw
-         terminals to hook up all of the pyro charges.
-       </para>
-      </section>
-      <section>
-       <title>Using Only One Battery With EasyMega</title>
-       <para>
-         Because EasyMega has built-in support for a separate pyro
-         battery, if you want to fly with just one battery running
-         both the computer and firing the charges, you need to
-         connect the flight computer battery to the pyro
-         circuit. EasyMega has two screw terminals for this—hook a
-         wire from the Lipo terminal (Bottom 3) to the Pyro terminal
-         (Bottom 2).
-       </para>
-      </section>
-      <section>
-       <title>Using an Active Switch with EasyMega</title>
-       <para>
-         As explained above, an external active switch requires three
-         connections, one to the positive battery terminal, one to
-         the flight computer positive input and one to ground.
-       </para>
-       <para>
-         The positive battery terminal is available on Top terminal
-         1, the positive flight computer input is on Top terminal
-         2. Ground is on Top terminal 3.
-       </para>
-      </section>
-    </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>
-       <?dbfo keep-together="always"?>
-       <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>
-           <row>
-             <entry>EasyMega</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, TeleMega and EasyMega
-       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
-       replace the stock UHF antenna wire with an edge-launched SMA connector,
-       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>
-    <section>
-      <title>Firmware Modes </title>
-      <para>
-        The AltOS firmware build for the altimeters has two
-        fundamental modes, “idle” and “flight”.  Which of these modes
-        the firmware operates in is determined at start up time. For
-        TeleMetrum, TeleMega and EasyMega, which have accelerometers, the mode is 
-       controlled 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
-        the flight computer 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.  Since TeleMini v2.0 and EasyMini don't have an
-        accelerometer we can use to determine orientation, “idle” mode
-        is selected if the board is connected via USB to a computer,
-        otherwise the board enters “flight” mode. TeleMini v1.0
-        selects “idle” mode if it receives a command packet within the
-        first five seconds of operation.
-      </para>
-      <para>
-        At power on, the altimeter will beep out the battery voltage
-        to the nearest tenth of a volt.  Each digit is represented by
-        a sequence of short “dit” beeps, with a pause between
-        digits. A zero digit is represented with one long “dah”
-        beep. Then there will be a short pause while the altimeter
-        completes initialization and self test, and decides which mode
-        to enter next.
-      </para>
-      <para>
-       Here's a short summary of all of the modes and the beeping (or
-       flashing, in the case of TeleMini v1) that accompanies each
-       mode. In the description of the beeping pattern, “dit” means a
-       short beep while "dah" means a long beep (three times as
-       long). “Brap” means a long dissonant tone.
-       <table frame='all'>
-         <title>AltOS Modes</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='4' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Mode Name'/>
-           <colspec align='center' colwidth='*' colname='Letter'/>
-           <colspec align='center' colwidth='*' colname='Beeps'/>
-           <colspec align='center' colwidth='*' colname='Description'/>
-           <thead>
-             <row>
-               <entry>Mode Name</entry>
-               <entry>Abbreviation</entry>
-               <entry>Beeps</entry>
-               <entry>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>Startup</entry>
-               <entry>S</entry>
-               <entry>battery voltage in decivolts</entry>
-               <entry>
-                 <para>
-                   Calibrating sensors, detecting orientation.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Idle</entry>
-               <entry>I</entry>
-               <entry>dit dit</entry>
-               <entry>
-                 <para>
-                   Ready to accept commands over USB or radio link.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Pad</entry>
-               <entry>P</entry>
-               <entry>dit dah dah dit</entry>
-               <entry>
-                 <para>
-                   Waiting for launch. Not listening for commands.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Boost</entry>
-               <entry>B</entry>
-               <entry>dah dit dit dit</entry>
-               <entry>
-                 <para>
-                   Accelerating upwards.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Fast</entry>
-               <entry>F</entry>
-               <entry>dit dit dah dit</entry>
-               <entry>
-                 <para>
-                   Decelerating, but moving faster than 200m/s.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Coast</entry>
-               <entry>C</entry>
-               <entry>dah dit dah dit</entry>
-               <entry>
-                 <para>
-                   Decelerating, moving slower than 200m/s
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Drogue</entry>
-               <entry>D</entry>
-               <entry>dah dit dit</entry>
-               <entry>
-                 <para>
-                   Descending after apogee. Above main height.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Main</entry>
-               <entry>M</entry>
-               <entry>dah dah</entry>
-               <entry>
-                 <para>
-                   Descending. Below main height.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Landed</entry>
-               <entry>L</entry>
-               <entry>dit dah dit dit</entry>
-               <entry>
-                 <para>
-                   Stable altitude for at least ten seconds.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Sensor error</entry>
-               <entry>X</entry>
-               <entry>dah dit dit dah</entry>
-               <entry>
-                 <para>
-                   Error detected during sensor calibration.
-                 </para>
-               </entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </para>
-      <para>
-        In flight or “pad” mode, the altimeter engages the flight
-        state machine, goes into transmit-only mode to send telemetry,
-        and waits for launch to be detected.  Flight mode is indicated
-        by an “di-dah-dah-dit” (“P” for pad) on the beeper or lights,
-        followed by beeps or flashes indicating the state of the
-        pyrotechnic igniter continuity.  One beep/flash indicates
-        apogee continuity, two beeps/flashes indicate main continuity,
-        three beeps/flashes indicate both apogee and main continuity,
-        and one longer “brap” sound which is made by rapidly
-        alternating between two tones indicates no continuity.  For a
-        dual deploy flight, make sure you're getting three beeps or
-        flashes before launching!  For apogee-only or motor eject
-        flights, do what makes sense.
-      </para>
-      <para>
-        If idle mode is entered, you will hear an audible “di-dit” or
-        see two short flashes (“I” for idle), and the flight state
-        machine is disengaged, thus no ejection charges will fire.
-        The altimeters also listen for the radio link when in idle
-        mode for requests sent via TeleDongle.  Commands can be issued
-        in idle mode over either USB or the radio link
-        equivalently. TeleMini v1.0 only has the radio link.  Idle
-        mode is useful for configuring the altimeter, for extracting
-        data from the on-board storage chip after flight, and for
-        ground testing pyro charges.
-      </para>
-      <para>
-       In “Idle” and “Pad” modes, once the mode indication
-       beeps/flashes and continuity indication has been sent, if
-       there is no space available to log the flight in on-board
-       memory, the flight computer will emit a warbling tone (much
-       slower than the “no continuity tone”)
-      </para>
-      <para>
-       Here's a summary of all of the “pad” and “idle” mode indications.
-       <table frame='all'>
-         <title>Pad/Idle Indications</title>
-         <?dbfo keep-together="always"?>
-         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-           <colspec align='center' colwidth='*' colname='Name'/>
-           <colspec align='center' colwidth='*' colname='Beeps'/>
-           <colspec align='center' colwidth='*' colname='Description'/>
-           <thead>
-             <row>
-               <entry>Name</entry>
-               <entry>Beeps</entry>
-               <entry>Description</entry>
-             </row>
-           </thead>
-           <tbody>
-             <row>
-               <entry>Neither</entry>
-               <entry>brap</entry>
-               <entry>
-                 <para>
-                   No continuity detected on either apogee or main
-                   igniters.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Apogee</entry>
-               <entry>dit</entry>
-               <entry>
-                 <para>
-                   Continuity detected only on apogee igniter.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Main</entry>
-               <entry>dit dit</entry>
-               <entry>
-                 <para>
-                   Continuity detected only on main igniter.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Both</entry>
-               <entry>dit dit dit</entry>
-               <entry>
-                 <para>
-                   Continuity detected on both igniters.
-                 </para>
-               </entry>
-             </row>
-             <row>
-               <entry>Storage Full</entry>
-               <entry>warble</entry>
-               <entry>
-                 <para>
-                   On-board data logging storage is full. This will
-                   not prevent the flight computer from safely
-                   controlling the flight or transmitting telemetry
-                   signals, but no record of the flight will be
-                   stored in on-board flash.
-                 </para>
-               </entry>
-             </row>
-           </tbody>
-         </tgroup>
-       </table>
-      </para>
-      <para>
-       Once landed, the flight computer will signal that by emitting
-       the “Landed” sound described above, after which it will beep
-       out the apogee height (in meters). Each digit is represented
-       by a sequence of short “dit” beeps, with a pause between
-       digits. A zero digit is represented with one long “dah”
-       beep. The flight computer will continue to report landed mode
-       and beep out the maximum height until turned off.
-      </para>
-      <para>
-        One “neat trick” of particular value when TeleMetrum, TeleMega
-       or EasyMega are used with 
-        very large air-frames, is that you can power the board up while the 
-        rocket is horizontal, such that it comes up in idle mode.  Then you can
-        raise the air-frame to launch position, and issue a 'reset' command 
-       via TeleDongle over the radio link to cause the altimeter to reboot and 
-        come up in flight mode.  This is much safer than standing on the top 
-        step of a rickety step-ladder or hanging off the side of a launch 
-        tower with a screw-driver trying to turn on your avionics before 
-        installing igniters!
-      </para>
-      <para>
-       TeleMini v1.0 is configured solely via the radio link. Of course, that
-       means you need to know the TeleMini radio configuration values
-       or you won't be able to communicate with it. For situations
-       when you don't have the radio configuration values, TeleMini v1.0
-       offers an 'emergency recovery' mode. In this mode, TeleMini is
-       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>
-      <para>
-       To get into 'emergency recovery' mode, first find the row of
-       four small holes opposite the switch wiring. Using a short
-       piece of small gauge wire, connect the outer two holes
-       together, then power TeleMini up. Once the red LED is lit,
-       disconnect the wire and the board should signal that it's in
-       'idle' mode after the initial five second startup period.
-      </para>
-    </section>
-    <section>
-      <title>GPS </title>
-      <para>
-        TeleMetrum and TeleMega include a complete GPS receiver.  A
-        complete explanation of how GPS works is beyond the scope of
-        this manual, but the bottom line is that the 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>
-        The flight computers provide backup power to the GPS chip any time a 
-        battery is connected.  This allows the receiver to “warm start” on
-        the launch rail much faster than if every power-on were a GPS 
-       “cold start”.  In typical operations, powering up
-        on the flight line in idle mode while performing final air-frame
-        preparation will be sufficient to allow the GPS receiver to cold
-        start and acquire lock.  Then the board can be powered down during
-        RSO review and installation on a launch rod or rail.  When the board
-        is turned back on, the GPS system should lock very quickly, typically
-        long before igniter installation and return to the flight line are
-        complete.
-      </para>
-    </section>
-    <section>
-      <title>Controlling An Altimeter Over The Radio Link</title>
-      <para>
-        One of the unique features of the Altus Metrum system is the
-        ability to create a two way command link between TeleDongle
-        and an altimeter using the digital radio transceivers
-        built into each device. This allows you to interact with the
-        altimeter from afar, as if it were directly connected to the
-        computer.
-      </para>
-      <para>
-        Any operation which can be performed with a flight computer can
-        either be done with the device directly connected to the
-        computer via the USB cable, or through the radio
-        link. TeleMini v1.0 doesn't provide a USB connector and so it is
-        always communicated with over radio.  Select the appropriate 
-        TeleDongle device when the list of devices is presented and 
-        AltosUI will interact with an altimeter over the radio link.
-      </para>
-      <para>
-       One oddity in the current interface is how AltosUI selects the
-       frequency for radio communications. Instead of providing
-       an interface to specifically configure the frequency, it uses
-       whatever frequency was most recently selected for the target
-       TeleDongle device in Monitor Flight mode. If you haven't ever
-       used that mode with the TeleDongle in question, select the
-       Monitor Flight button from the top level UI, and pick the
-       appropriate TeleDongle device.  Once the flight monitoring
-       window is open, select the desired frequency and then close it
-       down again. All radio communications will now use that frequency.
-      </para>
-      <itemizedlist>
-        <listitem>
-          <para>
-            Save Flight Data—Recover flight data from the rocket without
-            opening it up.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            Configure altimeter apogee delays, main deploy heights
-           and additional pyro event conditions
-            to respond to changing launch conditions. You can also
-            'reboot' the altimeter. Use this to remotely enable the
-            flight computer by turning TeleMetrum or TeleMega on in “idle” mode,
-            then once the air-frame is oriented for launch, you can
-            reboot the altimeter and have it restart in pad mode
-            without having to climb the scary ladder.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            Fire Igniters—Test your deployment charges without snaking
-            wires out through holes in the air-frame. Simply assemble the
-            rocket as if for flight with the apogee and main charges
-            loaded, then remotely command the altimeter to fire the
-            igniters.
-          </para>
-        </listitem>
-      </itemizedlist>
-      <para>
-        Operation over the radio link for configuring an altimeter, ground
-        testing igniters, and so forth uses the same RF frequencies as flight
-        telemetry.  To configure the desired TeleDongle frequency, select
-        the monitor flight tab, then use the frequency selector and 
-        close the window before performing other desired radio operations.
-      </para>
-      <para>
-        The flight computers only enable radio commanding in 'idle' mode.
-       TeleMetrum and TeleMega use the accelerometer to detect which orientation they
-       start up in, so make sure you have the flight computer lying horizontally when you turn
-        it on. Otherwise, it will start in 'pad' mode ready for
-        flight, and will not be listening for command packets from TeleDongle.
-      </para>
-      <para>
-       TeleMini listens for a command packet for five seconds after
-       first being turned on, if it doesn't hear anything, it enters
-       'pad' mode, ready for flight and will no longer listen for
-       command packets. The easiest way to connect to TeleMini is to
-       initiate the command and select the TeleDongle device. At this
-       point, the TeleDongle will be attempting to communicate with
-       the TeleMini. Now turn TeleMini on, and it should immediately
-       start communicating with the TeleDongle and the desired
-       operation can be performed.
-      </para>
-      <para>
-        You can monitor the operation of the radio link by watching the 
-        lights on the devices. The red LED will flash each time a packet
-        is transmitted, while the green LED will light up on TeleDongle when 
-        it is waiting to receive a packet from the altimeter.
-      </para>
-    </section>
-    <section>
-      <title>Ground Testing </title>
-      <para>
-        An important aspect of preparing a rocket using electronic deployment
-        for flight is ground testing the recovery system.  Thanks
-        to the bi-directional radio link central to the Altus Metrum system,
-        this can be accomplished in a TeleMega, TeleMetrum or TeleMini equipped rocket 
-        with less work than you may be accustomed to with other systems.  It 
-        can even be fun!
-      </para>
-      <para>
-        Just prep the rocket for flight, then power up the altimeter
-        in “idle” mode (placing air-frame horizontal for TeleMetrum or TeleMega, or
-        selecting the Configure Altimeter tab for TeleMini).  This will cause 
-        the firmware to go into “idle” mode, in which the normal flight
-        state machine is disabled and charges will not fire without
-        manual command.  You can now command the altimeter to fire the apogee
-        or main charges from a safe distance using your computer and 
-        TeleDongle and the Fire Igniter tab to complete ejection testing.
-      </para>
-    </section>
-    <section>
-      <title>Radio Link </title>
-      <para>
-        Our flight computers all incorporate 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, the altimeter firmware listens for the radio link when
-        it's in “idle mode”, which
-        allows us to use the radio link to configure the rocket, do things like
-        ejection tests, and extract data after a flight without having to
-        crack open the air-frame.  However, when the board is in “flight
-        mode”, the altimeter only
-        transmits and doesn't listen at all.  That's because we want to put
-        ultimate priority on event detection and getting telemetry out of
-        the rocket through
-        the radio in case the rocket crashes and we aren't able to extract
-        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 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>
-    </section>
-    <section>
-      <title>APRS</title>
-      <para>
-       TeleMetrum v2.0 and TeleMega can send APRS if desired, and 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. You can configure
-       the APRS interval using AltosUI; that process is described in
-       the Configure Altimeter section of the AltosUI chapter.
-      </para>
-      <para>
-       AltOS uses the APRS compressed position report data format,
-       which provides for higher position precision and shorter
-       packets than the original APRS format. It also includes
-       altitude data, which is invaluable when tracking rockets. We
-       haven't found a receiver which doesn't handle compressed
-       positions, but it's just possible that you have one, so if you
-       have an older device that can receive the raw packets but
-       isn't displaying position information, it's possible that this
-       is the cause.
-      </para>
-      <para>
-       APRS packets include an SSID (Secondary Station Identifier)
-       field that allows one operator to have multiple
-       transmitters. AltOS allows you to set this to a single digit
-       from 0 to 9, allowing you to fly multiple transmitters at the
-       same time while keeping the identify of each one separate in
-       the receiver. By default, the SSID is set to the last digit of
-       the device serial number.
-      </para>
-      <para>
-       The APRS packet format includes a comment field that can have
-       arbitrary text in it. AltOS uses this to send status
-       information about the flight computer. It sends four fields as
-       shown in the following table.
-      </para>
-      <table frame='all'>
-       <title>Altus Metrum APRS Comments</title>
-       <?dbfo keep-together="always"?>
-       <tgroup cols='3' align='center' colsep='1' rowsep='1'>
-         <colspec align='center' colwidth='*' colname='Field'/>
-         <colspec align='center' colwidth='*' colname='Example'/>
-         <colspec align='center' colwidth='4*' colname='Description'/>
-         <thead>
-           <row>
-             <entry align='center'>Field</entry>
-             <entry align='center'>Example</entry>
-             <entry align='center'>Description</entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry>1</entry>
-             <entry>L</entry>
-             <entry>GPS Status U for unlocked, L for locked</entry>
-           </row>
-           <row>
-             <entry>2</entry>
-             <entry>6</entry>
-             <entry>Number of Satellites in View</entry>
-           </row>
-           <row>
-             <entry>3</entry>
-             <entry>B4.0</entry>
-             <entry>Altimeter Battery Voltage</entry>
-           </row>
-           <row>
-             <entry>4</entry>
-             <entry>A3.7</entry>
-             <entry>Apogee Igniter Voltage</entry>
-           </row>
-           <row>
-             <entry>5</entry>
-             <entry>M3.7</entry>
-             <entry>Main Igniter Voltage</entry>
-           </row>
-           <row>
-             <entry>6</entry>
-             <entry>1286</entry>
-             <entry>Device Serial Number</entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </table>
-      <para>
-       Here's an example of an APRS comment showing GPS lock with 6
-       satellites in view, a primary battery at 4.0V, and
-       apogee and main igniters both at 3.7V from device 1286.
-       <screen>
-         L6 B4.0 A3.7 M3.7 1286
-       </screen>
-      </para>
-      <para>
-       Make sure your primary battery is above 3.8V, any connected
-       igniters are above 3.5V and GPS is locked with at least 5 or 6
-       satellites in view before flying. If GPS is switching between
-       L and U regularly, then it doesn't have a good lock and you
-       should wait until it becomes stable.
-      </para>
-      <para>
-       If the GPS receiver loses lock, the APRS data transmitted will
-       contain the last position for which GPS lock was
-       available. You can tell that this has happened by noticing
-       that the GPS status character switches from 'L' to 'U'. Before
-       GPS has locked, APRS will transmit zero for latitude,
-       longitude and altitude.
-      </para>
-    </section>
-    <section>
-      <title>Configurable Parameters</title>
-      <para>
-        Configuring an Altus Metrum altimeter for flight is very
-        simple.  Even on our baro-only TeleMini and EasyMini boards,
-        the use of a Kalman filter means there is no need to set a
-        “mach delay”.  The few configurable parameters can all be set
-        using AltosUI over USB or or radio link via TeleDongle. Read
-       the Configure Altimeter section in the AltosUI chapter below
-       for more information.
-      </para>
-      <section>
-        <title>Radio Frequency</title>
-        <para>
-         Altus Metrum boards support radio frequencies in the 70cm
-         band. By default, the configuration interface provides a
-         list of 10 “standard” frequencies in 100kHz channels starting at
-         434.550MHz.  However, the firmware supports use of
-         any 50kHz multiple within the 70cm band. At any given
-         launch, we highly recommend coordinating when and by whom each
-         frequency will be used to avoid interference.  And of course, both
-         altimeter and TeleDongle must be configured to the same
-         frequency to successfully communicate with each other.
-        </para>
-      </section>
-      <section>
-       <title>Callsign</title>
-       <para>
-         This sets the callsign used for telemetry, APRS and the
-         packet link. For telemetry and APRS, this is used to
-         identify the device. For the packet link, the callsign must
-         match that configured in AltosUI or the link will not
-         work. This is to prevent accidental configuration of another
-         Altus Metrum flight computer operating on the same frequency nearby.
-       </para>
-      </section>
-      <section>
-       <title>Telemetry/RDF/APRS Enable</title>
-       <para>
-         You can completely disable the radio while in flight, if
-         necessary. This doesn't disable the packet link in idle
-         mode.
-       </para>
-      </section>
-      <section>
-       <title>Telemetry baud rate</title>
-       <para>
-         This sets the modulation bit rate for data transmission for
-         both telemetry and packet link mode. Lower bit
-         rates will increase range while reducing the amount of data
-         that can be sent and increasing battery consumption. All
-         telemetry is done using a rate 1/2 constraint 4 convolution
-         code, so the actual data transmission rate is 1/2 of the
-         modulation bit rate specified here.
-       </para>
-      </section>
-      <section>
-       <title>APRS Interval</title>
-       <para>
-         This selects how often APRS packets are transmitted. Set
-         this to zero to disable APRS without also disabling the
-         regular telemetry and RDF transmissions. As APRS takes a
-         full second to transmit a single position report, we
-         recommend sending packets no more than once every 5 seconds.
-       </para>
-      </section>
-      <section>
-       <title>APRS SSID</title>
-       <para>
-         This selects the SSID reported in APRS packets. By default,
-         it is set to the last digit of the serial number, but you
-         can change this to any value from 0 to 9.
-       </para>
-      </section>
-      <section>
-        <title>Apogee Delay</title>
-        <para>
-          Apogee delay is the number of seconds after the altimeter 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>
-          The Altus Metrum apogee detection algorithm fires exactly at
-          apogee.  If you are also flying an altimeter like the
-          PerfectFlite MAWD, which only supports selecting 0 or 1
-          seconds of apogee delay, you may wish to set the MAWD to 0
-          seconds delay and set the TeleMetrum to fire your backup 2
-          or 3 seconds later to avoid any chance of both charges
-          firing simultaneously.  We've flown several air-frames this
-          way quite happily, including Keith's successful L3 cert.
-        </para>
-      </section>
-      <section>
-       <title>Apogee Lockout</title>
-       <para>
-         Apogee lockout is the number of seconds after boost where
-         the flight computer will not fire the apogee charge, even if
-         the rocket appears to be at apogee. This is often called
-         'Mach Delay', as it is intended to prevent a flight computer
-         from unintentionally firing apogee charges due to the pressure
-         spike that occurrs across a mach transition. Altus Metrum
-         flight computers include a Kalman filter which is not fooled
-         by this sharp pressure increase, and so this setting should
-         be left at the default value of zero to disable it.
-       </para>
-      </section>
-      <section>
-        <title>Main Deployment Altitude</title>
-        <para>
-          By default, the altimeter 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 air-frames, 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>
-      </section>
-      <section>
-       <title>Maximum Flight Log</title>
-       <para>
-         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>
-       <para>
-         Even though our flight computers (except TeleMini v1.0) can store
-         multiple flights, we strongly recommend downloading and saving
-         flight data after each flight.
-       </para>
-      </section>
-      <section>
-       <title>Ignite Mode</title>
-       <para>
-         Instead of firing one charge at apogee and another charge at
-         a fixed height above the ground, you can configure the
-         altimeter to fire both at apogee or both during
-         descent. This was added to support an airframe Bdale designed that 
-         had two altimeters, one in the fin can and one in the nose.
-       </para>
-       <para>
-         Providing the ability to use both igniters for apogee or
-         main allows some level of redundancy without needing two
-         flight computers.  In Redundant Apogee or Redundant Main
-         mode, the two charges will be fired two seconds apart.
-       </para>
-      </section>
-      <section>
-       <title>Pad Orientation</title>
-       <para>
-         TeleMetrum, TeleMega and EasyMega 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>Configurable Pyro Channels</title>
-       <para>
-         In addition to the usual Apogee and Main pyro channels,
-         TeleMega and EasyMega have 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 and EasyMega contain 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 0.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 and then decelerating
-             (presumably due to a motor or motors burning). Use this
-             value 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
-                   decelerating, 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 below
-                   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 <emphasis>into</emphasis> the state, and so checking for
-             “greater than Boost” means that the rocket is currently
-             in boost or some later 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>
-  <chapter>
-    <title>AltosUI</title>
-    <informalfigure>
-      <mediaobject>
-       <imageobject>
-         <imagedata fileref="altosui.png" width="4.6in"/>
-       </imageobject>
-      </mediaobject>
-    </informalfigure>
-    <para>
-      The AltosUI program provides a graphical user interface for
-      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 chapter
-      is split into sections, each of which documents one of the tasks
-      provided from the top-level toolbar.
-    </para>
-    <section>
-      <title>Monitor Flight</title>
-      <subtitle>Receive, Record and Display Telemetry Data</subtitle>
-      <para>
-        Selecting this item brings up a dialog box listing all of the
-        connected TeleDongle devices. When you choose one of these,
-        AltosUI will create a window to display telemetry data as
-        received by the selected TeleDongle device.
-      </para>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="device-selection.png" width="3.1in"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-        All telemetry data received are automatically recorded in
-        suitable log files. The name of the files includes the current
-        date and rocket serial and flight numbers.
-      </para>
-      <para>
-        The radio frequency being monitored by the TeleDongle device is
-        displayed at the top of the window. You can configure the
-        frequency by clicking on the frequency box and selecting the desired
-        frequency. AltosUI remembers the last frequency selected for each
-        TeleDongle and selects that automatically the next time you use
-        that device.
-      </para>
-      <para>
-        Below the TeleDongle frequency selector, the window contains a few
-        significant pieces of information about the altimeter providing
-        the telemetry data stream:
-      </para>
-      <itemizedlist>
-        <listitem>
-          <para>The configured call-sign</para>
-        </listitem>
-        <listitem>
-          <para>The device serial number</para>
-        </listitem>
-        <listitem>
-          <para>The flight number. Each altimeter remembers how many
-            times it has flown.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            The rocket flight state. Each flight passes through several
-            states including Pad, Boost, Fast, Coast, Drogue, Main and
-            Landed.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            The Received Signal Strength Indicator value. This lets
-            you know how strong a signal TeleDongle is receiving. At
-            the default data rate, 38400 bps, in bench testing, the
-            radio inside TeleDongle v0.2 operates down to about
-            -106dBm, while the v3 radio works down to about -111dBm.
-            Weaker signals, or an environment with radio noise may
-            cause the data to not be received. The packet link uses
-            error detection and correction techniques which prevent
-            incorrect data from being reported.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            The age of the displayed data, in seconds since the last 
-           successfully received telemetry packet.  In normal operation
-           this will stay in the low single digits.  If the number starts
-           counting up, then you are no longer receiving data over the radio
-           link from the flight computer.
-          </para>
-        </listitem>
-      </itemizedlist>
-      <para>
-        Finally, the largest portion of the window contains a set of
-        tabs, each of which contain some information about the rocket.
-        They're arranged in 'flight order' so that as the flight
-        progresses, the selected tab automatically switches to display
-        data relevant to the current state of the flight. You can select
-        other tabs at any time. The final 'table' tab displays all of
-        the raw telemetry values in one place in a spreadsheet-like format.
-      </para>
-      <section>
-        <title>Launch Pad</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="launch-pad.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-        <para>
-          The 'Launch Pad' tab shows information used to decide when the
-          rocket is ready for flight. The first elements include red/green
-          indicators, if any of these is red, you'll want to evaluate
-          whether the rocket is ready to launch:
-          <variablelist>
-           <varlistentry>
-             <term>Battery Voltage</term>
-             <listitem>
-               <para>
-                 This indicates whether the Li-Po battery powering the 
-                 flight computer has sufficient charge to last for
-                 the duration of the flight. A value of more than
-                 3.8V is required for a 'GO' status.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>Apogee Igniter Voltage</term>
-             <listitem>
-               <para>
-                 This indicates whether the apogee
-                 igniter has continuity. If the igniter has a low
-                 resistance, then the voltage measured here will be close
-                 to the Li-Po battery voltage. A value greater than 3.2V is
-                 required for a 'GO' status.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>Main Igniter Voltage</term>
-             <listitem>
-               <para>
-                 This indicates whether the main
-                 igniter has continuity. If the igniter has a low
-                 resistance, then the voltage measured here will be close
-                 to the Li-Po battery voltage. A value greater than 3.2V is
-                 required for a 'GO' status.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>On-board Data Logging</term>
-             <listitem>
-               <para>
-                 This indicates whether there is
-                 space remaining on-board to store flight data for the
-                 upcoming flight. If you've downloaded data, but failed
-                 to erase flights, there may not be any space
-                 left. Most of our flight computers can store multiple 
-                 flights, depending on the configured maximum flight log 
-                 size. TeleMini v1.0 stores only a single flight, so it 
-                 will need to be
-                 downloaded and erased after each flight to capture
-                 data. This only affects on-board flight logging; the
-                 altimeter will still transmit telemetry and fire
-                 ejection charges at the proper times even if the flight
-                 data storage is full.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>GPS Locked</term>
-             <listitem>
-               <para>
-                 For a TeleMetrum or TeleMega device, this indicates whether the GPS receiver is
-                 currently able to compute position information. GPS requires
-                 at least 4 satellites to compute an accurate position.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>GPS Ready</term>
-             <listitem>
-               <para>
-                 For a TeleMetrum or TeleMega device, this indicates whether GPS has reported at least
-                 10 consecutive positions without losing lock. This ensures
-                 that the GPS receiver has reliable reception from the
-                 satellites.
-               </para>
-             </listitem>
-           </varlistentry>
-          </variablelist>
-        </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>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="ascent.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-        <para>
-          This tab is shown during Boost, Fast and Coast
-          phases. The information displayed here helps monitor the
-          rocket as it heads towards apogee.
-        </para>
-        <para>
-          The height, speed, acceleration and tilt are shown along
-          with the maximum values for each of them. This allows you to
-          quickly answer the most commonly asked questions you'll hear
-          during flight.
-        </para>
-        <para>
-          The current latitude and longitude reported by the GPS are
-          also shown. Note that under high acceleration, these values
-          may not get updated as the GPS receiver loses position
-          fix. Once the rocket starts coasting, the receiver should
-          start reporting position again.
-        </para>
-        <para>
-          Finally, the current igniter voltages are reported as in the
-          Launch Pad tab. This can help diagnose deployment failures
-          caused by wiring which comes loose under high acceleration.
-        </para>
-      </section>
-      <section>
-        <title>Descent</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="descent.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-        <para>
-          Once the rocket has reached apogee and (we hope) activated the
-          apogee charge, attention switches to tracking the rocket on
-          the way back to the ground, and for dual-deploy flights,
-          waiting for the main charge to fire.
-        </para>
-        <para>
-          To monitor whether the apogee charge operated correctly, the
-          current descent rate is reported along with the current
-          height. Good descent rates vary based on the choice of recovery
-         components, but generally range from 15-30m/s on drogue and should
-         be below 10m/s when under the main parachute in a dual-deploy flight.
-        </para>
-        <para>
-          With GPS-equipped flight computers, you can locate the rocket in the
-          sky using the elevation and bearing information to figure
-          out where to look. Elevation is in degrees above the
-          horizon. Bearing is reported in degrees relative to true
-          north. Range can help figure out how big the rocket will
-          appear. Ground Distance shows how far it is to a point
-          directly under the rocket and can help figure out where the
-          rocket is likely to land. Note that all of these values are
-          relative to the pad location. If the elevation is near 90°,
-          the rocket is over the pad, not over you.
-        </para>
-        <para>
-          Finally, the igniter voltages are reported in this tab as
-          well, both to monitor the main charge as well as to see what
-          the status of the apogee charge is.  Note that some commercial
-         e-matches are designed to retain continuity even after being
-         fired, and will continue to show as green or return from red to
-         green after firing.
-        </para>
-      </section>
-      <section>
-        <title>Landed</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="landed.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-        <para>
-          Once the rocket is on the ground, attention switches to
-          recovery. While the radio signal is often lost once the
-          rocket is on the ground, the last reported GPS position is
-          generally within a short distance of the actual landing location.
-        </para>
-        <para>
-          The last reported GPS position is reported both by
-          latitude and longitude as well as a bearing and distance from
-          the launch pad. The distance should give you a good idea of
-          whether to walk or hitch a ride.  Take the reported
-          latitude and longitude and enter them into your hand-held GPS
-          unit and have that compute a track to the landing location.
-        </para>
-       <para>
-         Our flight computers will continue to transmit RDF
-         tones after landing, allowing you to locate the rocket by
-         following the radio signal if necessary. You may need to get 
-         away from the clutter of the flight line, or even get up on 
-         a hill (or your neighbor's RV roof) to receive the RDF signal.
-       </para>
-        <para>
-          The maximum height, speed and acceleration reported
-          during the flight are displayed for your admiring observers.
-         The accuracy of these immediate values depends on the quality
-         of your radio link and how many packets were received.  
-         Recovering the on-board data after flight may yield
-         more precise results.
-        </para>
-       <para>
-         To get more detailed information about the flight, you can
-         click on the 'Graph Flight' button which will bring up a
-         graph window for the current flight.
-       </para>
-      </section>
-      <section>
-       <title>Table</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="table.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-       <para>
-         The table view shows all of the data available from the
-         flight computer. Probably the most useful data on
-         this tab is the detailed GPS information, which includes
-         horizontal dilution of precision information, and
-         information about the signal being received from the satellites.
-       </para>
-      </section>
-      <section>
-        <title>Site Map</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="site-map.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-        <para>
-          When the TeleMetrum has a GPS fix, the Site Map tab will map
-          the rocket's position to make it easier for you to locate the
-          rocket, both while it is in the air, and when it has landed. The
-          rocket's state is indicated by color: white for pad, red for
-          boost, pink for fast, yellow for coast, light blue for drogue,
-          dark blue for main, and black for landed.
-        </para>
-        <para>
-          The map's default scale is approximately 3m (10ft) per pixel. The map
-          can be dragged using the left mouse button. The map will attempt
-          to keep the rocket roughly centered while data is being received.
-        </para>
-       <para>
-         You can adjust the style of map and the zoom level with
-         buttons on the right side of the map window. You can draw a
-         line on the map by moving the mouse over the map with a
-         button other than the left one pressed, or by pressing the
-         left button while also holding down the shift key. The
-         length of the line in real-world units will be shown at the
-         start of the line.
-       </para>
-        <para>
-          Images are fetched automatically via the Google Maps Static API,
-          and cached on disk for reuse. If map images cannot be downloaded,
-          the rocket's path will be traced on a dark gray background
-          instead.
-        </para>
-       <para>
-         You can pre-load images for your favorite launch sites
-         before you leave home; check out the 'Preload Maps' section below.
-       </para>
-      </section>
-      <section>
-        <title>Ignitor</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="ignitor.png" width="5.5in"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-        <para>
-          TeleMega includes four additional programmable pyro
-          channels. The Ignitor tab shows whether each of them has
-          continuity. If an ignitor has a low resistance, then the
-          voltage measured here will be close to the pyro battery
-          voltage. A value greater than 3.2V is required for a 'GO'
-          status.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>Save Flight Data</title>
-      <para>
-        The altimeter records flight data to its internal flash memory.
-        TeleMetrum data is recorded at a much higher rate than the telemetry
-        system can handle, and is not subject to radio drop-outs. As
-        such, it provides a more complete and precise record of the
-        flight. The 'Save Flight Data' button allows you to read the
-        flash memory and write it to disk. 
-      </para>
-      <para>
-        Clicking on the 'Save Flight Data' button brings up a list of
-        connected flight computers and TeleDongle devices. If you select a
-        flight computer, the flight data will be downloaded from that
-        device directly. If you select a TeleDongle device, flight data
-        will be downloaded from a flight computer over radio link via the 
-       specified TeleDongle. See the chapter on Controlling An Altimeter 
-       Over The Radio Link for more information.
-      </para>
-      <para>
-       After the device has been selected, a dialog showing the
-       flight data saved in the device will be shown allowing you to
-       select which flights to download and which to delete. With
-       version 0.9 or newer firmware, you must erase flights in order
-       for the space they consume to be reused by another
-       flight. This prevents accidentally losing flight data
-       if you neglect to download data before flying again. Note that
-       if there is no more space available in the device, then no
-       data will be recorded during the next flight.
-      </para>
-      <para>
-        The file name for each flight log is computed automatically
-        from the recorded flight date, altimeter serial number and
-        flight number information.
-      </para>
-    </section>
-    <section>
-      <title>Replay Flight</title>
-      <para>
-        Select this button and you are prompted to select a flight
-        record file, either a .telem file recording telemetry data or a
-        .eeprom file containing flight data saved from the altimeter
-        flash memory.
-      </para>
-      <para>
-        Once a flight record is selected, the flight monitor interface
-        is displayed and the flight is re-enacted in real time. Check
-        the Monitor Flight chapter above to learn how this window operates.
-      </para>
-    </section>
-    <section>
-      <title>Graph Data</title>
-      <para>
-        Select this button and you are prompted to select a flight
-        record file, either a .telem file recording telemetry data or a
-        .eeprom file containing flight data saved from
-        flash memory.
-      </para>
-      <para>
-        Note that telemetry files will generally produce poor graphs
-        due to the lower sampling rate and missed telemetry packets.
-        Use saved flight data in .eeprom files for graphing where possible.
-      </para>
-      <para>
-        Once a flight record is selected, a window with multiple tabs is
-        opened.
-      </para>
-      <section>
-       <title>Flight Graph</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="graph.png" width="6in" scalefit="1"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-       <para>
-         By default, the graph contains acceleration (blue),
-         velocity (green) and altitude (red).
-       </para>
-      <para>
-        The graph can be zoomed into a particular area by clicking and
-        dragging down and to the right. Once zoomed, the graph can be
-        reset by clicking and dragging up and to the left. Holding down
-        control and clicking and dragging allows the graph to be panned.
-        The right mouse button causes a pop-up menu to be displayed, giving
-        you the option save or print the plot.
-      </para>
-      </section>
-      <section>
-       <title>Configure Graph</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="graph-configure.png" width="6in" scalefit="1"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-       <para>
-         This selects which graph elements to show, and, at the
-         very bottom, lets you switch between metric and
-         imperial units
-       </para>
-      </section>
-      <section>
-       <title>Flight Statistics</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="graph-stats.png" width="6in" scalefit="1"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-       <para>
-         Shows overall data computed from the flight.
-       </para>
-      </section>
-      <section>
-       <title>Map</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="graph-map.png" width="6in" scalefit="1"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-       <para>
-         Shows a satellite image of the flight area overlaid
-         with the path of the flight. The red concentric
-         circles mark the launch pad, the black concentric
-         circles mark the landing location.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>Export Data</title>
-      <para>
-        This tool takes the raw data files and makes them available for
-        external analysis. When you select this button, you are prompted to 
-       select a flight data file, which can be either a .eeprom or .telem.
-       The .eeprom files contain higher resolution and more continuous data, 
-       while .telem files contain receiver signal strength information.  
-       Next, a second dialog appears which is used to select
-        where to write the resulting file. It has a selector to choose
-        between CSV and KML file formats.
-      </para>
-      <section>
-        <title>Comma Separated Value Format</title>
-        <para>
-          This is a text file containing the data in a form suitable for
-          import into a spreadsheet or other external data analysis
-          tool. The first few lines of the file contain the version and
-          configuration information from the altimeter, then
-          there is a single header line which labels all of the
-          fields. All of these lines start with a '#' character which
-          many tools can be configured to skip over.
-        </para>
-        <para>
-          The remaining lines of the file contain the data, with each
-          field separated by a comma and at least one space. All of
-          the sensor values are converted to standard units, with the
-          barometric data reported in both pressure, altitude and
-          height above pad units.
-        </para>
-      </section>
-      <section>
-        <title>Keyhole Markup Language (for Google Earth)</title>
-        <para>
-          This is the format used by Google Earth to provide an overlay 
-         within that application. With this, you can use Google Earth to 
-         see the whole flight path in 3D.
-        </para>
-      </section>
-    </section>
-    <section>
-      <title>Configure Altimeter</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="configure-altimeter.png" width="3.6in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-        Select this button and then select either an altimeter or
-        TeleDongle Device from the list provided. Selecting a TeleDongle
-        device will use the radio link to configure a remote altimeter. 
-      </para>
-      <para>
-        The first few lines of the dialog provide information about the
-        connected device, including the product name,
-        software version and hardware serial number. Below that are the
-        individual configuration entries.
-      </para>
-      <para>
-        At the bottom of the dialog, there are four buttons:
-      </para>
-      <variablelist>
-       <varlistentry>
-         <term>Save</term>
-         <listitem>
-           <para>
-             This writes any changes to the
-             configuration parameter block in flash memory. If you don't
-             press this button, any changes you make will be lost.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>Reset</term>
-         <listitem>
-           <para>
-             This resets the dialog to the most recently saved values,
-             erasing any changes you have made.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>Reboot</term>
-         <listitem>
-           <para>
-             This reboots the device. Use this to
-             switch from idle to pad mode by rebooting once the rocket is
-             oriented for flight, or to confirm changes you think you saved 
-             are really saved.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>Close</term>
-         <listitem>
-           <para>
-             This closes the dialog. Any unsaved changes will be
-             lost.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-      <para>
-        The rest of the dialog contains the parameters to be configured.
-      </para>
-      <section>
-        <title>Main Deploy Altitude</title>
-        <para>
-          This sets the altitude (above the recorded pad altitude) at
-          which the 'main' igniter will fire. The drop-down menu shows
-          some common values, but you can edit the text directly and
-          choose whatever you like. If the apogee charge fires below
-          this altitude, then the main charge will fire two seconds
-          after the apogee charge fires.
-        </para>
-      </section>
-      <section>
-        <title>Apogee Delay</title>
-        <para>
-          When flying redundant electronics, it's often important to
-          ensure that multiple apogee charges don't fire at precisely
-          the same time, as that can over pressurize the apogee deployment
-          bay and cause a structural failure of the air-frame. The Apogee
-          Delay parameter tells the flight computer to fire the apogee
-          charge a certain number of seconds after apogee has been
-          detected.
-        </para>
-      </section>
-      <section>
-        <title>Apogee Lockoug</title>
-        <para>
-         Apogee lockout is the number of seconds after boost where
-         the flight computer will not fire the apogee charge, even if
-         the rocket appears to be at apogee. This is often called
-         'Mach Delay', as it is intended to prevent a flight computer
-         from unintentionally firing apogee charges due to the pressure
-         spike that occurrs across a mach transition. Altus Metrum
-         flight computers include a Kalman filter which is not fooled
-         by this sharp pressure increase, and so this setting should
-         be left at the default value of zero to disable it.
-        </para>
-      </section>
-      <section>
-        <title>Frequency</title>
-        <para>
-          This configures which of the frequencies to use for both
-          telemetry and packet command mode. Note that if you set this
-          value via packet command mode, the TeleDongle frequency will
-          also be automatically reconfigured to match so that
-          communication will continue afterwards.
-        </para>
-      </section>
-      <section>
-        <title>RF Calibration</title>
-        <para>
-          The radios in every Altus Metrum device are calibrated at the
-          factory to ensure that they transmit and receive on the
-          specified frequency.  If you need to you can adjust the calibration 
-         by changing this value.  Do not do this without understanding what
-         the value means, read the appendix on calibration and/or the source
-         code for more information.  To change a TeleDongle's calibration, 
-         you must reprogram the unit completely.
-        </para>
-      </section>
-      <section>
-       <title>Telemetry/RDF/APRS Enable</title>
-       <para>
-         Enables the radio for transmission during flight. When
-         disabled, the radio will not transmit anything during flight
-         at all.
-       </para>
-      </section>
-      <section>
-       <title>Telemetry baud rate</title>
-       <para>
-         This sets the modulation bit rate for data transmission for
-         both telemetry and packet link mode. Lower bit
-         rates will increase range while reducing the amount of data
-         that can be sent and increasing battery consumption. All
-         telemetry is done using a rate 1/2 constraint 4 convolution
-         code, so the actual data transmission rate is 1/2 of the
-         modulation bit rate specified here.
-       </para>
-      </section>
-      <section>
-       <title>APRS Interval</title>
-       <para>
-         How often to transmit GPS information via APRS (in
-         seconds). When set to zero, APRS transmission is
-         disabled. This option is available on TeleMetrum v2 and
-         TeleMega boards. TeleMetrum v1 boards cannot transmit APRS
-         packets. Note that a single APRS packet takes nearly a full
-         second to transmit, so enabling this option will prevent
-         sending any other telemetry during that time.
-       </para>
-      </section>
-      <section>
-       <title>APRS SSID</title>
-       <para>
-         Which SSID to report in APRS packets. By default, this is
-         set to the last digit of the serial number, but can be
-         configured to any value from 0 to 9.
-       </para>
-      </section>
-      <section>
-        <title>Callsign</title>
-        <para>
-          This sets the call sign included in each telemetry packet. Set this
-          as needed to conform to your local radio regulations.
-        </para>
-      </section>
-      <section>
-        <title>Maximum Flight Log Size</title>
-        <para>
-          This sets the space (in kilobytes) allocated for each flight
-          log. The available space will be divided into chunks of this
-          size. A smaller value will allow more flights to be stored,
-          a larger value will record data from longer flights.
-       </para>
-      </section>
-      <section>
-        <title>Ignitor Firing Mode</title>
-       <para>
-         This configuration parameter allows the two standard ignitor
-         channels (Apogee and Main) to be used in different
-         configurations.
-       </para>
-          <variablelist>
-           <varlistentry>
-             <term>Dual Deploy</term>
-             <listitem>
-               <para>
-                 This is the usual mode of operation; the
-                 'apogee' channel is fired at apogee and the 'main'
-                 channel at the height above ground specified by the
-                 'Main Deploy Altitude' during descent.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>Redundant Apogee</term>
-             <listitem>
-               <para>
-                 This fires both channels at
-                 apogee, the 'apogee' channel first followed after a two second
-                 delay by the 'main' channel.
-               </para>
-             </listitem>
-           </varlistentry>
-           <varlistentry>
-             <term>Redundant Main</term>
-             <listitem>
-               <para>
-                 This fires both channels at the
-                 height above ground specified by the Main Deploy
-                 Altitude setting during descent. The 'apogee'
-                 channel is fired first, followed after a two second
-                 delay by the 'main' channel.
-               </para>
-             </listitem>
-           </varlistentry>
-       </variablelist>
-      </section>
-      <section>
-        <title>Pad Orientation</title>
-       <para>
-         Because they include accelerometers, TeleMetrum,
-         TeleMega and EasyMega are sensitive to the orientation of the board. By
-         default, they expect 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>
-       <variablelist>
-         <varlistentry>
-           <term>Antenna Up</term>
-           <listitem>
-             <para>
-               In this mode, the antenna end of the
-               flight computer must point forward, in line with the
-               expected flight path.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Antenna Down</term>
-           <listitem>
-             <para>
-               In this mode, the antenna end of the
-               flight computer must point aft, in line with the
-               expected flight path.
-             </para>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </section>
-      <section>
-        <title>Beeper Frequency</title>
-       <para>
-         The beeper on all Altus Metrum flight computers works best
-         at 4000Hz, however if you have more than one flight computer
-         in a single airframe, having all of them sound at the same
-         frequency can be confusing. This parameter lets you adjust
-         the base beeper frequency value.
-       </para>
-      </section>
-      <section>
-       <title>Configure Pyro Channels</title>
-       <informalfigure>
-         <mediaobject>
-           <imageobject>
-             <imagedata fileref="configure-pyro.png" width="6in" scalefit="1"/>
-           </imageobject>
-         </mediaobject>
-       </informalfigure>
-       <para>
-         This opens a separate window to configure the additional
-         pyro channels available on TeleMega and EasyMega.  One column is
-         presented for each channel. Each row represents a single
-         parameter, if enabled the parameter must meet the specified
-         test for the pyro channel to be fired. See the Pyro Channels
-         section in the System Operation chapter above for a
-         description of these parameters.
-       </para>
-       <para>
-         Select conditions and set the related value; the pyro
-         channel will be activated when <emphasis>all</emphasis> of the
-         conditions are met. Each pyro channel has a separate set of
-         configuration values, so you can use different values for
-         the same condition with different channels.
-       </para>
-       <para>
-         At the bottom of the window, the 'Pyro Firing Time'
-         configuration sets the length of time (in seconds) which
-         each of these pyro channels will fire for.
-       </para>
-       <para>
-         Once you have selected the appropriate configuration for all
-         of the necessary pyro channels, you can save the pyro
-         configuration along with the rest of the flight computer
-         configuration by pressing the 'Save' button in the main
-         Configure Flight Computer window.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>Configure AltosUI</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="configure-altosui.png" width="2.4in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-        This button presents a dialog so that you can configure the AltosUI global settings.
-      </para>
-      <section>
-        <title>Voice Settings</title>
-        <para>
-          AltosUI provides voice announcements during flight so that you
-          can keep your eyes on the sky and still get information about
-          the current flight status. However, sometimes you don't want
-          to hear them.
-        </para>
-        <variablelist>
-         <varlistentry>
-           <term>Enable</term>
-           <listitem>
-             <para>Turns all voice announcements on and off</para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Test Voice</term>
-           <listitem>
-             <para>
-               Plays a short message allowing you to verify
-               that the audio system is working and the volume settings
-               are reasonable
-             </para>
-           </listitem>
-         </varlistentry>
-        </variablelist>
-      </section>
-      <section>
-        <title>Log Directory</title>
-        <para>
-          AltosUI logs all telemetry data and saves all TeleMetrum flash
-          data to this directory. This directory is also used as the
-          staring point when selecting data files for display or export.
-        </para>
-        <para>
-          Click on the directory name to bring up a directory choosing
-          dialog, select a new directory and click 'Select Directory' to
-          change where AltosUI reads and writes data files.
-        </para>
-      </section>
-      <section>
-        <title>Callsign</title>
-        <para>
-          This value is transmitted in each command packet sent from 
-         TeleDongle and received from an altimeter.  It is not used in 
-         telemetry mode, as the callsign configured in the altimeter board
-         is included in all telemetry packets.  Configure this
-          with the AltosUI operators call sign as needed to comply with
-          your local radio regulations.
-        </para>
-        <para>
-         Note that to successfully command a flight computer over the radio
-         (to configure the altimeter, monitor idle, or fire pyro charges), 
-         the callsign configured here must exactly match the callsign
-         configured in the flight computer.  This matching is case 
-         sensitive.
-        </para>
-      </section>
-      <section>
-       <title>Imperial Units</title>
-       <para>
-         This switches between metric units (meters) and imperial
-         units (feet and miles). This affects the display of values
-         use during flight monitoring, configuration, data graphing
-         and all of the voice announcements. It does not change the
-         units used when exporting to CSV files, those are always
-         produced in metric units.
-       </para>
-      </section>
-      <section>
-       <title>Font Size</title>
-       <para>
-         Selects the set of fonts used in the flight monitor
-         window. Choose between the small, medium and large sets.
-       </para>
-      </section>
-      <section>
-        <title>Serial Debug</title>
-        <para>
-          This causes all communication with a connected device to be
-          dumped to the console from which AltosUI was started. If
-          you've started it from an icon or menu entry, the output
-          will simply be discarded. This mode can be useful to debug
-          various serial communication issues.
-        </para>
-      </section>
-      <section>
-       <title>Manage Frequencies</title>
-       <para>
-         This brings up a dialog where you can configure the set of
-         frequencies shown in the various frequency menus. You can
-         add as many as you like, or even reconfigure the default
-         set. Changing this list does not affect the frequency
-         settings of any devices, it only changes the set of
-         frequencies shown in the menus.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>Configure Groundstation</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="configure-groundstation.png" width="3.1in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-        Select this button and then select a TeleDongle or TeleBT Device from the list provided.
-      </para>
-      <para>
-        The first few lines of the dialog provide information about the
-        connected device, including the product name,
-        software version and hardware serial number. Below that are the
-        individual configuration entries.
-      </para>
-      <para>
-       Note that TeleDongle and TeleBT don't save any configuration
-       data, the settings here are recorded on the local machine in
-       the Java preferences database. Moving the device to
-       another machine, or using a different user account on the same
-       machine will cause settings made here to have no effect.
-      </para>
-      <para>
-        At the bottom of the dialog, there are three buttons:
-      </para>
-      <variablelist>
-       <varlistentry>
-         <term>Save</term>
-         <listitem>
-           <para>
-             This writes any changes to the
-             local Java preferences file. If you don't
-             press this button, any changes you make will be lost.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>Reset</term>
-         <listitem>
-           <para>
-             This resets the dialog to the most recently saved values,
-             erasing any changes you have made.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>Close</term>
-         <listitem>
-           <para>
-             This closes the dialog. Any unsaved changes will be
-             lost.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-      <para>
-        The rest of the dialog contains the parameters to be configured.
-      </para>
-      <section>
-        <title>Frequency</title>
-        <para>
-          This configures the frequency to use for both telemetry and
-          packet command mode. Set this before starting any operation
-          involving packet command mode so that it will use the right
-          frequency. Telemetry monitoring mode also provides a menu to
-          change the frequency, and that menu also sets the same Java
-          preference value used here.
-        </para>
-      </section>
-      <section>
-        <title>RF Calibration</title>
-        <para>
-          The radios in every Altus Metrum device are calibrated at the
-          factory to ensure that they transmit and receive on the
-          specified frequency.  To change a TeleDongle or TeleBT's calibration, 
-         you must reprogram the unit completely, so this entry simply
-         shows the current value and doesn't allow any changes.
-        </para>
-      </section>
-      <section>
-        <title>Telemetry Rate</title>
-        <para>
-          This lets you match the telemetry and packet link rate from
-          the transmitter. If they don't match, the device won't
-          receive any data.
-        </para>
-      </section>
-    </section>
-    <section>
-      <title>Flash Image</title>
-      <para>
-        This reprograms Altus Metrum devices with new
-        firmware. TeleMetrum v1.x, TeleDongle v0.2, TeleMini and
-        TeleBT are all reprogrammed by using another similar unit as a
-        programming dongle (pair programming). TeleMega, EasyMega,
-        TeleMetrum v2, EasyMini and TeleDongle v3 are all programmed
-        directly over their USB ports (self programming).  Please read
-        the directions for flashing devices in the Updating Device
-        Firmware chapter below.
-      </para>
-    </section>
-    <section>
-      <title>Fire Igniter</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="fire-igniter.png" width="1.2in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-       This activates the igniter circuits in the flight computer to help 
-       test recovery systems deployment. Because this command can operate
-       over the Packet Command Link, you can prepare the rocket as
-       for flight and then test the recovery system without needing
-       to snake wires inside the air-frame.
-      </para>
-      <para>
-       Selecting the 'Fire Igniter' button brings up the usual device
-       selection dialog. Pick the desired device. This brings up another 
-       window which shows the current continuity test status for all
-       of the pyro channels.
-      </para>
-      <para>
-       Next, select the desired igniter to fire. This will enable the
-       'Arm' button.
-      </para>
-      <para>
-       Select the 'Arm' button. This enables the 'Fire' button. The
-       word 'Arm' is replaced by a countdown timer indicating that
-       you have 10 seconds to press the 'Fire' button or the system
-       will deactivate, at which point you start over again at
-       selecting the desired igniter.
-      </para>
-    </section>
-    <section>
-      <title>Scan Channels</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="scan-channels.png" width="3.2in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-       This listens for telemetry packets on all of the configured
-       frequencies, displaying information about each device it
-       receives a packet from. You can select which of the baud rates
-       and telemetry formats should be tried; by default, it only listens
-       at 38400 baud with the standard telemetry format used in v1.0 and later
-       firmware.
-      </para>
-    </section>
-    <section>
-      <title>Load Maps</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="load-maps.png" width="5.2in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-       Before heading out to a new launch site, you can use this to
-       load satellite images in case you don't have internet
-       connectivity at the site.
-      </para>
-      <para>
-       There's a drop-down menu of launch sites we know about; if
-       your favorites aren't there, please let us know the lat/lon
-       and name of the site. The contents of this list are actually
-       downloaded from our server at run-time, so as new sites are sent 
-       in, they'll get automatically added to this list.
-       If the launch site isn't in the list, you can manually enter the lat/lon values
-      </para>
-      <para>
-       There are four different kinds of maps you can view; you can
-       select which to download by selecting as many as you like from
-       the available types:
-       <variablelist>
-         <varlistentry>
-           <term>Hybrid</term>
-           <listitem>
-             <para>
-               A combination of satellite imagery and road data. This
-               is the default view.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Satellite</term>
-           <listitem>
-             <para>
-               Just the satellite imagery without any annotation.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Roadmap</term>
-           <listitem>
-             <para>
-               Roads, political boundaries and a few geographic features.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Terrain</term>
-           <listitem>
-             <para>
-               Contour intervals and shading that show hills and
-               valleys.
-             </para>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </para>
-      <para>
-       You can specify the range of zoom levels to download; smaller
-       numbers show more area with less resolution. The default
-       level, 0, shows about 3m/pixel. One zoom level change
-       doubles or halves that number. Larger zoom levels show more
-       detail, smaller zoom levels less.
-      </para>
-      <para>
-       The Map Radius value sets how large an area around the center
-       point to download. Select a value large enough to cover any
-       plausible flight from that site. Be aware that loading a large
-       area with a high maximum zoom level can attempt to download a
-       lot of data. Loading hybrid maps with a 10km radius at a
-       minimum zoom of -2 and a maximum zoom of 2 consumes about
-       120MB of space. Terrain and road maps consume about 1/10 as
-       much space as satellite or hybrid maps.
-      </para>
-      <para>
-       Clicking the 'Load Map' button will fetch images from Google
-       Maps; note that Google limits how many images you can fetch at
-       once, so if you load more than one launch site, you may get
-       some gray areas in the map which indicate that Google is tired
-       of sending data to you. Try again later.
-      </para>
-    </section>
-    <section>
-      <title>Monitor Idle</title>
-      <informalfigure>
-       <mediaobject>
-         <imageobject>
-           <imagedata fileref="monitor-idle.png" width="5.2in" scalefit="1"/>
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-      <para>
-       This brings up a dialog similar to the Monitor Flight UI,
-       except it works with the altimeter in “idle” mode by sending
-       query commands to discover the current state rather than
-       listening for telemetry packets. Because this uses command
-       mode, it needs to have the TeleDongle and flight computer
-       callsigns match exactly. If you can receive telemetry, but
-       cannot manage to run Monitor Idle, then it's very likely that
-       your callsigns are different in some way.
-      </para>
-      <para>
-       You can change the frequency and callsign used to communicate
-       with the flight computer; they must both match the
-       configuration in the flight computer exactly.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>AltosDroid</title>
-    <para>
-      AltosDroid provides the same flight monitoring capabilities as
-      AltosUI, but runs on Android devices. AltosDroid is designed to connect
-      to a TeleBT receiver over Bluetooth™ and (on Android devices supporting
-      USB On-the-go) TeleDongle and TeleBT devices over USB. AltosDroid monitors
-      telemetry data, logging it to internal storage in the Android
-      device, and presents that data in a UI similar to the 'Monitor
-      Flight' window in AltosUI.
-    </para>
-    <para>
-      This manual will explain how to configure AltosDroid, connect to
-      TeleBT or TeleDongle, operate the flight monitoring interface
-      and describe what the displayed data means.
-    </para>
-    <section>
-      <title>Installing AltosDroid</title>
-      <para>
-       AltosDroid is available from the Google Play store. To install
-       it on your Android device, open the Google Play Store
-       application and search for “altosdroid”. Make sure you don't
-       have a space between “altos” and “droid” or you probably won't
-       find what you want. That should bring you to the right page
-       from which you can download and install the application.
-      </para>
-    </section>
-    <section>
-      <title>Charging TeleBT Battery</title>
-      <para>
-       Before using TeleBT with AltosDroid, make sure the internal 
-       TeleBT battery is charged.  To do this, attach a micro USB
-       cable from a computer or other USB power source to TeleBT.
-       A dual LED on the circuit board should illuminate, showing
-       red while the battery is charging, green when charging is
-       completed, and both red and green on at the same time if
-       there is a battery fault.
-      </para>
-    </section>
-    <section>
-      <title>Connecting to TeleBT over Bluetooth™</title>
-      <para>
-       Press the Android 'Menu' button or soft-key to see the
-       configuration options available. Select the 'Connect a device'
-       option and then the 'Scan for devices' entry at the bottom to
-       look for your TeleBT device. Select your device, and when it
-       asks for the code, enter '1234'.
-      </para>
-      <para>
-       Subsequent connections will not require you to enter that
-       code, and your 'paired' device will appear in the list without
-       scanning.
-      </para>
-    </section>
-    <section>
-      <title>Connecting to TeleDongle or TeleBT over USB</title>
-      <para>
-       Get a special USB On-the-go adapter cable. These cables have a USB
-       micro-B male connector on one end and a standard A female
-       connector on the other end. Plug in your TeleDongle or TeleBT
-       device to the adapter cable and the adapter cable into your
-       phone and AltosDroid should automatically start up. If it
-       doesn't, the most likely reason is that your Android device
-       doesn't support USB On-the-go.
-      </para>
-    </section>
-    <section>
-      <title>Configuring AltosDroid</title>
-      <para>
-       There are several configuration and operation parameters
-       available in the AltosDroid menu.
-      </para>
-      <section>
-       <title>Select radio frequency</title>
-       <para>
-         This selects which frequency to listen on by bringing up a
-         menu of pre-set radio frequencies. Pick the one which matches
-         your altimeter.
-       </para>
-      </section>
-      <section>
-       <title>Select data rate</title>
-       <para>
-         Altus Metrum transmitters can be configured to operate at
-         lower data rates to improve transmission range. If you have
-         configured your device to do this, this menu item allows you
-         to change the receiver to match.
-       </para>
-      </section>
-      <section>
-       <title>Change units</title>
-       <para>
-         This toggles between metric and imperial units.
-       </para>
-      </section>
-      <section>
-       <title>Load maps</title>
-       <para>
-         Brings up a dialog allowing you to download offline map
-         tiles so that you can have maps available even if you have
-         no network connectivity at the launch site.
-       </para>
-      </section>
-      <section>
-       <title>Map type</title>
-       <para>
-         Displays a menu of map types and lets you select one. Hybrid
-         maps include satellite images with a roadmap
-         overlaid. Satellite maps dispense with the roadmap
-         overlay. Roadmap shows just the roads. Terrain includes
-         roads along with shadows indicating changes in elevation,
-         and other geographical features.
-       </para>
-      </section>
-      <section>
-       <title>Toggle Online/Offline maps</title>
-       <para>
-         Switches between online and offline maps. Online maps will
-         show a 'move to current position' icon in the upper right
-         corner, while offline maps will have copyright information
-         all over the map. Otherwise, they're pretty similar.
-       </para>
-      </section>
-      <section>
-       <title>Select Tracker</title>
-       <para>
-         Switches the information displays to show data for a
-         different transmitting device. The map will always show all
-         of the devices in view. Trackers are shown and selected by
-         serial number, so make sure you note the serial number of
-         devices in each airframe.
-       </para>
-      </section>
-      <section>
-       <title>Delete Track</title>
-       <para>
-         Deletes all information about a transmitting device.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>AltosDroid Flight Monitoring</title>
-      <para>
-       AltosDroid is designed to mimic the AltosUI flight monitoring
-       display, providing separate tabs for each stage of your rocket
-       flight along with a tab containing a map of the local area
-       with icons marking the current location of the altimeter and
-       the Android device.
-      </para>
-      <section>
-       <title>Pad</title>
-        <para>
-          The 'Pad' tab shows information used to decide when the
-          rocket is ready for flight. The first elements include red/green
-          indicators, if any of these is red, you'll want to evaluate
-          whether the rocket is ready to launch.
-       </para>
-       <para>
-         When the pad tab is selected, the voice responses will
-         include status changes to the igniters and GPS reception,
-         letting you know if the rocket is still ready for launch.
-       </para>
-        <variablelist>
-         <varlistentry>
-           <term>Battery</term>
-           <listitem>
-             <para>
-               This indicates whether the Li-Po battery
-               powering the transmitter has sufficient charge to last for
-               the duration of the flight. A value of more than
-               3.8V is required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Receiver Battery</term>
-           <listitem>
-             <para>
-               This indicates whether the Li-Po battery
-               powering the TeleBT has sufficient charge to last for
-               the duration of the flight. A value of more than
-               3.8V is required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Data Logging</term>
-           <listitem>
-             <para>
-               This indicates whether there is space remaining
-               on-board to store flight data for the upcoming
-               flight. If you've downloaded data, but failed to
-               erase flights, there may not be any space
-               left. TeleMetrum and TeleMega can store multiple
-               flights, depending on the configured maximum flight
-               log size. TeleGPS logs data continuously. TeleMini
-               stores only a single flight, so it will need to be
-               downloaded and erased after each flight to capture
-               data. This only affects on-board flight logging; the
-               altimeter will still transmit telemetry and fire
-               ejection charges at the proper times.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>GPS Locked</term>
-           <listitem>
-             <para>
-               For a TeleMetrum or TeleMega device, this indicates whether the GPS receiver is
-               currently able to compute position information. GPS requires
-               at least 4 satellites to compute an accurate position.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>GPS Ready</term>
-           <listitem>
-             <para>
-               For a TeleMetrum or TeleMega device, this indicates whether GPS has reported at least
-               10 consecutive positions without losing lock. This ensures
-               that the GPS receiver has reliable reception from the
-               satellites.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Apogee Igniter</term>
-           <listitem>
-             <para>
-               This indicates whether the apogee
-               igniter has continuity. If the igniter has a low
-               resistance, then the voltage measured here will be close
-               to the Li-Po battery voltage. A value greater than 3.2V is
-               required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Main Igniter</term>
-           <listitem>
-             <para>
-               This indicates whether the main
-               igniter has continuity. If the igniter has a low
-               resistance, then the voltage measured here will be close
-               to the Li-Po battery voltage. A value greater than 3.2V is
-               required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Igniter A-D</term>
-           <listitem>
-             <para>
-               This indicates whether the indicated additional pyro
-               channel igniter has continuity. If the igniter has a
-               low resistance, then the voltage measured here will
-               be close to the Li-Po battery voltage. A value
-               greater than 3.2V is required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-        </variablelist>
-       <para>
-         The Pad tab also shows the location of the Android device.
-       </para>
-      </section>
-      <section>
-       <title>Flight</title>
-        <para>
-          The 'Flight' tab shows information used to evaluate and spot
-          a rocket while in flight. It displays speed and height data
-          to monitor the health of the rocket, along with elevation,
-          range and bearing to help locate the rocket in the sky.
-       </para>
-       <para>
-         While the Flight tab is displayed, the voice announcements
-         will include current speed, height, elevation and bearing
-         information.
-       </para>
-        <variablelist>
-         <varlistentry>
-           <term>Speed</term>
-           <listitem>
-             <para>
-               Shows current vertical speed. During descent, the
-               speed values are averaged over a fairly long time to
-               try and make them steadier.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Height</term>
-           <listitem>
-             <para>
-               Shows the current height above the launch pad.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Max Speed</term>
-           <listitem>
-             <para>
-               Shows the maximum vertical speed seen during the flight.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Max Height</term>
-           <listitem>
-             <para>
-               Shows the maximum height above launch pad.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Elevation</term>
-           <listitem>
-             <para>
-               This is the angle above the horizon from the android
-               devices current position.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Range</term>
-           <listitem>
-             <para>
-               The total distance from the android device to the
-               rocket, including both ground distance and
-               difference in altitude. Use this to gauge how large
-               the rocket is likely to appear in the sky.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Bearing</term>
-           <listitem>
-             <para>
-               This is the aziumuth from true north for the rocket
-               from the android device. Use this in combination
-               with the Elevation value to help locate the rocket
-               in the sky, or at least to help point the antenna in
-               the general direction. This is provided in both
-               degrees and a compass point (like West South
-               West). You'll want to know which direction is true
-               north before launching your rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Ground Distance</term>
-           <listitem>
-             <para>
-               This shows the distance across the ground to the
-               lat/lon where the rocket is located. Use this to
-               estimate what is currently under the rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Latitude/Longitude</term>
-           <listitem>
-             <para>
-               Displays the last known location of the rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Apogee Igniter</term>
-           <listitem>
-             <para>
-               This indicates whether the apogee
-               igniter has continuity. If the igniter has a low
-               resistance, then the voltage measured here will be close
-               to the Li-Po battery voltage. A value greater than 3.2V is
-               required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Main Igniter</term>
-           <listitem>
-             <para>
-               This indicates whether the main
-               igniter has continuity. If the igniter has a low
-               resistance, then the voltage measured here will be close
-               to the Li-Po battery voltage. A value greater than 3.2V is
-               required for a 'GO' status.
-             </para>
-           </listitem>
-         </varlistentry>
-        </variablelist>
-      </section>
-      <section>
-       <title>Recover</title>
-        <para>
-          The 'Recover' tab shows information used while recovering the
-         rocket on the ground after flight.
-       </para>
-       <para>
-         While the Recover tab is displayed, the voice announcements
-         will include distance along with either bearing or
-         direction, depending on whether you are moving.
-       </para>
-        <variablelist>
-         <varlistentry>
-           <term>Bearing</term>
-           <listitem>
-             <para>
-               This is the aziumuth from true north for the rocket
-               from the android device. Use this in combination
-               with the Elevation value to help locate the rocket
-               in the sky, or at least to help point the antenna in
-               the general direction. This is provided in both
-               degrees and a compass point (like West South
-               West). You'll want to know which direction is true
-               north before launching your rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Direction</term>
-           <listitem>
-             <para>
-               When you are in motion, this provides the angle from
-               your current direction of motion towards the rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Distance</term>
-           <listitem>
-             <para>
-               Distance over the ground to the rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Tar Lat/Tar Lon</term>
-           <listitem>
-             <para>
-               Displays the last known location of the rocket.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>My Lat/My Lon</term>
-           <listitem>
-             <para>
-               Displays the location of the Android device.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Max Height</term>
-           <listitem>
-             <para>
-               Shows the maximum height above launch pad.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Max Speed</term>
-           <listitem>
-             <para>
-               Shows the maximum vertical speed seen during the flight.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>Max Accel</term>
-           <listitem>
-             <para>
-               Shows the maximum vertical acceleration seen during the flight.
-             </para>
-           </listitem>
-         </varlistentry>
-        </variablelist>
-      </section>
-      <section>
-       <title>Map</title>
-       <para>
-         The 'Map' tab shows a map of the area around the rocket
-         being tracked along with information needed to recover it.
-       </para>
-       <para>
-         On the map itself, icons showing the location of the android
-         device along with the last known location of each tracker. A
-         blue line is drawn from the android device location to the
-         currently selected tracker.
-       </para>
-       <para>
-         Below the map, the distance and either bearing or direction
-         along with the lat/lon of the target and the android device
-         are shown
-       </para>
-       <para>
-         The Map tab provides the same voice announcements as the
-         Recover tab.
-       </para>
-      </section>
-    </section>
-    <section>
-      <title>Downloading Flight Logs</title>
-      <para>
-       AltosDroid always saves every bit of telemetry data it
-       receives. To download that to a computer for use with AltosUI,
-       remove the SD card from your Android device, or connect your
-       device to your computer's USB port and browse the files on
-       that device. You will find '.telem' files in the TeleMetrum
-       directory that will work with AltosUI directly.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Using Altus Metrum Products</title>
-    <section>
-      <title>Being Legal</title>
-      <para>
-        First off, in the US, you need an <ulink url="http://www.altusmetrum.org/Radio/">amateur radio license</ulink> or
-        other authorization to legally operate the radio transmitters that are part
-        of our products.
-      </para>
-      </section>
-      <section>
-        <title>In the Rocket</title>
-        <para>
-          In the rocket itself, you just need a flight computer and
-          a single-cell, 3.7 volt nominal Li-Po rechargeable battery.  An 
-         850mAh battery weighs less than a 9V alkaline battery, and will 
-         run a TeleMetrum, TeleMega or EasyMega for hours.
-         A 110mAh battery weighs less than a triple A battery and is a good
-         choice for use with TeleMini or EasyMini.
-        </para>
-        <para>
-          By default, we ship TeleMini, TeleMetrum and TeleMega flight computers with a simple wire antenna.  
-         If your electronics bay or the air-frame it resides within is made 
-         of carbon fiber, which is opaque to RF signals, you may prefer to 
-         install an SMA connector so that you can run a coaxial cable to an 
-         antenna mounted elsewhere in the rocket.  However, note that the 
-         GPS antenna is fixed on all current products, so you really want
-         to install the flight computer in a bay made of RF-transparent
-         materials if at all possible.
-        </para>
-      </section>
-      <section>
-        <title>On the Ground</title>
-        <para>
-          To receive the data stream from the rocket, you need an antenna and short
-          feed-line connected to one of our <ulink url="http://www.altusmetrum.org/TeleDongle/">TeleDongle</ulink> units.  If possible, use an SMA to BNC 
-       adapter instead of feedline between the antenna feedpoint and 
-       TeleDongle, as this will give you the best performance.  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>
-         The GUI tool, AltosUI, is written in Java and runs across
-         Linux, Mac OS and Windows. There's also a suite of C tools
-         for Linux which can perform most of the same tasks.
-        </para>
-        <para>
-         Alternatively, a TeleBT attached with an SMA to BNC adapter at the
-         feed point of a hand-held yagi used in conjunction with an Android
-         device running AltosDroid makes an outstanding ground station.
-        </para>
-        <para>
-          After the flight, you can use the radio link to extract the more detailed data
-          logged in either TeleMetrum or TeleMini devices, or you can use a mini USB cable to plug into the
-          TeleMetrum board directly.  Pulling out the data without having to open up
-          the rocket is pretty cool!  A USB cable is also how you charge the Li-Po
-          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 way-point for the last 
-         reported rocket position before touch-down.  This makes looking for 
-         your rocket a lot like Geo-Caching... just go to the way-point and 
-         look around starting from there.  AltosDroid on an Android device
-         with GPS receiver works great for this, too!
-        </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
-          currently uses a Yaesu FT1D, Bdale has a Yaesu VX-7R, which
-         is a nicer radio in most ways but doesn't support APRS.
-        </para>
-        <para>
-          So, to recap, on the ground the hardware you'll need includes:
-          <orderedlist inheritnum='inherit' numeration='arabic'>
-            <listitem>
-              <para>
-             an antenna and feed-line or adapter
-             </para>
-            </listitem>
-            <listitem>
-              <para>
-             a TeleDongle
-             </para>
-            </listitem>
-            <listitem>
-              <para>
-             a notebook computer
-             </para>
-            </listitem>
-            <listitem>
-              <para>
-             optionally, a hand-held GPS receiver
-             </para>
-            </listitem>
-            <listitem>
-              <para>
-             optionally, an HT or receiver covering 435 MHz
-             </para>
-            </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- or TeleMini- equipped rocket when used with a suitable 
-         70cm HT.  TeleDongle and an SMA to BNC adapter fit perfectly
-         between the driven element and reflector of Arrow antennas.
-        </para>
-      </section>
-      <section>
-        <title>Data Analysis</title>
-        <para>
-          Our software makes it easy to log the data from each flight, both the
-          telemetry received during the flight itself, and the more
-          complete data log recorded in the flash memory on the altimeter
-          board.  Once this data is on your computer, our post-flight tools make it
-          easy to quickly get to the numbers everyone wants, like apogee altitude,
-          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 TeleMetrum data file
-          usable 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>
-          We have designed and prototyped several “companion boards” that 
-         can attach to the companion connector on TeleMetrum,
-         TeleMega and EasyMega
-         flight computers to collect more data, provide more pyro channels, 
-         and so forth.  We do not yet know if or when any of these boards
-         will be produced in enough quantity to sell.  If you have specific
-         interests for data collection or control of events in your rockets
-         beyond the capabilities of our existing productions, please let 
-         us know!
-        </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>
-        <para>
-         Watch our 
-         <ulink url="http://altusmetrum.org/">web site</ulink> for more news 
-         and information as our family of products evolves!
-        </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Altimeter Installation Recommendations</title>
-    <para>
-      Building high-power rockets that fly safely is hard enough. Mix
-      in some sophisticated electronics and a bunch of radio energy
-      and some creativity and/or compromise may be required. This chapter
-      contains some suggestions about how to install Altus Metrum
-      products into a rocket air-frame, including how to safely and
-      reliably mix a variety of electronics into the same air-frame.
-    </para>
-    <section>
-      <title>Mounting the Altimeter</title>
-      <para>
-       The first consideration is to ensure that the altimeter is
-       securely fastened to the air-frame. For most of our products, we 
-       prefer nylon standoffs and nylon screws; they're good to at least 50G
-       and cannot cause any electrical issues on the board.  Metal screws
-       and standoffs are fine, too, just be careful to avoid electrical
-       shorts!  For TeleMini v1.0, we usually cut small pieces of 1/16 inch 
-       balsa to fit
-       under the screw holes, and then take 2x56 nylon screws and
-       screw them through the TeleMini mounting holes, through the
-       balsa and into the underlying material.
-      </para>
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-       <listitem>
-         <para>
-           Make sure accelerometer-equipped products like TeleMetrum,
-           TeleMega and EasyMega are aligned precisely along the axis of
-           acceleration so that the accelerometer can accurately
-           capture data during the flight.
-         </para>
-       </listitem>
-       <listitem>
-         <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>
-    <section>
-      <title>Dealing with the Antenna</title>
-      <para>
-       The antenna supplied is just a piece of solid, insulated,
-       wire. If it gets damaged or broken, it can be easily
-       replaced. It should be kept straight and not cut; bending or
-       cutting it will change the resonant frequency and/or
-       impedance, making it a less efficient radiator and thus
-       reducing the range of the telemetry signal.
-      </para>
-      <para>
-       Keeping metal away from the antenna will provide better range
-       and a more even radiation pattern. In most rockets, it's not
-       entirely possible to isolate the antenna from metal
-       components; there are often bolts, all-thread and wires from other
-       electronics to contend with. Just be aware that the more stuff
-       like this around the antenna, the lower the range.
-      </para>
-      <para>
-       Make sure the antenna is not inside a tube made or covered
-       with conducting material. Carbon fiber is the most common
-       culprit here -- CF is a good conductor and will effectively
-       shield the antenna, dramatically reducing signal strength and
-       range. Metallic flake paint is another effective shielding
-       material which should be avoided around any antennas.
-      </para>
-      <para>
-       If the ebay is large enough, it can be convenient to simply
-       mount the altimeter at one end and stretch the antenna out
-       inside. Taping the antenna to the sled can keep it straight
-       under acceleration. If there are metal rods, keep the
-       antenna as far away as possible.
-      </para>
-      <para>
-       For a shorter ebay, it's quite practical to have the antenna
-       run through a bulkhead and into an adjacent bay. Drill a small
-       hole in the bulkhead, pass the antenna wire through it and
-       then seal it up with glue or clay. We've also used acrylic
-       tubing to create a cavity for the antenna wire. This works a
-       bit better in that the antenna is known to stay straight and
-       not get folded by recovery components in the bay. Angle the
-       tubing towards the side wall of the rocket and it ends up
-       consuming very little space.
-      </para>
-      <para>
-       If you need to place the UHF antenna at a distance from the
-       altimeter, you can replace the antenna with an edge-mounted
-       SMA connector, and then run 50Ω coax from the board to the
-       antenna. Building a remote antenna is beyond the scope of this
-       manual.
-      </para>
-    </section>
-    <section>
-      <title>Preserving GPS Reception</title>
-      <para>
-       The GPS antenna and receiver used in TeleMetrum and TeleMega is 
-       highly sensitive and normally have no trouble tracking enough
-       satellites to provide accurate position information for
-       recovering the rocket. However, there are many ways the GPS signal
-       can end up attenuated, negatively affecting GPS performance. 
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-       <listitem>
-         <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>
-         <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>
-    </section>
-    <section>
-      <title>Radio Frequency Interference</title>
-      <para>
-       Any altimeter will generate RFI; the digital circuits use
-       high-frequency clocks that spray radio interference across a
-       wide band. Altus Metrum altimeters generate intentional radio
-       signals as well, increasing the amount of RF energy around the board.
-      </para>
-      <para>
-       Rocketry altimeters also use precise sensors measuring air
-       pressure and acceleration. Tiny changes in voltage can cause
-       these sensor readings to vary by a huge amount. When the
-       sensors start mis-reporting data, the altimeter can either
-       fire the igniters at the wrong time, or not fire them at all.
-      </para>
-      <para>
-       Voltages are induced when radio frequency energy is
-       transmitted from one circuit to another. Here are things that
-       influence the induced voltage and current:
-      </para>
-      <itemizedlist>
-       <listitem>
-         <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
-         a wire pair running together, twist the pair together to
-         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. Altus Metrum products transmit on the
-         70cm amateur band, so you should avoid lengths that are a
-         simple ratio of that length; essentially any multiple of ¼
-         of the wavelength (17.5cm).
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>The Barometric Sensor</title>
-      <para>
-       Altusmetrum altimeters measure altitude with a barometric
-       sensor, essentially measuring the amount of air above the
-       rocket to figure out how high it is. A large number of
-       measurements are taken as the altimeter initializes itself to
-       figure out the pad altitude. Subsequent measurements are then
-       used to compute the height above the pad.
-      </para>
-      <para>
-       To accurately measure atmospheric pressure, the ebay
-       containing the altimeter must be vented outside the
-       air-frame. The vent must be placed in a region of linear
-       airflow, have smooth edges, and away from areas of increasing or 
-       decreasing pressure.
-      </para>
-      <para>
-       All barometric sensors are quite sensitive to chemical damage from 
-       the products of APCP or BP combustion, so make sure the ebay is 
-       carefully sealed from any compartment which contains ejection 
-       charges or motors.
-      </para>
-    </section>
-    <section>
-      <title>Ground Testing</title>
-      <para>
-       The most important aspect of any installation is careful
-       ground testing. Bringing an air-frame up to the LCO table which
-       hasn't been ground tested can lead to delays or ejection
-       charges firing on the pad, or, even worse, a recovery system
-       failure.
-      </para>
-      <para>
-       Do a 'full systems' test that includes wiring up all igniters
-       without any BP and turning on all of the electronics in flight
-       mode. This will catch any mistakes in wiring and any residual
-       RFI issues that might accidentally fire igniters at the wrong
-       time. Let the air-frame sit for several minutes, checking for
-       adequate telemetry signal strength and GPS lock.  If any igniters
-       fire unexpectedly, find and resolve the issue before loading any
-       BP charges!
-      </para>
-      <para>
-       Ground test the ejection charges. Prepare the rocket for
-       flight, loading ejection charges and igniters. Completely
-       assemble the air-frame and then use the 'Fire Igniters'
-       interface through a TeleDongle to command each charge to
-       fire. Make sure the charge is sufficient to robustly separate
-       the air-frame and deploy the recovery system.
-      </para>
-    </section>
-  </chapter>
-  <chapter>
-    <title>Updating Device Firmware</title>
-    <para>
-      TeleMega, TeleMetrum v2, EasyMega, EasyMini and TeleDongle v3
-      are all programmed directly over their USB connectors (self
-      programming). TeleMetrum v1, TeleMini and TeleDongle v0.2 are
-      all programmed by using another device as a programmer (pair
-      programming). It's important to recognize which kind of devices
-      you have before trying to reprogram them.
-    </para>
-    <para>
-      You may wish to begin by ensuring you have current firmware images.
-      These are distributed as part of the AltOS software bundle that
-      also includes the AltosUI ground station program.  Newer ground
-      station versions typically work fine with older firmware versions,
-      so you don't need to update your devices just to try out new
-      software features.  You can always download the most recent
-      version from <ulink url="http://www.altusmetrum.org/AltOS/"/>.
-    </para>
-    <para>
-      If you need to update the firmware on a TeleDongle v0.2, we recommend 
-      updating the altimeter first, before updating TeleDongle.  However,
-      note that TeleDongle rarely need to be updated.  Any firmware version
-      1.0.1 or later will work, version 1.2.1 may have improved receiver
-      performance slightly.
-    </para>
-    <para>
-      Self-programmable devices (TeleMega, TeleMetrum v2, EasyMega and EasyMini)
-      are reprogrammed by connecting them to your computer over USB
-    </para>
-    <section>
-      <title>
-       Updating TeleMega, TeleMetrum v2, EasyMega, EasyMini or
-       TeleDongle v3 Firmware
-      </title>
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-       <listitem>
-         <para>
-           Attach a battery if necessary and power switch to the target
-           device. Power up the device.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Using a Micro USB cable, connect the target device to your
-           computer's USB socket.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Run AltosUI, and select 'Flash Image' from the File menu.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Select the target device in the Device Selection dialog.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Select the image you want to flash to the device, which
-           should have a name in the form
-           &lt;product&gt;-v&lt;product-version&gt;-&lt;software-version&gt;.ihx, such
-           as TeleMega-v1.0-1.3.0.ihx.
-         </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 device with new firmware, showing a progress bar.
-         </para>
-        </listitem>
-       <listitem>
-         <para>
-           Verify that the device is working by using the 'Configure
-           Altimeter' or 'Configure Groundstation' item to check over
-           the configuration.
-         </para>
-       </listitem>
-      </orderedlist>
-      <section>
-       <title>Recovering From Self-Flashing Failure</title>
-       <para>
-         If the firmware loading fails, it can leave the device
-         unable to boot. Not to worry, you can force the device to
-         start the boot loader instead, which will let you try to
-         flash the device again.
-       </para>
-       <para>
-         On each device, connecting two pins from one of the exposed
-         connectors will force the boot loader to start, even if the
-         regular operating system has been corrupted in some way.
-       </para>
-       <variablelist>
-         <varlistentry>
-           <term>TeleMega</term>
-           <listitem>
-             <para>
-               Connect pin 6 and pin 1 of the companion connector. Pin 1
-               can be identified by the square pad around it, and then
-               the pins could sequentially across the board. Be very
-               careful to <emphasis>not</emphasis> short pin 8 to
-               anything as that is connected directly to the battery. Pin
-               7 carries 3.3V and the board will crash if that is
-               connected to pin 1, but shouldn't damage the board.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>EasyMega</term>
-           <listitem>
-             <para>
-               Connect pin 6 and pin 1 of the companion connector. Pin 1
-               can be identified by the square pad around it, and then
-               the pins could sequentially across the board. Be very
-               careful to <emphasis>not</emphasis> short pin 8 to
-               anything as that is connected directly to the battery. Pin
-               7 carries 3.3V and the board will crash if that is
-               connected to pin 1, but shouldn't damage the board.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>TeleMetrum v2</term>
-           <listitem>
-             <para>
-               Connect pin 6 and pin 1 of the companion connector. Pin 1
-               can be identified by the square pad around it, and then
-               the pins could sequentially across the board. Be very
-               careful to <emphasis>not</emphasis> short pin 8 to
-               anything as that is connected directly to the battery. Pin
-               7 carries 3.3V and the board will crash if that is
-               connected to pin 1, but shouldn't damage the board.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>EasyMini</term>
-           <listitem>
-             <para>
-               Connect pin 6 and pin 1 of the debug connector, which is
-               the six holes next to the beeper. Pin 1 can be identified
-               by the square pad around it, and then the pins could
-               sequentially across the board, making Pin 6 the one on the
-               other end of the row.
-             </para>
-           </listitem>
-         </varlistentry>
-         <varlistentry>
-           <term>TeleDongle v3</term>
-           <listitem>
-             <para>
-               Connect pin 32 on the CPU to ground. Pin 32 is closest
-               to the USB wires on the row of pins towards the center
-               of the board. Ground is available on the capacitor
-               next to it, on the end towards the USB wires.
-             </para>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-       <para>
-         Once you've located the right pins:
-       </para>
-       <orderedlist inheritnum='inherit' numeration='arabic'>
-         <listitem>
-           <para>
-             Turn the altimeter power off.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Connect a battery.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Connect the indicated terminals together with a short
-             piece of wire. Take care not to accidentally connect
-             anything else.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Connect USB
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Turn the board power on.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             The board should now be visible over USB as 'AltosFlash'
-             and be ready to receive firmware.
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             Once the board has been powered up, you can remove the
-             piece of wire.
-           </para>
-         </listitem>
-       </orderedlist>
-      </section>
-    </section>
-    <section>
-      <title>Pair Programming</title>
-      <para>
-       The big concept to understand is that you have to use a
-       TeleMetrum v1.0, TeleBT v1.0 or TeleDongle v0.2 as a
-       programmer to update a pair programmed device. Due to limited
-       memory resources in the cc1111, we don't support programming
-       directly over USB for these devices.
-      </para>
-    </section>
-    <section>
-      <title>Updating TeleMetrum v1.x 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 v0.2 or TeleBT v1.0
-          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 v0.2 or TeleBT v1.0, 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 v0.2 or TeleBT v1.0 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 v0.2 or TeleBT v1.0 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>
-    <section>
-      <title>Updating TeleMini Firmware</title>
-      <orderedlist inheritnum='inherit' numeration='arabic'>
-        <listitem>
-<para>
-         You'll need a special 'programming cable' to reprogram the
-         TeleMini.  You can make your own using an 8-pin MicroMaTch 
-         connector on one end and a set of four pins on the other.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Take the 2 screws out of the TeleDongle v0.2 or TeleBT v1.0 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 v0.2 or TeleBT v1.0, and the 4-pins into the holes
-          in the TeleMini circuit board.  Note that the MicroMaTch
-          connector has an alignment pin that goes through a hole in
-          the PC board when you have the cable oriented correctly, and
-          that pin 1 on the TeleMini board is marked with a square pad
-          while the other pins have round pads.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Attach a battery to the TeleMini board.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Plug the TeleDongle v0.2 or TeleBT v1.0 into your computer's USB port, and power
-          up the TeleMini
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Run AltosUI, and select 'Flash Image' from the File menu.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Pick the TeleDongle v0.2 or TeleBT v1.0 device from the list, identifying it as the
-          programming device.
-        </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.
-        </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 TeleMini with new firmware, showing a progress bar.
-        </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.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          If something goes wrong, give it another try.
-        </para>
-</listitem>
-      </orderedlist>
-    </section>
-    <section>
-      <title>Updating TeleDongle v0.2 Firmware</title>
-      <para>
-        Updating TeleDongle v0.2 firmware is just like updating
-       TeleMetrum v1.x or TeleMini
-       firmware, but you use either a TeleMetrum v1.x, TeleDongle
-       v0.2 or TeleBT v1.0 as the programmer.
-       </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.
-        </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
-         v1.x, TeleDongle v0.2 or TeleBT v1.0.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Take the 2 screws out of the TeleDongle v0.2 or TeleBT v1.0 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 programmer, and the 4-pin end to the
-          matching connector on the TeleDongle v0.2.
-         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 v1.x board if you're using one.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Plug both the programmer and the TeleDongle into your computer's USB
-         ports, and power up the programmer.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Run AltosUI, and select 'Flash Image' from the File menu.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Pick the programmer device from the list, identifying it as the
-          programming device.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Select the image you want put on the TeleDongle v0.2, 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.
-        </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 v0.2
-         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.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Hit the 'OK' button and the software should proceed to flash
-          the TeleDongle v0.2 with new firmware, showing a progress bar.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          Confirm that the TeleDongle v0.2 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 v0.2.
-        </para>
-</listitem>
-        <listitem>
-<para>
-          If something goes wrong, give it another try.
-        </para>
-</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>Hardware Specifications</title>
-    <section>
-      <title>
-       TeleMega Specifications
-      </title>
-      <itemizedlist>
-       <listitem>
-         <para>
-           Recording altimeter for model rocketry.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Supports dual deployment and four auxiliary pyro channels
-           (a total of 6 events).
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           70cm 40mW ham-band transceiver for telemetry down-link.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Barometric pressure sensor good to 100k feet MSL.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1-axis high-g accelerometer for motor characterization, capable of
-           +/- 102g.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           9-axis IMU including integrated 3-axis accelerometer,
-           3-axis gyroscope and 3-axis magnetometer.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board, integrated uBlox Max 7 GPS receiver with 5Hz update rate capability.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board 8 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 Li-Po rechargeable batteries.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Can use either main system Li-Po or optional separate pyro battery
-           to fire e-matches.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           3.25 x 1.25 inch board designed to fit inside 38mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>
-       EasyMega Specifications
-      </title>
-      <itemizedlist>
-       <listitem>
-         <para>
-           Recording altimeter for model rocketry.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Supports dual deployment and four auxiliary pyro channels
-           (a total of 6 events).
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Barometric pressure sensor good to 100k feet MSL.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1-axis high-g accelerometer for motor characterization, capable of
-           +/- 102g.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           9-axis IMU including integrated 3-axis accelerometer,
-           3-axis gyroscope and 3-axis magnetometer.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board 8 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 Li-Po rechargeable batteries.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Can use either main system Li-Po or optional separate pyro battery
-           to fire e-matches.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1.25 x 1.25 inch board designed to fit inside 38mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>
-       TeleMetrum v2 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, 40mW ham-band transceiver for telemetry down-link.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Barometric pressure sensor good to 100k feet MSL.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1-axis high-g accelerometer for motor characterization, capable of
-           +/- 102g.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board, integrated uBlox Max 7 GPS receiver with 5Hz update rate capability.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board 8 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 Li-Po rechargeable batteries.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Uses Li-Po to fire e-matches, can be modified to support 
-           optional separate pyro battery if needed.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           2.75 x 1 inch board designed to fit inside 29mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>TeleMetrum v1 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, 10mW ham-band transceiver for telemetry down-link.
-         </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 Li-Po rechargeable batteries.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Uses Li-Po to fire e-matches, can be modified to support 
-           optional separate pyro battery if needed.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           2.75 x 1 inch board designed to fit inside 29mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>
-       TeleMini v2.0 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, 10mW ham-band transceiver for telemetry down-link.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Barometric pressure sensor good to 100k feet MSL.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board 1 megabyte non-volatile memory for flight data storage.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           USB interface for configuration, and data recovery.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Support for Li-Po rechargeable batteries (using an
-           external charger), or any 3.7-15V external battery.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Uses Li-Po to fire e-matches, can be modified to support 
-           optional separate pyro battery if needed.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1.5 x .8 inch board designed to fit inside 24mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>
-       TeleMini v1.0 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, 10mW ham-band transceiver for telemetry down-link.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Barometric pressure sensor good to 45k feet MSL.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board 5 kilobyte non-volatile memory for flight data storage.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           RF interface for configuration, and data recovery.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Support for Li-Po rechargeable batteries, using an external charger.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Uses Li-Po to fire e-matches, can be modified to support 
-           optional separate pyro battery if needed.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1.5 x .5 inch board designed to fit inside 18mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>
-       EasyMini 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>
-           Barometric pressure sensor good to 100k feet MSL.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           On-board 1 megabyte non-volatile memory for flight data storage.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           USB interface for configuration, and data recovery.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Support for Li-Po rechargeable batteries (using an
-           external charger), or any 3.7-15V external battery.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           Uses Li-Po to fire e-matches, can be modified to support 
-           optional separate pyro battery if needed.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           1.5 x .8 inch board designed to fit inside 24mm air-frame coupler tube.
-         </para>
-       </listitem>
-      </itemizedlist>
-    </section>
-  </chapter>
-  <chapter>
-    <title>FAQ</title>
-      <para>
-        <emphasis>TeleMetrum seems to shut off when disconnected from the
-        computer.</emphasis>  <?linebreak?>
-       Make sure the battery is adequately charged.  Remember the
-        unit will pull more power than the USB port can deliver before the
-        GPS enters “locked” mode.  The battery charges best when TeleMetrum
-        is turned off.
-      </para>
-      <para>
-        <emphasis>It's impossible to stop the TeleDongle when it's in “p” mode, I have
-        to unplug the USB cable? </emphasis><?linebreak?>
-       Make sure you have tried to “escape out” of
-        this mode.  If this doesn't work the reboot procedure for the
-        TeleDongle *is* to simply unplug it. 'cu' however will retain it's
-        outgoing buffer IF your “escape out” ('~~') does not work.
-        At this point using either 'ao-view' (or possibly
-        'cutemon') instead of 'cu' will 'clear' the issue and allow renewed
-        communication.
-      </para>
-      <para>
-        <emphasis>The amber LED (on the TeleMetrum) lights up when both
-        battery and USB are connected. Does this mean it's charging? 
-       </emphasis><?linebreak?>
-        Yes, the yellow LED indicates the charging at the 'regular' rate.
-        If the led is out but the unit is still plugged into a USB port,
-        then the battery is being charged at a 'trickle' rate.
-      </para>
-      <para>
-        <emphasis>There are no “dit-dah-dah-dit” sound or lights like the manual 
-       mentions?</emphasis><?linebreak?>
-        That's the “pad” mode.  Weak batteries might be the problem.
-        It is also possible that the flight computer is horizontal and the 
-       output
-        is instead a “dit-dit” meaning 'idle'. For TeleMini, it's possible that
-       it received a command packet which would have left it in “pad” mode.
-      </para>
-      <para>
-        <emphasis>How do I save flight data?</emphasis><?linebreak?>
-        Live telemetry is written to file(s) whenever AltosUI is connected
-        to the TeleDongle.  The file area defaults to ~/TeleMetrum
-        but is easily changed using the menus in AltosUI. The files that
-        are written end in '.telem'. The after-flight
-        data-dumped files will end in .eeprom and represent continuous data
-        unlike the .telem files that are subject to losses
-        along the RF data path.
-        See the above instructions on what and how to save the eeprom stored
-        data after physically retrieving your altimeter.  Make sure to save
-        the on-board data after each flight; while the TeleMetrum can store
-       multiple flights, you never know when you'll lose the altimeter...
-      </para>
-  </chapter>
-  <appendix>
-    <title>Notes for Older Software</title>
-    <para>
-      <emphasis>
-      Before AltosUI was written, using Altus Metrum devices required
-      some finesse with the Linux command line. There was a limited
-      GUI tool, ao-view, which provided functionality similar to the
-      Monitor Flight window in AltosUI, but everything else was a
-      fairly 80's experience. This appendix includes documentation for
-      using that software.
-      </emphasis>
-    </para>
-    <para>
-      Both TeleMetrum and TeleDongle can be directly communicated
-      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.
-      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.
-    </para>
-    <para>
-      TeleMini can be communicated with through a TeleDongle device
-      over the radio link. When first booted, TeleMini listens for a
-      TeleDongle device and if it receives a packet, it goes into
-      'idle' mode. Otherwise, it goes into 'pad' mode and waits to be
-      launched. The easiest way to get it talking is to start the
-      communication link on the TeleDongle and the power up the
-      TeleMini board.
-    </para>
-    <para>
-      To access the device's firmware for configuration you need a terminal
-      program such as you would use to talk to a modem.  The software
-      authors prefer using the program 'cu' which comes from the UUCP package
-      on most Unix-like systems such as Linux.  An example command line for
-      cu might be 'cu -l /dev/ttyACM0', substituting the correct number
-      indicated from running the
-      ao-list program.  Another reasonable terminal program for Linux is
-      'cutecom'.  The default 'escape'
-      character used by CU (i.e. the character you use to
-      issue commands to cu itself instead of sending the command as input
-      to the connected device) is a '~'. You will need this for use in
-      only two different ways during normal operations. First is to exit
-      the program by sending a '~.' which is called a 'escape-disconnect'
-      and allows you to close-out from 'cu'. The
-      second use will be outlined later.
-    </para>
-    <para>
-      All of the Altus Metrum devices share the concept of a two level
-      command set in their firmware.
-      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
-      using the 'c' command, for
-      instance typing 'c?' will give you this second level of commands
-      (all of which require the
-      letter 'c' to access).  Please note that most configuration options
-      are stored only in Flash memory; TeleDongle doesn't provide any storage
-      for these options and so they'll all be lost when you unplug it.
-    </para>
-    <para>
-      Try setting these configuration ('c' or second level menu) values.  A good
-      place to start is by setting your call sign.  By default, the boards
-      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
-      (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.
-    </para>
-        <para>
-          To set the radio frequency, use the 'c R' command to specify the
-         radio transceiver configuration parameter. This parameter is computed
-         using the desired frequency, 'F', the radio calibration parameter, 'C' (showed by the 'c s' command) and
-         the standard calibration reference frequency, 'S', (normally 434.550MHz):
-         <programlisting>
-           R = F / S * C
-         </programlisting>
-         Round the result to the nearest integer value.
-          As with all 'c' sub-commands, follow this with a 'c w' to write the
-          change to the parameter block in the on-board flash on
-          your altimeter board if you want the change to stay in place across reboots.
-        </para>
-        <para>
-          To set the apogee delay, use the 'c d' command.
-          As with all 'c' sub-commands, follow this with a 'c w' to write the
-          change to the parameter block in the on-board DataFlash chip.
-        </para>
-        <para>
-          To set the main deployment altitude, use the 'c m' command.
-          As with all 'c' sub-commands, follow this with a 'c w' to write the
-          change to the parameter block in the on-board DataFlash chip.
-        </para>
-        <para>
-          To calibrate the radio frequency, connect the UHF antenna port to a
-          frequency counter, set the board to 434.550MHz, and use the 'C'
-          command to generate a CW carrier.  Wait for the transmitter temperature
-          to stabilize and the frequency to settle down.
-          Then, divide 434.550 MHz by the
-          measured frequency and multiply by the current radio cal value show
-          in the 'c s' command.  For an unprogrammed board, the default value
-          is 1186611 for cc1111 based products and 7119667 for cc1120
-         based products.  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 configuration memory.
-        </para>
-    <para>
-      Note that the 'reboot' command, which is very useful on the altimeters,
-      will likely just cause problems with the dongle.  The *correct* way
-      to reset the dongle is just to unplug and re-plug it.
-    </para>
-    <para>
-      A fun thing to do at the launch site and something you can do while
-      learning how to use these units is to play with the radio link access
-      between an altimeter and the TeleDongle.  Be aware that you *must* create
-      some physical separation between the devices, otherwise the link will
-      not function due to signal overload in the receivers in each device.
-    </para>
-    <para>
-      Now might be a good time to take a break and read the rest of this
-      manual, particularly about the two “modes” that the altimeters
-      can be placed in. TeleMetrum uses the position of the device when booting
-      up will determine whether the unit is in “pad” or “idle” mode. TeleMini
-      enters “idle” mode when it receives a command packet within the first 5 seconds
-      of being powered up, otherwise it enters “pad” mode.
-    </para>
-    <para>
-      You can access an altimeter in idle mode from the TeleDongle's USB
-      connection using the radio link
-      by issuing a 'p' command to the TeleDongle. Practice connecting and
-      disconnecting ('~~' while using 'cu') from the altimeter.  If
-      you cannot escape out of the “p” command, (by using a '~~' when in
-      CU) then it is likely that your kernel has issues.  Try a newer version.
-    </para>
-    <para>
-      Using this radio link allows you to configure the altimeter, test
-      fire e-matches and igniters from the flight line, check pyro-match
-      continuity and so forth. You can leave the unit turned on while it
-      is in 'idle mode' and then place the
-      rocket vertically on the launch pad, walk away and then issue a
-      reboot command.  The altimeter will reboot and start sending data
-      having changed to the “pad” mode. If the TeleDongle is not receiving
-      this data, you can disconnect 'cu' from the TeleDongle using the
-      procedures mentioned above and THEN connect to the TeleDongle from
-      inside 'ao-view'. If this doesn't work, disconnect from the
-      TeleDongle, unplug it, and try again after plugging it back in.
-    </para>
-    <para>
-      In order to reduce the chance of accidental firing of pyrotechnic
-      charges, the command to fire a charge is intentionally somewhat
-      difficult to type, and the built-in help is slightly cryptic to
-      prevent accidental echoing of characters from the help text back at
-      the board from firing a charge.  The command to fire the apogee
-      drogue charge is 'i DoIt drogue' and the command to fire the main
-      charge is 'i DoIt main'.
-    </para>
-    <para>
-      On TeleMetrum, the GPS will eventually find enough satellites, lock in on them,
-      and 'ao-view' will both auditorily announce and visually indicate
-      that GPS is ready.
-      Now you can launch knowing that you have a good data path and
-      good satellite lock for flight data and recovery.  Remember
-      you MUST tell ao-view to connect to the TeleDongle explicitly in
-      order for ao-view to be able to receive data.
-    </para>
-    <para>
-      The altimeters provide RDF (radio direction finding) tones on
-      the pad, during descent and after landing. These can be used to
-      locate the rocket using a directional antenna; the signal
-      strength providing an indication of the direction from receiver to rocket.
-    </para>
-    <para>
-      TeleMetrum also provides GPS tracking data, which can further simplify
-      locating the rocket once it has landed. (The last good GPS data
-      received before touch-down will be on the data screen of 'ao-view'.)
-    </para>
-    <para>
-      Once you have recovered the rocket you can download the eeprom
-      contents using either 'ao-dumplog' (or possibly 'ao-eeprom'), over
-      either a USB cable or over the radio link using TeleDongle.
-      And by following the man page for 'ao-postflight' you can create
-      various data output reports, graphs, and even KML data to see the
-      flight trajectory in Google-earth. (Moving the viewing angle making
-      sure to connect the yellow lines while in Google-earth is the proper
-      technique.)
-    </para>
-    <para>
-      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
-      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!
-    </para>
-  </appendix>
-  <appendix>
-    <title>Drill Templates</title>
-    <para>
-      These images, when printed, provide precise templates for the
-      mounting holes in Altus Metrum flight computers
-    </para>
-    <section>
-      <title>TeleMega template</title>
-      <para>
-       TeleMega has overall dimensions of 1.250 x 3.250 inches, and
-       the mounting holes are sized for use with 4-40 or M3 screws.
-      </para>
-      <informalfigure>
-       <mediaobject id="TeleMegaTemplate">
-         <imageobject>
-           <imagedata format="SVG" fileref="telemega.svg"
-                      scalefit="0" scale="100" align="center" />
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-    </section>
-    <section>
-      <title>EasyMega template</title>
-      <para>
-       EasyMega has overall dimensions of 1.250 x 2.250 inches, and
-       the mounting holes are sized for use with 4-40 or M3 screws.
-      </para>
-      <informalfigure>
-       <mediaobject id="EasyMegaTemplate">
-         <imageobject>
-           <imagedata format="SVG" fileref="easymega.svg"
-                      scalefit="0" scale="100" align="center" />
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-    </section>
-    <section>
-      <title>TeleMetrum template</title>
-      <para>
-       TeleMetrum has overall dimensions of 1.000 x 2.750 inches, and the
-       mounting holes are sized for use with 4-40 or M3 screws.
-      </para>
-      <informalfigure>
-       <mediaobject id="TeleMetrumTemplate">
-         <imageobject>
-           <imagedata format="SVG" fileref="telemetrum.svg"
-                      scalefit="0" scale="100" align="center" />
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-    </section>
-    <section>
-      <title>TeleMini v2/EasyMini template</title>
-      <para>
-       TeleMini v2 and EasyMini have overall dimensions of 0.800 x 1.500 inches, and the
-       mounting holes are sized for use with 4-40 or M3 screws.
-      </para>
-      <informalfigure>
-       <mediaobject id="MiniTemplate">
-         <imageobject>
-           <imagedata format="SVG" fileref="easymini.svg"
-                      scalefit="0" scale="100" align="center" />
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-    </section>
-    <section>
-      <title>TeleMini v1 template</title>
-      <para>
-       TeleMini has overall dimensions of 0.500 x 1.500 inches, and the
-       mounting holes are sized for use with 2-56 or M2 screws.
-      </para>
-      <informalfigure>
-       <mediaobject id="TeleMiniTemplate">
-         <imageobject>
-           <imagedata format="SVG" fileref="telemini.svg"
-                      scalefit="0" scale="100" align="center" />
-         </imageobject>
-       </mediaobject>
-      </informalfigure>
-    </section>
-  </appendix>
-  <appendix>
-      <title>Calibration</title>
-      <para>
-        There are only two calibrations required for TeleMetrum and
-        TeleMega, and only one for EasyMega, TeleDongle, TeleMini and EasyMini.
-        All boards are shipped from the factory pre-calibrated, but
-        the procedures are documented here in case they are ever
-        needed.  Re-calibration is not supported by AltosUI, you must
-        connect to the board with a serial terminal program and
-        interact directly with the on-board command interpreter to
-        effect calibration.
-      </para>
-      <section>
-        <title>Radio Frequency</title>
-        <para>
-          The radio frequency is synthesized from a clock based on the
-          crystal on the board.  The actual frequency of this oscillator 
-          must be measured to generate a calibration constant.  While our 
-          GFSK modulation
-          bandwidth is wide enough to allow boards to communicate even when
-          their oscillators are not on exactly the same frequency, performance
-          is best when they are closely matched.
-          Radio frequency calibration requires a calibrated frequency counter.
-          Fortunately, once set, the variation in frequency due to aging and
-          temperature changes is small enough that re-calibration by customers
-          should generally not be required.
-        </para>
-        <para>
-          To calibrate the radio frequency, connect the UHF antenna
-          port to a frequency counter, set the board to 434.550MHz,
-          and use the 'C' command in the on-board command interpreter
-          to generate a CW carrier.  For USB-enabled boards, this is
-          best done over USB.  For TeleMini v1, note that the only way
-          to escape the 'C' command is via power cycle since the board
-          will no longer be listening for commands once it starts
-          generating a CW carrier.
-       </para>
-       <para>
-         Wait for the transmitter temperature to stabilize and the frequency 
-          to settle down.  Then, divide 434.550 MHz by the
-          measured frequency and multiply by the current radio cal value show
-          in the 'c s' command.  For an unprogrammed board, the default value
-          is 1186611.  Take the resulting integer and program it using the 'c f'
-          command.  Testing with the 'C' command again should show a carrier
-          within a few tens of Hertz of the intended frequency.
-          As with all 'c' sub-commands, follow this with a 'c w' to write the
-          change to the parameter block in the on-board storage chip.
-        </para>
-       <para>
-         Note that any time you re-do the radio frequency calibration, the
-         radio frequency is reset to the default 434.550 Mhz.  If you want
-         to use another frequency, you will have to set that again after
-         calibration is completed.
-       </para>
-      </section>
-      <section>
-        <title>TeleMetrum, TeleMega and EasyMega Accelerometers</title>
-        <para>
-          While barometric sensors are factory-calibrated,
-          accelerometers are not, and so each must be calibrated once
-          installed in a flight computer.  Explicitly calibrating the
-          accelerometers also allows us to load any compatible device.
-          We perform a two-point calibration using gravity.
-        </para>
-        <para>
-          To calibrate the acceleration sensor, use the 'c a 0' command.  You
-          will be prompted to orient the board vertically with the UHF antenna
-          up and press a key, then to orient the board vertically with the
-          UHF antenna down and press a key.  Note that the accuracy of this
-         calibration depends primarily on how perfectly vertical and still
-         the board is held during the cal process.  As with all 'c' 
-         sub-commands, follow this with a 'c w' to write the
-          change to the parameter block in the on-board DataFlash chip.
-        </para>
-        <para>
-          The +1g and -1g calibration points are included in each telemetry
-          frame and are part of the header stored in onboard flash to be
-         downloaded after flight.  We always store and return raw ADC 
-         samples for each sensor... so nothing is permanently “lost” or 
-         “damaged” if the calibration is poor.
-        </para>
-        <para>
-         In the unlikely event an accel cal goes badly, it is possible
-         that TeleMetrum, TeleMega or EasyMega may always come up in 'pad mode'
-         and as such not be listening to either the USB or radio link.
-         If that happens, there is a special hook in the firmware to
-         force the board back in to 'idle mode' so you can re-do the
-         cal.  To use this hook, you just need to ground the SPI clock
-         pin at power-on.  This pin is available as pin 2 on the 8-pin
-         companion connector, and pin 1 is ground.  So either
-         carefully install a fine-gauge wire jumper between the two
-         pins closest to the index hole end of the 8-pin connector, or
-         plug in the programming cable to the 8-pin connector and use
-         a small screwdriver or similar to short the two pins closest
-         to the index post on the 4-pin end of the programming cable,
-         and power up the board.  It should come up in 'idle mode'
-         (two beeps), allowing a re-cal.
-        </para>
-      </section>
-  </appendix>
-  <appendix>
-    <title>Igniter Current</title>
-      <para>
-       The question "how much igniter current can Altus Metrum products 
-       handle?" comes up fairly frequently.  The short answer is "more than
-       you're likely to need", the remainder of this appendix provides a
-       longer answer.
-      </para>
-      <section>
-        <title>Current Products</title>
-        <para>
-         The FET switches we're using on all of our current products that 
-         have pyro channels are the Vishay Siliconix Si7232DN.  These parts 
-         have exceptionally low Rds(on) values, better than 0.02 ohms!  That 
-         means they aren't making a lot of heat... and the limit on current 
-         is "package limited", meaning it's all about how much you can heat 
-         the die before something breaks.
-       </para>
-       <para>
-         Cutting to the chase, the Si7232DN specs are 25 amps <emphasis>continuous</emphasis> at
-         20V at a temperature of 25C.  In pulsed mode, they're rated for 40A.
-         However, those specs are a little mis-leading because it really is 
-         all about the heat generated... you can get something like 85A 
-         through one briefly.  Note that a typical commercial e-match only 
-         needed about 13 microseconds to fire in tests on my bench a couple 
-         years ago!
-       </para>
-       <para>
-         So a great plan is to use something like an e-match as the initiator 
-         and build up pyrogen(s) as required to actually light what you're 
-         trying to light...  But if you want to use a high-current igniter, 
-         we can probably handle it!
-       </para>
-      </section>
-      <section>
-        <title>Version 1 Products</title>
-        <para>
-         The FET switches used on TeleMetrum v1 and TeleMini v1 products
-         were Fairchild FDS9926A.  The Rds(on) values under our operating
-         conditions are on the order of 0.04 ohms.  These parts were rated
-         for a continuous current-carrying capacity of 6.5A, and a pulsed 
-         current capacity of 20A.
-       </para>
-       <para>
-         As with the more modern parts, the real limit is based on the heat
-         generated in the part during the firing interval.  So, while the 
-         specs on these parts aren't as good as the ones we use on current
-         products, they were still great, and we never had a complaint about
-         current carrying capacity with any of our v1 boards.
-       </para>
-      </section>
-  </appendix>
-  <appendix>
-    <title>Release Notes</title>
-    <simplesect>
-      <title>Version 1.6.1</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.6.1.xsl"
-         xpointer="xpointer(/article/*)"/>
-    </simplesect>
-    <simplesect>
-      <title>Version 1.6</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.6.xsl"
-         xpointer="xpointer(/article/*)"/>
-    </simplesect>
-    <simplesect>
-      <title>Version 1.5</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.5.xsl"
-         xpointer="xpointer(/article/*)"/>
-    </simplesect>
-    <simplesect>
-      <title>Version 1.4.1</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.4.1.xsl"
-         xpointer="xpointer(/article/*)"/>
-    </simplesect>
-    <simplesect>
-      <title>Version 1.4</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.4.xsl"
-         xpointer="xpointer(/article/*)"/>
-    </simplesect>
-    <simplesect>
-      <title>Version 1.3.2</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.3.2.xsl"
-         xpointer="xpointer(/article/*)"/>
-    </simplesect>
-    <simplesect>
-      <title>Version 1.3.1</title>
-      <xi:include
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         href="release-notes-1.3.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
--->
diff --git a/doc/am-fo.xsl b/doc/am-fo.xsl
new file mode 100644 (file)
index 0000000..2c36bec
--- /dev/null
@@ -0,0 +1,191 @@
+<!--
+  Generates single FO document from DocBook XML source using DocBook XSL
+  stylesheets.
+
+  See xsl-stylesheets/fo/param.xsl for all parameters.
+
+  NOTE: The URL reference to the current DocBook XSL stylesheets is
+  rewritten to point to the copy on the local disk drive by the XML catalog
+  rewrite directives so it doesn't need to go out to the Internet for the
+  stylesheets. This means you don't need to edit the <xsl:import> elements on
+  a machine by machine basis.
+-->
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
+<xsl:import href="common.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="footer.templates.xsl"/>
+
+<xsl:param name="fop1.extensions" select="1" />
+<xsl:param name="variablelist.as.blocks" select="1" />
+
+<xsl:param name="paper.type" select="'USletter'"/>
+
+<xsl:param name="hyphenate">false</xsl:param>
+<!-- justify, left or right -->
+<xsl:param name="alignment">left</xsl:param>
+
+<xsl:param name="body.font.family" select="'Frutiger LT Std,sans-serif'"/>
+<xsl:param name="title.font.family" select="'Frutiger LT Std,sans-serif'"/>
+<xsl:param name="monospace.font.family" select="'DejaVu Sans Mono,monospace'"/>
+<xsl:param name="body.font.master">12</xsl:param>
+<xsl:param name="body.font.size">
+ <xsl:value-of select="$body.font.master"/><xsl:text>pt</xsl:text>
+</xsl:param>
+
+<xsl:param name="body.margin.bottom" select="'0.5in'"/>
+<xsl:param name="body.margin.top" select="'0.5in'"/>
+<xsl:param name="bridgehead.in.toc" select="0"/>
+<xsl:param name="footer.column.widths">10 1 1</xsl:param>
+
+<!-- overide setting in common.xsl -->
+<xsl:param name="table.frame.border.thickness" select="'2px'"/>
+
+<!-- Default fetches image from Internet (long timeouts) -->
+<xsl:param name="draft.watermark.image" select="''"/>
+
+<!-- Line break -->
+<xsl:template match="processing-instruction('asciidoc-br')">
+  <fo:block/>
+</xsl:template>
+
+<!-- Horizontal ruler -->
+<xsl:template match="processing-instruction('asciidoc-hr')">
+  <fo:block space-after="1em">
+    <fo:leader leader-pattern="rule" rule-thickness="0.5pt"  rule-style="solid" leader-length.minimum="100%"/>
+  </fo:block>
+</xsl:template>
+
+<!-- Hard page break -->
+<xsl:template match="processing-instruction('asciidoc-pagebreak')">
+   <fo:block break-after='page'/>
+</xsl:template>
+
+<!-- Sets title to body text indent -->
+<xsl:param name="body.start.indent">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">0pt</xsl:when>
+    <xsl:when test="$passivetex.extensions != 0">0pt</xsl:when>
+    <xsl:otherwise>1pc</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="title.margin.left">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">-1pc</xsl:when>
+    <xsl:when test="$passivetex.extensions != 0">0pt</xsl:when>
+    <xsl:otherwise>0pt</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.margin.bottom" select="'0.25in'"/>
+<xsl:param name="page.margin.inner">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">0.75in</xsl:when>
+    <xsl:otherwise>0.75in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.margin.outer">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">0.5in</xsl:when>
+    <xsl:otherwise>0.5in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="page.margin.top" select="'0.5in'"/>
+<xsl:param name="page.orientation" select="'portrait'"/>
+<xsl:param name="page.width">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+
+<xsl:attribute-set name="copyright.title.properties">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="revhistory.title.properties">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="revhistory.table.properties">
+  <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
+  <xsl:attribute name="background-color">#EEEEEE</xsl:attribute>
+  <xsl:attribute name="width">50%</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="revhistory.table.cell.properties">
+  <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="padding">4pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="monospace.properties">
+  <xsl:attribute name="font-size">9pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="component.title.properties">
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="color">#0080ff</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="section.title.properties">
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="color">#0080ff</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="admonition.title.properties">
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="color">#ff4040</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="formal.title.properties">
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="color">#0080ff</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="sidebar.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="border-style">solid</xsl:attribute>
+  <xsl:attribute name="border-width">1pt</xsl:attribute>
+  <xsl:attribute name="border-color">silver</xsl:attribute>
+  <xsl:attribute name="background-color">#ffffee</xsl:attribute>
+  <xsl:attribute name="padding-left">12pt</xsl:attribute>
+  <xsl:attribute name="padding-right">12pt</xsl:attribute>
+  <xsl:attribute name="padding-top">6pt</xsl:attribute>
+  <xsl:attribute name="padding-bottom">6pt</xsl:attribute>
+  <xsl:attribute name="margin-left">0pt</xsl:attribute>
+  <xsl:attribute name="margin-right">12pt</xsl:attribute>
+  <xsl:attribute name="margin-top">6pt</xsl:attribute>
+  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
+</xsl:attribute-set>
+
+<!-- Only shade programlisting and screen verbatim elements -->
+<xsl:param name="shade.verbatim" select="1"/>
+<xsl:attribute-set name="shade.verbatim.style">
+  <xsl:attribute name="background-color">
+    <xsl:choose>
+      <xsl:when test="self::programlisting|self::screen">#ffffff</xsl:when>
+      <xsl:otherwise>inherit</xsl:otherwise>
+    </xsl:choose>
+  </xsl:attribute>
+</xsl:attribute-set>
+
+<!--
+  Force XSL Stylesheets 1.72 default table breaks to be the same as the current
+  version (1.74) default which (for tables) is keep-together="auto".
+-->
+<xsl:attribute-set name="table.properties">
+  <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+
+</xsl:stylesheet>
diff --git a/doc/am.css b/doc/am.css
new file mode 100644 (file)
index 0000000..2461e11
--- /dev/null
@@ -0,0 +1,356 @@
+/*
+  CSS stylesheet for XHTML produced by DocBook XSL stylesheets.
+*/
+
+body {
+    font-family: "Frutiger LT Std 45 Light",sans-serif;
+    font-size: 14pt;
+}
+
+code, pre {
+  font-family: "DejaVu Sans Mono", monospace;
+}
+
+span.strong {
+  font-weight: bold;
+}
+
+body blockquote {
+  margin-top: .75em;
+  line-height: 1.5;
+  margin-bottom: .75em;
+}
+
+html body {
+  margin: 1em 5% 1em 5%;
+  line-height: 1.2;
+}
+
+body div {
+  margin: 0;
+}
+
+a:link {
+    color: #0080ff;
+}
+
+a:visited {
+    color: #0080ff;
+}
+
+h1, h2, h3, h4, h5, h6
+{
+  color: #0080ff;
+  font-family: "Frutiger LT Std 45 Light",sans-serif;
+}
+
+div.revhistory table {
+    width: 50%;
+    border-width: 1px;
+}
+
+div titlepage {
+    margin-top: 100px;
+    border-top: 2px;
+}
+
+div.toc p:first-child,
+div.list-of-figures p:first-child,
+div.list-of-tables p:first-child,
+div.list-of-examples p:first-child,
+div.example p.title,
+div.sidebar p.title
+{
+  font-weight: normal;
+  color: #0080ff;
+  font-family: "Frutiger LT Std 45 Light",sans-serif;
+  margin-bottom: 0.2em;
+}
+
+body h1 {
+  margin: .0em 0 0 -4%;
+  line-height: 1.3;
+  border-bottom: 2px solid silver;
+}
+
+body h2 {
+  margin: 0.5em 0 0 -4%;
+  line-height: 1.3;
+  border-bottom: 2px solid silver;
+}
+
+body h3 {
+  margin: .8em 0 0 -3%;
+  line-height: 1.3;
+}
+
+body h4 {
+  margin: .8em 0 0 -3%;
+  line-height: 1.3;
+  border-top: 2px solid silver;goog
+}
+
+body h5 {
+  margin: .8em 0 0 -2%;
+  line-height: 1.3;
+}
+
+body h6 {
+  margin: .8em 0 0 -1%;
+  line-height: 1.3;
+}
+
+body hr {
+  border: none; /* Broken on IE6 */
+}
+div.footnotes hr {
+  border: 1px solid silver;
+}
+
+div.navheader th, div.navheader td, div.navfooter td {
+    font-family: "Frutiger LT Std 45 Light",sans-serif;
+    font-size: 14pt;
+    font-weight: normal;
+    color: #0080ff;
+}
+div.navheader img, div.navfooter img {
+  border-style: none;
+}
+div.navheader a, div.navfooter a {
+  font-weight: normal;
+}
+div.navfooter hr {
+  border: 1px solid silver;
+}
+
+body td {
+  line-height: 1.2
+}
+
+body th {
+  line-height: 1.2;
+}
+
+ol {
+  line-height: 1.2;
+}
+
+ul, body dir, body menu {
+  line-height: 1.2;
+}
+
+html {
+  margin: 0; 
+  padding: 0;
+}
+
+body h1, body h2, body h3, body h4, body h5, body h6 {
+  margin-left: 0
+} 
+
+body pre {
+  margin: 0.5em 10% 0.5em 1em;
+  line-height: 1.0;
+}
+
+tt.literal, code.literal {
+}
+
+.programlisting, .screen {
+  border: 1px solid silver;
+  background: #f4f4f4;
+  margin: 0.5em 10% 0.5em 0;
+  padding: 0.5em 1em;
+}
+
+div.sidebar {
+  background: #ffffee;
+  margin: 1.0em 10% 0.5em 0;
+  padding: 0.5em 1em;
+  border: 1px solid silver;
+}
+div.sidebar * { padding: 0; }
+div.sidebar div { margin: 0; }
+div.sidebar p.title {
+  margin-top: 0.5em;
+  margin-bottom: 0.2em;
+}
+
+div.bibliomixed {
+  margin: 0.5em 5% 0.5em 1em;
+}
+
+div.glossary dt {
+  font-weight: bold;
+}
+div.glossary dd p {
+  margin-top: 0.2em;
+}
+
+dl {
+  margin: .8em 0;
+  line-height: 1.2;
+}
+
+dt {
+  margin-top: 0.5em;
+}
+
+dt span.term {
+  font-style: normal;
+}
+
+div.variablelist dd p {
+  margin-top: 0;
+}
+
+div.itemizedlist li, div.orderedlist li {
+  margin-left: -0.8em;
+  margin-top: 0.5em;
+}
+
+ul, ol {
+    list-style-position: outside;
+}
+
+div.sidebar ul, div.sidebar ol {
+    margin-left: 2.8em;
+}
+
+div.itemizedlist p.title,
+div.orderedlist p.title,
+div.variablelist p.title
+{
+  margin-bottom: -0.8em;
+}
+
+table {
+    border: none;
+}
+
+div.revhistory {
+    border-style: none;
+}
+
+div.revhistory table, th, td, tr {
+    margin-top: 1em;
+    border-width: 1px;
+    border-collapse: collapse;
+    border-top: 1px;
+    border-bottom: 1px;
+    border-left: 1px;
+    border-right: 1px;
+    border: 1px solid black;
+}
+div.revhistory th {
+  color: #0080ff;
+  font-family: "Frutiger LT Std 45 Light",sans-serif;
+}
+
+/* Keep TOC and index lines close together. */
+div.toc dl, div.toc dt,
+div.list-of-figures dl, div.list-of-figures dt,
+div.list-of-tables dl, div.list-of-tables dt,
+div.indexdiv dl, div.indexdiv dt
+{
+  line-height: normal;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+/*
+  Table styling does not work because of overriding attributes in
+  generated HTML.
+*/
+div.table table,
+div.informaltable table
+{
+    margin-left: 0;
+    margin-right: 5%;
+    margin-bottom: 0.8em;
+}
+div.informaltable table
+{
+    margin-top: 0.4em
+}
+div.table thead,
+div.table tfoot,
+div.table tbody,
+div.informaltable thead,
+div.informaltable tfoot,
+div.informaltable tbody
+{
+    /* No effect in IE6. */
+    border-top: 3px solid #527bbd;
+    border-bottom: 3px solid #527bbd;
+}
+div.table thead, div.table tfoot,
+div.informaltable thead, div.informaltable tfoot
+{
+    font-weight: bold;
+}
+
+div.mediaobject img {
+    margin-bottom: 0.8em;
+}
+div.figure p.title,
+div.table p.title
+{
+  margin-top: 1em;
+  margin-bottom: 0.4em;
+}
+
+div.calloutlist p
+{
+  margin-top: 0em;
+  margin-bottom: 0.4em;
+}
+
+a img {
+  border-style: none;
+}
+
+@media print {
+  div.navheader, div.navfooter { display: none; }
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
diff --git a/doc/common.xsl b/doc/common.xsl
new file mode 100644 (file)
index 0000000..2e5cbc2
--- /dev/null
@@ -0,0 +1,106 @@
+<!--
+  Inlcuded in xhtml.xsl, xhtml.chunked.xsl, htmlhelp.xsl.
+  Contains common XSL stylesheets parameters.
+  Output documents styled by docbook.css.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:param name="html.stylesheet" select="'docbook-xsl.css'"/>
+
+<xsl:param name="htmlhelp.chm" select="'htmlhelp.chm'"/>
+<xsl:param name="htmlhelp.hhc.section.depth" select="5"/>
+
+<xsl:param name="section.autolabel">
+  <xsl:choose>
+    <xsl:when test="/processing-instruction('asciidoc-numbered')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="suppress.navigation" select="0"/>
+<xsl:param name="navig.graphics.extension" select="'.png'"/>
+<xsl:param name="navig.graphics" select="0"/>
+<xsl:param name="navig.graphics.path">images/icons/</xsl:param>
+<xsl:param name="navig.showtitles">0</xsl:param>
+
+<xsl:param name="shade.verbatim" select="0"/>
+<xsl:attribute-set name="shade.verbatim.style">
+  <xsl:attribute name="border">0</xsl:attribute>
+  <xsl:attribute name="background-color">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="admon.graphics" select="1"/>
+<xsl:param name="admon.graphics.path">images/icons/</xsl:param>
+<xsl:param name="admon.graphics.extension" select="'.png'"/>
+<xsl:param name="admon.style">
+  <xsl:text>margin-left: 0; margin-right: 10%;</xsl:text>
+</xsl:param>
+<xsl:param name="admon.textlabel" select="1"/>
+
+<xsl:param name="callout.defaultcolumn" select="'60'"/>
+<xsl:param name="callout.graphics.extension" select="'.png'"/>
+<xsl:param name="callout.graphics" select="'1'"/>
+<xsl:param name="callout.graphics.number.limit" select="'10'"/>
+<xsl:param name="callout.graphics.path" select="'images/icons/callouts/'"/>
+<xsl:param name="callout.list.table" select="'1'"/>
+
+<!-- This does not seem to work. -->
+<xsl:param name="section.autolabel.max.depth" select="2"/>
+
+<xsl:param name="chunk.first.sections" select="1"/>
+<xsl:param name="chunk.section.depth" select="1"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="chunk.toc" select="''"/>
+<xsl:param name="chunk.tocs.and.lots" select="0"/>
+
+<xsl:param name="html.cellpadding" select="'4px'"/>
+<xsl:param name="html.cellspacing" select="''"/>
+
+<xsl:param name="table.borders.with.css" select="1"/>
+<xsl:param name="table.cell.border.color" select="'#527bbd'"/>
+
+<xsl:param name="table.cell.border.style" select="'solid'"/>
+<xsl:param name="table.cell.border.thickness" select="'1px'"/>
+<xsl:param name="table.footnote.number.format" select="'a'"/>
+<xsl:param name="table.footnote.number.symbols" select="''"/>
+<xsl:param name="table.frame.border.color" select="'#527bbd'"/>
+<xsl:param name="table.frame.border.style" select="'solid'"/>
+<xsl:param name="table.frame.border.thickness" select="'3px'"/>
+<xsl:param name="tablecolumns.extension" select="'1'"/>
+
+<xsl:param name="highlight.source" select="1"/>
+
+<xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--
+  Table of contents inserted by <?asciidoc-toc?> processing instruction.
+-->
+<xsl:param name="generate.toc">
+  <xsl:choose>
+    <xsl:when test="/processing-instruction('asciidoc-toc')">
+article toc,title
+book    toc,title,figure,table,example,equation
+      <!-- The only way I could find that suppressed book chapter TOCs -->
+      <xsl:if test="$generate.section.toc.level != 0">
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+article nop
+book    nop
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+</xsl:stylesheet>
diff --git a/doc/fonts/DejaVuSansMono-Bold.ttf b/doc/fonts/DejaVuSansMono-Bold.ttf
new file mode 100644 (file)
index 0000000..1085a73
Binary files /dev/null and b/doc/fonts/DejaVuSansMono-Bold.ttf differ
diff --git a/doc/fonts/DejaVuSansMono-BoldOblique.ttf b/doc/fonts/DejaVuSansMono-BoldOblique.ttf
new file mode 100644 (file)
index 0000000..3175ebf
Binary files /dev/null and b/doc/fonts/DejaVuSansMono-BoldOblique.ttf differ
diff --git a/doc/fonts/DejaVuSansMono-Oblique.ttf b/doc/fonts/DejaVuSansMono-Oblique.ttf
new file mode 100644 (file)
index 0000000..d5d6f92
Binary files /dev/null and b/doc/fonts/DejaVuSansMono-Oblique.ttf differ
diff --git a/doc/fonts/DejaVuSansMono.ttf b/doc/fonts/DejaVuSansMono.ttf
new file mode 100644 (file)
index 0000000..05e2345
Binary files /dev/null and b/doc/fonts/DejaVuSansMono.ttf differ
diff --git a/doc/fonts/FrutigerLTStd-Italic.otf b/doc/fonts/FrutigerLTStd-Italic.otf
new file mode 100644 (file)
index 0000000..c02ecd0
Binary files /dev/null and b/doc/fonts/FrutigerLTStd-Italic.otf differ
diff --git a/doc/fonts/FrutigerLTStd-Light.otf b/doc/fonts/FrutigerLTStd-Light.otf
new file mode 100644 (file)
index 0000000..6d013a6
Binary files /dev/null and b/doc/fonts/FrutigerLTStd-Light.otf differ
diff --git a/doc/fonts/FrutigerLTStd-LightItalic.otf b/doc/fonts/FrutigerLTStd-LightItalic.otf
new file mode 100644 (file)
index 0000000..7023777
Binary files /dev/null and b/doc/fonts/FrutigerLTStd-LightItalic.otf differ
diff --git a/doc/fonts/FrutigerLTStd-Roman.otf b/doc/fonts/FrutigerLTStd-Roman.otf
new file mode 100644 (file)
index 0000000..a6d6edb
Binary files /dev/null and b/doc/fonts/FrutigerLTStd-Roman.otf differ
diff --git a/doc/footer.templates.xsl b/doc/footer.templates.xsl
new file mode 100644 (file)
index 0000000..3484c0e
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+               xmlns:d="http://docbook.org/ns/docbook"
+                version="1.0">
+
+<xsl:template name="footer.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+<!--
+  <fo:block>
+    <xsl:value-of select="$pageclass"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$sequence"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$position"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$gentext-key"/>
+  </fo:block>
+-->
+
+  <fo:block>
+    <!-- pageclass can be front, body, back -->
+    <!-- sequence can be odd, even, first, blank -->
+    <!-- position can be left, center, right -->
+    <xsl:choose>
+      <xsl:when test="$pageclass = 'titlepage'">
+        <!-- nop; no footer on title pages -->
+      </xsl:when>
+
+      <xsl:when test="$position='right'">
+        <fo:page-number/>
+      </xsl:when>
+
+      <xsl:when test="$position='left'">
+       <fo:block font-size="10">
+         <xsl:value-of select="//legalnotice"/>
+       </fo:block>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <!-- nop -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/doc/fop.xconf b/doc/fop.xconf
new file mode 100644 (file)
index 0000000..0f470ff
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<!-- $Id: fop.xconf 1339442 2012-05-17 01:42:56Z gadams $ -->
+
+<!--
+
+This is an example configuration file for FOP.
+This file contains the same settings as the default values
+and will have no effect if used unchanged.
+
+Relative config url's will be resolved relative to
+the location of this file.
+
+-->
+
+<!-- NOTE: This is the version of the configuration -->
+<fop version="1.0">
+
+  <!-- Base URL for resolving relative URLs -->
+  <base>.</base>
+  
+  <!-- Source resolution in dpi (dots/pixels per inch) for determining the size of pixels in SVG and bitmap images, default: 72dpi -->
+  <source-resolution>72</source-resolution>
+  <!-- Target resolution in dpi (dots/pixels per inch) for specifying the target resolution for generated bitmaps, default: 72dpi -->
+  <target-resolution>72</target-resolution>
+  
+  <!-- Default page-height and page-width, in case
+       value is specified as auto -->
+  <default-page-settings height="11in" width="8.26in"/>
+  
+  <!-- Information for specific renderers -->
+  <!-- Uses renderer mime type for renderers -->
+  <renderers>
+    <renderer mime="application/pdf">
+      <filterList>
+        <!-- provides compression using zlib flate (default is on) -->
+        <value>flate</value>
+      </filterList>
+
+      <fonts>
+        <!-- embedded fonts -->
+       <font embed-url="fonts/FrutigerLTStd-Light.otf">
+         <font-triplet name="Frutiger LT Std" style="normal"
+                       weight="normal"/>
+       </font>
+       <font embed-url="fonts/FrutigerLTStd-LightItalic.otf">
+         <font-triplet name="Frutiger LT Std" style="italic"
+                       weight="normal"/>
+       </font>
+       <font embed-url="fonts/FrutigerLTStd-Roman.otf">
+         <font-triplet name="Frutiger LT Std" style="normal"
+                       weight="bold"/>
+       </font>
+       <font embed-url="fonts/FrutigerLTStd-Italic.otf">
+         <font-triplet name="Frutiger LT Std" style="italic"
+                       weight="bold"/>
+       </font>
+
+       <font embed-url="fonts/DejaVuSansMono.ttf">
+         <font-triplet name="DejaVu Sans Mono" style="normal"
+                       weight="normal"/>
+       </font>
+       <font embed-url="fonts/DejaVuSansMono-Oblique.ttf">
+         <font-triplet name="DejaVu Sans Mono" style="italic"
+                       weight="normal"/>
+       </font>
+       <font embed-url="fonts/DejaVuSansMono-Bold.ttf">
+         <font-triplet name="DejaVu Sans Mono" style="normal"
+                       weight="bold"/>
+       </font>
+       <font embed-url="fonts/DejaVuSansMono-BoldOblique.ttf">
+         <font-triplet name="DejaVu Sans Mono" style="italic"
+                       weight="bold"/>
+       </font>
+      </fonts>
+    </renderer>
+
+    <renderer mime="image/svg+xml">
+      <format type="paginated"/>
+      <link value="true"/>
+      <strokeText value="false"/>
+    </renderer>
+
+    <renderer mime="text/xml">
+    </renderer>
+
+  </renderers>
+</fop>
+
diff --git a/doc/getting-started.inc b/doc/getting-started.inc
new file mode 100644 (file)
index 0000000..8401f4d
--- /dev/null
@@ -0,0 +1,85 @@
+== Getting Started
+
+       The first thing to do after you open the box is to hook up a
+       battery and charge it if necessary.
+
+       === Batteries
+
+               For TeleMetrum, TeleMega and EasyMega, the battery can be charged by plugging it into the
+               corresponding socket of the device and then using the USB
+               cable to plug the flight computer into your computer's USB socket. The
+               on-board circuitry will charge the battery whenever it is plugged
+               in, because the on-off switch does NOT control the
+               charging circuitry.
+               The Lithium Polymer TeleMini and EasyMini battery can be charged by
+               disconnecting it from the board and plugging it into a
+               standalone battery charger such as the LipoCharger product
+               included in TeleMini Starter Kits, and connecting that via a USB
+               cable to a laptop or other USB power source.
+
+               You can also choose to use another battery with TeleMini v2.0
+               and EasyMini, anything supplying between 4 and 12 volts should
+               work fine (like a standard 9V battery), but if you are planning
+               to fire pyro charges, ground testing is required to verify that
+               the battery supplies enough current to fire your chosen e-matches.
+
+               [NOTE]
+               ====
+               On TeleMetrum v1 boards, when the GPS chip is initially
+               searching for satellites, TeleMetrum will consume more current
+               than it pulls from the USB port, so the battery must be
+               attached in order to get satellite lock.  Once GPS is locked,
+               the current consumption goes back down enough to enable charging
+               while running. So it's a good idea to fully charge the battery
+               as your first item of business so there is no issue getting and
+               maintaining satellite lock.  The yellow charge indicator led
+               will go out when the battery is nearly full and the charger goes
+               to trickle charge. It can take several hours to fully recharge a
+               deeply discharged battery.
+
+               TeleMetrum v2.0, TeleMega and EasyMega use a higher power battery charger,
+               allowing them to charge the battery while running the board at
+               maximum power. When the battery is charging, or when the board
+               is consuming a lot of power, the red LED will be lit. When the
+               battery is fully charged, the green LED will be lit. When the
+               battery is damaged or missing, both LEDs will be lit, which
+               appears yellow.
+               ====
+
+       === Ground Station Hardware
+
+               There are two ground stations available, the TeleDongle USB to
+               RF interface and the TeleBT Bluetooth/USB to RF interface.  If
+               you plug either of these in to your Mac or Linux computer it should
+               “just work”, showing up as a serial port device.  Windows systems need
+               driver information that is part of the AltOS download to know that the
+               existing USB modem driver will work.  We therefore recommend installing
+               our software before plugging in TeleDongle if you are using a Windows
+               computer.  If you are using an older version of Linux and are having
+               problems, try moving to a fresher kernel (2.6.33 or
+               newer).
+
+       === Linux/Mac/Windows Ground Station Software
+
+               Next you should obtain and install the AltOS software.
+               The AltOS distribution includes the AltosUI ground
+               station program, current firmware images for all of
+               the hardware, and a number of standalone utilities
+               that are rarely needed.  Pre-built binary packages are
+               available for Linux, Microsoft Windows, Mac OSX. Full
+               source code and build instructions are also
+               available. The latest version may always be downloaded
+               from http://altusmetrum.org/AltOS
+
+       === Android Ground Station Software
+
+               TeleBT can also connect to an Android device over
+               BlueTooth or USB. The
+               link:https://play.google.com/store/apps/details?id=org.altusmetrum.AltosDroid[AltosDroid
+               Android application] is available from the  
+               link:https://play.google.com[Google Play system].
+
+               You don't need a data plan to use AltosDroid, but
+               without network access, you'll want to download
+               offline map data before wandering away from the
+               network.
diff --git a/doc/handling.inc b/doc/handling.inc
new file mode 100644 (file)
index 0000000..78d9133
--- /dev/null
@@ -0,0 +1,42 @@
+[appendix]
+== Handling Precautions
+
+       All Altus Metrum products are sophisticated electronic devices.
+       When handled gently and properly installed in an air-frame, they
+       will deliver impressive results.  However, as with all electronic
+       devices, there are some precautions you must take.
+
+       The Lithium Polymer rechargeable batteries 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 air-frame.  We
+       often wrap them in suitable scraps of closed-cell packing foam before
+       strapping them down, for example.
+
+       The barometric sensors used on all of our flight computers are
+       sensitive to sunlight.  In normal mounting situations, the baro sensor
+       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 when designing an
+       installation in an air-frame with a see-through plastic payload bay.  It
+       is particularly important to
+       consider this with TeleMini v1.0, both because the baro sensor is on the
+       “top” of the board, and because many model rockets with payload bays
+       use clear plastic for the payload bay!  Replacing these with an opaque
+       cardboard tube, painting them, or wrapping them with a layer of masking
+       tape are all reasonable approaches to keep the sensor out of direct
+       sunlight.
+
+       The 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, and also by having a
+       suitable static vent to outside air.
+
+       As with all other rocketry electronics, Altus Metrum altimeters must
+       be protected from exposure to corrosive motor exhaust and ejection
+       charge gasses.
+
diff --git a/doc/intro.inc b/doc/intro.inc
new file mode 100644 (file)
index 0000000..28daa41
--- /dev/null
@@ -0,0 +1,54 @@
+== Introduction and Overview
+
+       Welcome to the Altus Metrum community!  Our circuits and software reflect
+       our passion for both hobby rocketry and Free Software.  We hope their
+       capabilities and performance will delight you in every way, but by
+       releasing all of our hardware and software designs under open licenses,
+       we also hope to empower you to take as active a role in our collective
+       future as you wish!
+
+       The first device created for our community was TeleMetrum, a dual
+       deploy altimeter with fully integrated GPS and radio telemetry
+       as standard features, and a “companion interface” that will
+       support optional capabilities in the future. The latest version
+       of TeleMetrum, v2.0, has all of the same features but with
+       improved sensors and radio to offer increased performance.
+
+       Our second device was TeleMini, a dual deploy altimeter with
+       radio telemetry and radio direction finding. The first version
+       of this device was only 13mm by 38mm (½ inch by 1½ inches) and
+       could fit easily in an 18mm air-frame. The latest version, v2.0,
+       includes a beeper, USB data download and extended on-board
+       flight logging, along with an improved barometric sensor.
+
+       TeleMega is our most sophisticated device, including six pyro
+       channels (four of which are fully programmable), integrated GPS,
+       integrated gyroscopes for staging/air-start inhibit and high
+       performance telemetry.
+
+       EasyMini is a dual-deploy altimeter with logging and built-in
+       USB data download.
+
+       EasyMega is essentially a TeleMega board with the GPS receiver
+       and telemetry transmitter removed. It offers the same 6 pyro
+       channels and integrated gyroscopes for staging/air-start inhibit.
+
+       TeleDongle v0.2 was our first ground station, providing a USB to RF
+       interfaces for communicating with the altimeters. Combined with
+       your choice of antenna and notebook computer, TeleDongle and our
+       associated user interface software form a complete ground
+       station capable of logging and displaying in-flight telemetry,
+       aiding rocket recovery, then processing and archiving flight
+       data for analysis and review. The latest version, TeleDongle
+       v3, has all new electronics with a higher performance radio
+       for improved range.
+
+       For a slightly more portable ground station experience that also
+       provides direct rocket recovery support, TeleBT offers flight
+       monitoring and data logging using a  Bluetooth™ connection between
+       the receiver and an Android device that has the AltosDroid
+       application installed from the Google Play store.
+
+       More products will be added to the Altus Metrum family over time, and
+       we currently envision that this will be a single, comprehensive manual
+       for the entire product family.
diff --git a/doc/specs.inc b/doc/specs.inc
new file mode 100644 (file)
index 0000000..0991bd2
--- /dev/null
@@ -0,0 +1,139 @@
+[appendix]
+== Altus Metrum Hardware Specifications
+
+       Here's the full set of Altus Metrum products, both in
+       production and retired.
+
+       [options="header"]
+       |================================
+       |Device | Barometer | Z-axis accel | GPS | 3D sensors | Storage | RF Output | Battery
+
+       |TeleMetrum v1.0
+       |MP3H6115 10km (33k')
+       |MMA2202 50g
+       |SkyTraq
+       |-
+       |1MB
+       |10mW
+       |3.7V
+
+       |TeleMetrum v1.1
+       |MP3H6115 10km (33k')
+       |MMA2202 50g
+       |SkyTraq
+       |-
+       |2MB
+       |10mW
+       |3.7V
+
+       |TeleMetrum v1.2
+       |MP3H6115 10km (33k')
+       |ADXL78 70g
+       |SkyTraq
+       |-
+       |2MB
+       |10mW
+       |3.7V
+
+       |TeleMetrum v2.0
+       |MS5607 30km (100k')
+       |MMA6555 102g
+       |uBlox Max-7Q
+       |-
+       |8MB
+       |40mW
+       |3.7V
+
+       |TeleMini v1.0
+       |MP3H6115 10km (33k')
+       |-
+       |-
+       |-
+       |5kB
+       |10mW
+       |3.7V
+
+       |TeleMini v2.0
+       |MS5607 30km (100k')
+       |-
+       |-
+       |-
+       |1MB
+       |10mW
+       |3.7-12V
+
+       |EasyMini v1.0
+       |MS5607 30km (100k')
+       |-
+       |-
+       |-
+       |1MB
+       |-
+       |3.7-12V
+
+       |TeleMega v1.0
+       |MS5607 30km (100k')
+       |MMA6555 102g
+       |uBlox Max-7Q
+       |MPU6000 HMC5883
+       |8MB
+       |40mW
+       |3.7V
+
+       |EasyMega v1.0
+       |MS5607 30km (100k')
+       |MMA6555 102g
+       |-
+       |MPU6000 HMC5883
+       |8MB
+       |-
+       |3.7V
+       |==============================
+
+       <<<<
+       [options="header",grid="all"]
+       |==============================
+       |Device|Connectors|Screw Terminals|Width|Length|Tube Size
+
+       |TeleMetrum
+       |Antenna Debug Companion USB Battery
+       |Apogee pyro Main pyro Switch
+       |1 inch (2.54cm)
+       |2 ¾ inch (6.99cm)
+       |29mm coupler
+
+       |TeleMini v1.0
+       |Antenna Debug Battery
+       |Apogee pyro Main pyro
+       |½ inch (1.27cm)
+       |1½ inch (3.81cm)
+       |18mm coupler
+
+       |TeleMini v2.0
+       |Antenna Debug USB Battery
+       |Apogee pyro Main pyro Battery Switch
+       |0.8 inch (2.03cm)
+       |1½ inch (3.81cm)
+       |24mm coupler
+
+       |EasyMini
+       |Debug USB Battery
+       |Apogee pyro Main pyro Battery
+       |0.8 inch (2.03cm)
+       |1½ inch (3.81cm)
+       |24mm coupler
+
+       |TeleMega
+       |Antenna Debug Companion USB Battery
+       |Apogee pyro Main pyro Pyro A-D Switch Pyro battery
+       |1¼ inch (3.18cm)
+       |3¼ inch (8.26cm)
+       |38mm coupler
+
+       |EasyMega
+       |Debug Companion USB Battery
+       |Apogee pyro Main pyro Pyro A-D Switch Pyro battery
+       |1¼ inch (3.18cm)
+       |2¼ inch (5.62cm)
+       |38mm coupler
+       |====================================
diff --git a/doc/telemetrum.inc b/doc/telemetrum.inc
new file mode 100644 (file)
index 0000000..9562d99
--- /dev/null
@@ -0,0 +1,68 @@
+== TeleMetrum
+
+       image::telemetrum-v1.1-thside.jpg[width="5.5in"]
+
+       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 ¼
+       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.
+
+       === TeleMetrum Screw Terminals
+
+               TeleMetrum has six screw terminals on the end of the board
+               opposite the telemetry antenna. Two are for the power
+               switch, and two each for the apogee and main igniter
+               circuits. Using the picture above and starting from the top,
+               the terminals are as follows:
+
+               [options="header",grid="all",cols="2,3,10"]
+               |=========================
+               |Terminal #|Terminal Name|Description
+               |1      |Switch Output  |Switch connection to flight computer
+               |2      |Switch Input   |Switch connection to positive battery terminal
+               |3      |Main +         |Main pyro channel common connection to battery +
+               |4      |Main -         |Main pyro channel connection to pyro circuit
+               |5      |Apogee +       |Apogee pyro channel common connection to battery +
+               |6      |Apogee -       |Apogee pyro channel connection to pyro circuit
+               |========================
+
+       === Using a Separate Pyro Battery with TeleMetrum
+
+               As described above, using an external pyro battery involves
+               connecting the negative battery terminal to the flight
+               computer ground, connecting the positive battery terminal to
+               one of the igniter leads and connecting the other igniter
+               lead to the per-channel pyro circuit connection.
+
+               To connect the negative battery terminal to the TeleMetrum
+               ground, insert a small piece of wire, 24 to 28 gauge
+               stranded, into the GND hole just above the screw terminal
+               strip and solder it in place.
+
+               Connecting the positive battery terminal to the pyro
+               charges must be done separate from TeleMetrum, by soldering
+               them together or using some other connector.
+
+
+               The other lead from each pyro charge is then inserted into
+               the appropriate per-pyro channel screw terminal (terminal 4 for the
+               Main charge, terminal 6 for the Apogee charge).
+
+       === Using an Active Switch with TeleMetrum
+
+               As explained above, an external active switch requires three
+               connections, one to the positive battery terminal, one to
+               the flight computer positive input and one to ground.
+
+
+               The positive battery terminal is available on screw terminal
+               2, the positive flight computer input is on terminal 1. To
+               hook a lead to ground, solder a piece of wire, 24 to 28
+               gauge stranded, to the GND hole just above terminal 1.
+
diff --git a/doc/usage.inc b/doc/usage.inc
new file mode 100644 (file)
index 0000000..b4a9327
--- /dev/null
@@ -0,0 +1,90 @@
+== Using Altus Metrum Hardware
+
+       Here are general instructions for hooking up an Altus Metrum
+       flight computer. Instructions specific to each model will be
+       found in the section devoted to that model below.
+
+       === Wiring and Electrical Interference
+
+               To prevent electrical interference from affecting the
+               operation of the flight computer, it's important to always
+               twist pairs of wires connected to the board. Twist the switch
+               leads, the pyro leads and the battery leads. This reduces
+               interference through a mechanism called common mode rejection.
+
+       === Hooking Up Lithium Polymer Batteries
+
+               All Altus Metrum flight computers have a two pin JST PH
+               series connector to connect up a single-cell Lithium Polymer
+               cell (3.7V nominal). You can purchase matching batteries
+               from the Altus Metrum store, or other vendors, or you can
+               make your own. Pin 1 of the connector is positive, pin 2 is
+               negative. Spark Fun sells a cable with the connector
+               attached, which they call a
+               link:https://www.sparkfun.com/products/9914[JST Jumper 2 Wire Assembly]
+
+               Many RC vendors also sell lithium polymer batteries with
+               this same connector. All that we have found use the opposite
+               polarity, and if you use them that way, you will damage or
+               destroy the flight computer.
+
+       === Hooking Up Pyro Charges
+
+               Altus Metrum flight computers always have two screws for
+               each pyro charge. This means you shouldn't need to put two
+               wires into a screw terminal or connect leads from pyro
+               charges together externally.
+
+               On the flight computer, one lead from each charge is hooked
+               to the positive battery terminal through the power switch.
+               The other lead is connected through the pyro circuit, which
+               is connected to the negative battery terminal when the pyro
+               circuit is fired.
+
+       === Hooking Up a Power Switch
+
+               Altus Metrum flight computers need an external power switch
+               to turn them on. This disconnects both the computer and the
+               pyro charges from the battery, preventing the charges from
+               firing when in the Off position. The switch is in-line with
+               the positive battery terminal.
+
+       === Using an External Active Switch Circuit
+
+               You can use an active switch circuit, such as the
+               Featherweight Magnetic Switch, with any Altus Metrum
+               flight computer. These require three connections, one to
+               the battery, one to the positive power input on the flight
+               computer and one to ground. Find instructions on how to
+               hook these up for each flight computer below. The follow
+               the instructions that come with your active switch to
+               connect it up.
+
+       === Using a Separate Pyro Battery
+
+               As mentioned above in the section on hooking up pyro
+               charges, one lead for each of the pyro charges is connected
+               through the power switch directly to the positive battery
+               terminal. The other lead is connected to the pyro circuit,
+               which connects it to the negative battery terminal when the
+               pyro circuit is fired. The pyro circuit on all of the flight
+               computers is designed to handle up to 16V.
+
+               To use a separate pyro battery, connect the negative pyro
+               battery terminal to the flight computer ground terminal,
+               the positive battery terminal to the igniter and the other
+               igniter lead to the negative pyro terminal on the flight
+               computer. When the pyro channel fires, it will complete the
+               circuit between the negative pyro terminal and the ground
+               terminal, firing the igniter. Specific instructions on how
+               to hook this up will be found in each section below.
+
+       === Using a Different Kind of Battery
+
+               EasyMini and TeleMini v2 are designed to use either a
+               lithium polymer battery or any other battery producing
+               between 4 and 12 volts, such as a rectangular 9V
+               battery. TeleMega, EasyMega and TeleMetrum are not designed for this,
+               and must only be powered by a lithium polymer battery. Find
+               instructions on how to use other batteries in the EasyMini
+               and TeleMini sections below.