update copyright year assertion in MicroPeak manual, remember during releases
[fw/altos] / doc / micropeak.xsl
index 2faef41c25c4e3218f458c7af51ce51b5aa6360b..dafe36820650fa73f87da3691e7af758d74d2621 100644 (file)
@@ -3,16 +3,21 @@
   "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
 <book>
   <title>MicroPeak Owner's Manual</title>
-  <subtitle>A peak-recording altimeter for hobby rocketry</subtitle>
+  <subtitle>A recording altimeter for hobby rocketry</subtitle>
   <bookinfo>
     <author>
       <firstname>Keith</firstname>
       <surname>Packard</surname>
     </author>
     <copyright>
-      <year>2012</year>
+      <year>2014</year>
       <holder>Bdale Garbee and Keith Packard</holder>
     </copyright>
+    <mediaobject>
+      <imageobject>
+       <imagedata fileref="micropeak-dime.jpg" width="6in"/>
+      </imageobject>
+    </mediaobject>
     <legalnotice>
       <para>
         This document is released under the terms of the
          Initial release with preliminary hardware.
        </revremark>
       </revision>
+      <revision>
+       <revnumber>1.0</revnumber>
+       <date>18 November 2012</date>
+       <revremark>
+         Updates for version 1.0 release.
+       </revremark>
+      </revision>
+      <revision>
+       <revnumber>1.1</revnumber>
+       <date>12 December 2012</date>
+       <revremark>
+         Add comments about EEPROM storage format and programming jig.
+       </revremark>
+      </revision>
+      <revision>
+       <revnumber>1.2</revnumber>
+       <date>20 January 2013</date>
+       <revremark>
+         Add documentation for the MicroPeak USB adapter board. Note
+         the switch to a Kalman filter for peak altitude
+         determination.
+       </revremark>
+      </revision>
+      <revision>
+       <revnumber>1.3.2</revnumber>
+       <date>12 February 2014</date>
+       <revremark>
+         Add a "Download" button to the main window, which makes it
+         quicker to access the download function. Update the data
+         download documentation to reflect the new MicroPeak USB
+         adapter design. Monitor data during download to let you see
+         if the USB connection is working at all by showing the
+         characters received from the MicroPeak USB adapter.
+       </revremark>
+      </revision>
     </revhistory>
   </bookinfo>
-  <acknowledgements>
+  <dedication>
+    <title>Acknowledgements</title>
     <para>
       Thanks to John Lyngdal for suggesting that we build something like this.
     </para>
@@ -47,7 +88,7 @@ Keith Packard, KD7SQG
 NAR #88757, TRA #12200
       </literallayout>
     </para>
-  </acknowledgements>
+  </dedication>
   <chapter>
     <title>Quick Start Guide</title>
     <para>
@@ -63,6 +104,13 @@ NAR #88757, TRA #12200
          holder with the positive (+) terminal facing away from the
          circuit board.
        </para>
+       <informalfigure>
+         <mediaobject>
+           <imageobject>
+             <imagedata fileref="micropeak-back.jpg" width="4.5in"/>
+           </imageobject>
+         </mediaobject>
+       </informalfigure>
       </listitem>
       <listitem>
        <para>
@@ -70,7 +118,8 @@ NAR #88757, TRA #12200
          preparing a soft cushion of wadding inside a vented model payload
          bay. Wherever you mount it, make sure you protect the
          barometric sensor from corrosive ejection gasses as those
-         will damage the sensor.
+         will damage the sensor, and shield it from light as that can
+         cause incorrect sensor readings.
        </para>
       </listitem>
       <listitem>
@@ -83,15 +132,27 @@ NAR #88757, TRA #12200
          height is reported in decimeters, so the last digit will be
          tenths of a meter. For example, if MicroPeak reports 5 4 4
          3, then the maximum height of the last flight was 544.3m, or
-         1786 feet. After reporting the last flight, MicroPeak starts
-         waiting for launch. It will flash once every three seconds
-         in this mode.
+         1786 feet.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+         Finish preparing the rocket for flight. After the
+         previous flight data have been reported, MicroPeak waits for
+         one minute before starting to check for launch. This gives
+         you time to finish assembling the rocket. As those
+         activities might cause pressure changes inside the airframe,
+         MicroPeak might accidentally detect boost. If you need to do
+         anything to the airframe after the one minute window passes,
+         make sure to be careful not to disturb the altimeter. The
+         LED will remain dark during the one minute delay, but after
+         that, it will start blinking once every 3 seconds.
        </para>
       </listitem>
       <listitem>
        <para>
-         Fly the rocket. Once the rocket passes about 4m in height
-         (13 feet), the micro-controller will record the ground
+         Fly the rocket. Once the rocket passes about 30m in height
+         (100 feet), the micro-controller will record the ground
          pressure and track the pressure seen during the flight. In
          this mode, the LED flickers rapidly. When the rocket lands,
          and the pressure stabilizes, the micro-controller will record
@@ -103,8 +164,7 @@ NAR #88757, TRA #12200
       </listitem>
       <listitem>
        <para>
-         Recover the data. Turn MicroPeak off for a couple of seconds
-         (to discharge the capacitors) and then back on. MicroPeak
+         Recover the data. Turn MicroPeak off and then back on. MicroPeak
          will blink out the maximum height for the last flight. Turn
          MicroPeak back off to conserve battery power.
        </para>
@@ -129,14 +189,13 @@ NAR #88757, TRA #12200
       to keep conductive material from coming in contact with the exposed metal elements.
     </para>
     <para>
-      The barometric sensors used in MicroPeak is
-      sensitive to sunlight. Please consider this when
-      designing an installation, for example, in an air-frame with a
-      see-through plastic payload bay. 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 used in MicroPeak is sensitive to
+      sunlight. Please consider this when designing an
+      installation. 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 ports must be able to "breathe",
@@ -150,6 +209,303 @@ NAR #88757, TRA #12200
       charge gasses.
     </para>
   </chapter>
+  <chapter>
+    <title>The MicroPeak USB adapter</title>
+    <informalfigure>
+      <mediaobject>
+       <imageobject>
+         <imagedata fileref="MicroPeakUSB-2.0.jpg" width="4.5in"/>
+       </imageobject>
+      </mediaobject>
+    </informalfigure>
+    <para>
+      MicroPeak stores barometric pressure information for the first
+      48 seconds of the flight in on-board non-volatile memory. The
+      contents of this memory can be downloaded to a computer using
+      the MicroPeak USB adapter.
+    </para>
+    <section>
+      <title>Installing the MicroPeak software</title>
+      <para>
+       The MicroPeak application runs on Linux, Mac OS X and
+       Windows. You can download the latest version from
+       <ulink url="http://altusmetrum.org/AltOS"/>.
+      </para>
+      <para>
+       On Mac OS X and Windows, the FTDI USB device driver needs to
+       be installed. A compatible version of this driver is included
+       with the MicroPeak application, but you may want to download a
+       newer version from <ulink
+       url="http://www.ftdichip.com/FTDrivers.htm"/>.
+      </para>
+    </section>
+    <section>
+      <title>Downloading Micro Peak data</title>
+      <itemizedlist>
+       <listitem>
+         <para>
+           Plug the MicroPeak USB adapter in to your computer.
+         </para>
+       </listitem>
+       <listitem>
+         <?dbfo keep-together="always"?>
+         <para>
+           Start the MicroPeak application.
+         </para>
+         <informalfigure>
+           <mediaobject>
+             <imageobject>
+               <imagedata fileref="micropeak-nofont.svg" width="0.5in"/>
+             </imageobject>
+           </mediaobject>
+         </informalfigure>
+       </listitem>
+       <listitem>
+         <?dbfo keep-together="always"?>
+         <para>
+            Click on the Download button at the top of the window.
+         </para>
+         <informalfigure>
+           <mediaobject>
+             <imageobject>
+               <imagedata fileref="micropeak-app.png" width="4.5in"/>
+             </imageobject>
+           </mediaobject>
+         </informalfigure>
+       </listitem>
+       <listitem>
+         <?dbfo keep-together="always"?>
+         <para>
+           Select from the listed devices. There will probably be
+           only one.
+         </para>
+         <informalfigure>
+           <mediaobject>
+             <imageobject>
+               <imagedata fileref="micropeak-device-dialog.png" width="2.3in"/>
+             </imageobject>
+           </mediaobject>
+         </informalfigure>
+       </listitem>
+       <listitem>
+         <para>
+           The application will now wait until it receives valid data
+           from the MicroPeak USB adapter.
+         </para>
+         <informalfigure>
+           <mediaobject>
+             <imageobject>
+               <imagedata fileref="micropeak-download.png" width="2in"/>
+             </imageobject>
+           </mediaobject>
+         </informalfigure>
+         <para>
+           The MicroPeak USB adapter has a small phototransistor
+           under the hole in the center of the box.
+           Locate this, turn on the MicroPeak and place the orange LED on the MicroPeak
+           directly inside the hole, resting the MicroPeak itself on
+           the box. You should see the blue LED on the MicroPeak USB
+           adapter blinking in time with the orange LED on the
+           MicroPeak board itself.
+         </para>
+         <informalfigure>
+           <mediaobject>
+             <imageobject>
+               <imagedata fileref="MicroPeakUSB-2.0-inuse.jpg" width="4.5in"/>
+             </imageobject>
+           </mediaobject>
+         </informalfigure>
+       </listitem>
+       <listitem>
+         <?dbfo keep-together="always"?>
+         <para>
+           After the maximum flight height is reported, MicroPeak will
+           pause for a few seconds, blink the LED four times rapidly
+           and then send the data in one long blur on the LED. The
+           MicroPeak application should receive the data. When it does,
+           it will present the data in a graph and offer to save the
+           data to a file. If not, you can power cycle the MicroPeak
+           board and try again.
+         </para>
+         <informalfigure>
+           <mediaobject>
+             <imageobject>
+               <imagedata fileref="micropeak-save-dialog.png" width="2.3in"/>
+             </imageobject>
+           </mediaobject>
+         </informalfigure>
+       </listitem>
+       <listitem>
+         <?dbfo keep-together="always"?>
+         <para>
+           Once the data are saved, a graph will be displayed with
+           height, speed and acceleration values computed from the
+           recorded barometric pressure data. See the next section
+           for more details on that.
+         </para>
+       </listitem>
+      </itemizedlist>
+    </section>
+    <section>
+      <title>Analyzing MicroPeak Data</title>
+      <para>
+       The MicroPeak application can present flight data in the form
+       of a graph, a collection of computed statistics or in tabular
+       form.
+      </para>
+      <para>
+       MicroPeak collects raw barometric pressure data which is
+       then used to compute the remaining data. Altitude is computed
+       through a standard atmospheric model. Absolute error in this
+       data will be affected by local atmospheric
+       conditions. Fortunately, these errors tend to mostly cancel
+       out, so the error in the height computation is much smaller
+       than the error in altitude would be.
+      </para>
+      <para>
+       Speed and acceleration are computed by first smoothing the
+       height data with a Gaussian window averaging filter. For speed
+       data, this average uses seven samples. For acceleration data,
+       eleven samples are used. These were chosen to provide
+       reasonably smooth speed and acceleration data, which would
+       otherwise be swamped with noise.
+      </para>
+      <para>
+       The File menu has operations to open existing flight logs,
+       Download new data from MicroPeak, Save a copy of the flight
+       log to a new file, Export the tabular data (as seen in the Raw
+       Data tab) to a file, change the application Preferences, Close
+       the current window or close all windows and Exit the
+       application.
+      </para>
+      <section>
+       <title>MicroPeak Graphs</title>
+       <para>
+         Under the Graph tab, the height, speed and acceleration values
+         are displayed together. You can zoom in on the graph by
+         clicking and dragging to sweep out an area of
+         interest. Right-click on the plot to bring up a menu that will
+         let you save, copy or print the graph.
+       </para>
+       <informalfigure>
+         <mediaobject>
+           <imageobject>
+             <imagedata fileref="micropeak-graph.png" width="4.5in"/>
+           </imageobject>
+         </mediaobject>
+       </informalfigure>
+      </section>
+      <section>
+       <title>MicroPeak Flight Statistics</title>
+       <para>
+         The Statistics tab presents overall data from the flight. Note
+         that the Maximum height value is taken from the minumum
+         pressure captured in flight, and may be different from the
+         apparant apogee value as the on-board data are sampled twice
+         as fast as the recorded values, or because the true apogee
+         occurred after the on-board memory was full. Each value is
+         presented in several units as appropriate.
+       </para>
+       <informalfigure>
+         <mediaobject>
+           <imageobject>
+             <imagedata fileref="micropeak-statistics.png" width="4.5in"/>
+           </imageobject>
+         </mediaobject>
+       </informalfigure>
+      </section>
+      <section>
+       <title>Raw Data</title>
+       <para>
+         A table consisting of the both the raw barometric pressure
+         data and values computed from that for each recorded time.
+       </para>
+       <informalfigure>
+         <mediaobject>
+           <imageobject>
+             <imagedata fileref="micropeak-raw-data.png" width="4.5in"/>
+           </imageobject>
+         </mediaobject>
+       </informalfigure>
+      </section>
+      <section>
+       <title>Configuring the Graph</title>
+       <para>
+         This selects which graph elements to show, and lets you
+         switch between metric and imperial units
+       </para>
+       <informalfigure>
+         <mediaobject>
+           <imageobject>
+             <imagedata fileref="micropeak-graph-configure.png" width="4.5in"/>
+           </imageobject>
+         </mediaobject>
+       </informalfigure>
+      </section>
+    </section>
+    <section>
+      <title>Setting MicroPeak Preferences</title>
+      <informalfigure>
+       <mediaobject>
+         <imageobject>
+           <imagedata fileref="micropeak-preferences.png" width="1.8in"/>
+         </imageobject>
+       </mediaobject>
+      </informalfigure>
+      <para>
+       The MicroPeak application has a few user settings which are
+       configured through the Preferences dialog, which can be
+       accessed from the File menu.
+      <itemizedlist>
+       <listitem>
+         <para>
+           The Log Directory is where flight data will be saved to
+           and loaded from by default. Of course, you can always
+           navigate to other directories in the file chooser windows,
+           this setting is just the starting point.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           If you prefer to see your graph data in feet and
+           miles per hour instead of meters and meters per second,
+           you can select Imperial Units.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           To see what data is actually arriving over the serial
+           port, start the MicroPeak application from a command
+           prompt and select the Serial Debug option. This can be
+           useful in debugging serial communication problems, but
+           most people need never choose this.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           You can adjust the size of the text in the Statistics tab
+           by changing the Font size preference. There are three
+           settings, with luck one will both fit on your screen and
+           provide readable values.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           The Look &amp; feel menu shows a list of available
+           application appearance choices. By default, the MicroPeak
+           application tries to blend in with other applications, but
+           you may choose some other appearance if you like.
+         </para>
+       </listitem>
+      </itemizedlist>
+      </para>
+      <para>
+       Note that MicroPeak shares a subset of the AltosUI
+       preferences, so if you use both of these applications, change
+       in one application will affect the other.
+      </para>
+    </section>
+  </chapter>
   <chapter>
     <title>Technical Information</title>
     <section>
@@ -167,9 +523,11 @@ NAR #88757, TRA #12200
       </para>
       <para>
        Ground pressure is computed from an average of 16 samples,
-       taken while the altimeter is at rest. Flight pressure is
-       computed from an exponential IIR filter designed to smooth out
-       transients caused by mechanical stress on the barometer.
+       taken while the altimeter is at rest. The flight pressure used to
+       report maximum height is computed from a Kalman filter
+       designed to smooth out any minor noise in the sensor
+       values. The flight pressure recorded to non-volatile storage
+       is unfiltered, coming directly from the pressure sensor.
       </para>
     </section>
     <section>
@@ -191,8 +549,8 @@ NAR #88757, TRA #12200
     <section>
       <title>Lithium Battery</title>
       <para>
-       The CR1025 battery used by MicroPeak holes 30mAh of power,
-       which is sufficient to run for over 15 hours. Because
+       The CR1025 battery used by MicroPeak holds 30mAh of power,
+       which is sufficient to run for over 40 hours. Because
        MicroPeak powers down on landing, run time includes only time
        sitting on the launch pad or during flight.
       </para>
@@ -205,10 +563,10 @@ NAR #88757, TRA #12200
        with the negative battery terminal.
       </para>
       <para>
-       Shipping restrictions prevent us from including a CR1025
-       battery with MicroPeak. Many stores carry CR1025 batteries as
-       they are commonly used in small electronic devices such as
-       flash lights.
+       Shipping restrictions may prevent us from including a CR1025
+       battery with MicroPeak. If so, many stores carry CR1025
+       batteries as they are commonly used in small electronic
+       devices such as flash lights.
       </para>
     </section>
     <section>
@@ -216,14 +574,14 @@ NAR #88757, TRA #12200
       <para>
        MicroPeak contains a fixed atmospheric model which is used to
        convert barometric pressure into altitude. The model was
-       converted into a 469-element piece wise linear approximation
+       converted into a 469-element piece-wise linear approximation
        which is then used to compute the altitude of the ground and
        apogee. The difference between these represents the maximum
        height of the flight.
       </para>
       <para>
        The model assumes a particular set of atmospheric conditions,
-       which while a reasonable average cannot represent the changing
+       which, while a reasonable average, cannot represent the changing
        nature of the real atmosphere. Fortunately, for flights
        reasonably close to the ground, the effect of this global
        inaccuracy are largely canceled out when the computed ground
@@ -231,6 +589,11 @@ NAR #88757, TRA #12200
        the resulting height is more accurate than either the ground
        or apogee altitudes.
       </para>
+      <para>
+       Because the raw pressure data is recorded to non-volatile
+       storage, you can use that, along with a more sophisticated
+       atmospheric model, to compute your own altitude values.
+      </para>
     </section>
     <section>
       <title>Mechanical Considerations</title>
@@ -254,6 +617,119 @@ NAR #88757, TRA #12200
        serve to further protect the switch from launch forces.
       </para>
     </section>
+    <section>
+      <title>On-board data storage</title>
+      <para>
+       The ATtiny85 has 512 bytes of non-volatile storage, separate
+       from the code storage memory. The MicroPeak firmware uses this
+       to store information about the last completed
+       flight. Barometric measurements from the ground before launch
+       and at apogee are stored, and used at power-on to compute the
+       height of the last flight.
+      </para>
+      <para>
+       In addition to the data used to present the height of the last
+       flight, MicroPeak also stores barometric information sampled
+       at regular intervals during the flight. This is the
+       information captured with the MicroPeak USB adapter. It can
+       also be read from MicroPeak through any AVR programming
+       tool.
+      </para>
+      <table frame='all'>
+       <title>MicroPeak EEPROM Data Storage</title>
+       <tgroup cols='3' align='center' colsep='1' rowsep='1'>
+         <colspec align='center' colwidth='2*' colname='Address'/>
+         <colspec align='center' colwidth='*' colname='Size (bytes)'/>
+         <colspec align='left' colwidth='7*' colname='Description'/>
+         <thead>
+           <row>
+             <entry align='center'>Address</entry>
+             <entry align='center'>Size (bytes)</entry>
+             <entry align='center'>Description</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>0x000</entry>
+             <entry>4</entry>
+             <entry>Average ground pressure (Pa)</entry>
+           </row>
+           <row>
+             <entry>0x004</entry>
+             <entry>4</entry>
+             <entry>Minimum flight pressure (Pa)</entry>
+           </row>
+           <row>
+             <entry>0x008</entry>
+             <entry>2</entry>
+             <entry>Number of in-flight samples</entry>
+           </row>
+           <row>
+             <entry>0x00a … 0x1fe</entry>
+             <entry>2</entry>
+             <entry>Instantaneous flight pressure (Pa) low 16 bits</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+      <para>
+       All EEPROM data are stored least-significant byte first. The
+       instantaneous flight pressure data are stored without the
+       upper 16 bits of data. The upper bits can be reconstructed
+       from the previous sample, assuming that pressure doesn't
+       change by more more than 32kPa in a single sample
+       interval. Note that this pressure data is <emphasis>not</emphasis>
+       filtered in any way, while both the recorded ground and apogee
+       pressure values are, so you shouldn't expect the minimum
+       instantaneous pressure value to match the recorded minimum
+       pressure value exactly.
+      </para>
+      <para>
+       MicroPeak samples pressure every 96ms, but stores only every
+       other sample in the EEPROM. This provides for 251 pressure
+       samples at 192ms intervals, or 48.192s of storage. The clock
+       used for these samples is a factory calibrated RC circuit
+       built into the ATtiny85 and is accurate only to within ±10% at
+       25°C. So, you can count on the pressure data being accurate,
+       but speed or acceleration data computed from this will be
+       limited by the accuracy of this clock.
+      </para>
+    </section>
+    <section>
+      <title>MicroPeak Programming Interface</title>
+      <para>
+       MicroPeak exposes a standard 6-pin AVR programming interface,
+       but not using the usual 2x3 array of pins on 0.1"
+       centers. Instead, there is a single row of tiny 0.60mm ×
+       0.85mm pads on 1.20mm centers exposed near the edge of the
+       circuit board. We couldn't find any connector that was
+       small enough to include on the circuit board.
+      </para>
+      <para>
+       In lieu of an actual connector, the easiest way to connect to
+       the bare pads is through a set of Pogo pins. These
+       spring-loaded contacts are designed to connect in precisely
+       this way. We've designed a programming jig, the MicroPeak
+       Pogo Pin board which provides a standard AVR interface on one
+       end and a recessed slot for MicroPeak to align the board with
+       the Pogo Pins.
+      </para>
+      <para>
+       The MicroPeak Pogo Pin board is not a complete AVR programmer,
+       it is an interface board that provides a 3.3V regulated power
+       supply to run the MicroPeak via USB and a standard 6-pin AVR
+       programming interface with the usual 2x3 grid of pins on 0.1"
+       centers. This can be connected to any AVR programming
+       dongle.
+      </para>
+      <para>
+       The AVR programming interface cannot run faster than ¼ of the
+       AVR CPU clock frequency. Because MicroPeak runs at 250kHz to
+       save power, you must configure your AVR programming system to
+       clock the AVR programming interface at no faster than
+       62.5kHz, or a clock period of 32µS.
+      </para>
+    </section>
   </chapter>
 </book>
 <!--  LocalWords:  Altusmetrum MicroPeak