doc: Get altusmetrum.xsl to validate
[fw/altos] / doc / micropeak.xsl
1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3   "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
4 <book>
5   <title>MicroPeak Owner's Manual</title>
6   <subtitle>A recording altimeter for hobby rocketry</subtitle>
7   <bookinfo>
8     <author>
9       <firstname>Keith</firstname>
10       <surname>Packard</surname>
11     </author>
12     <copyright>
13       <year>2012</year>
14       <holder>Bdale Garbee and Keith Packard</holder>
15     </copyright>
16     <legalnotice>
17       <para>
18         This document is released under the terms of the
19         <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
20           Creative Commons ShareAlike 3.0
21         </ulink>
22         license.
23       </para>
24     </legalnotice>
25     <revhistory>
26       <revision>
27         <revnumber>0.1</revnumber>
28         <date>29 October 2012</date>
29         <revremark>
30           Initial release with preliminary hardware.
31         </revremark>
32       </revision>
33       <revision>
34         <revnumber>1.0</revnumber>
35         <date>18 November 2012</date>
36         <revremark>
37           Updates for version 1.0 release.
38         </revremark>
39       </revision>
40       <revision>
41         <revnumber>1.1</revnumber>
42         <date>12 December 2012</date>
43         <revremark>
44           Add comments about EEPROM storage format and programming jig.
45         </revremark>
46       </revision>
47       <revision>
48         <revnumber>1.2</revnumber>
49         <date>20 January 2013</date>
50         <revremark>
51           Add documentation for the MicroPeak USB adapter board. Note
52           the switch to a Kalman filter for peak altitude
53           determination.
54         </revremark>
55       </revision>
56     </revhistory>
57   </bookinfo>
58   <acknowledgements>
59     <para>
60       Thanks to John Lyngdal for suggesting that we build something like this.
61     </para>
62     <para>
63       Have fun using these products, and we hope to meet all of you
64       out on the rocket flight line somewhere.
65       <literallayout>
66 Bdale Garbee, KB0G
67 NAR #87103, TRA #12201
68
69 Keith Packard, KD7SQG
70 NAR #88757, TRA #12200
71       </literallayout>
72     </para>
73   </acknowledgements>
74   <chapter>
75     <title>Quick Start Guide</title>
76     <para>
77       MicroPeak is designed to be easy to use. Requiring no external
78       components, flying takes just a few steps
79     </para>
80     <itemizedlist>
81       <listitem>
82         <para>
83           Install the battery. Fit a CR1025 battery into the plastic
84           carrier. The positive (+) terminal should be towards the more
85           open side of the carrier. Slip the carrier into the battery
86           holder with the positive (+) terminal facing away from the
87           circuit board.
88         </para>
89       </listitem>
90       <listitem>
91         <para>
92           Install MicroPeak in your rocket. This can be as simple as
93           preparing a soft cushion of wadding inside a vented model payload
94           bay. Wherever you mount it, make sure you protect the
95           barometric sensor from corrosive ejection gasses as those
96           will damage the sensor, and shield it from light as that can
97           cause incorrect sensor readings.
98         </para>
99       </listitem>
100       <listitem>
101         <para>
102           Turn MicroPeak on. Slide the switch so that the actuator
103           covers the '1' printed on the board. MicroPeak will report
104           the maximum height of the last flight in decimeters using a
105           sequence of flashes on the LED. A sequence of short flashes
106           indicates one digit. A single long flash indicates zero. The
107           height is reported in decimeters, so the last digit will be
108           tenths of a meter. For example, if MicroPeak reports 5 4 4
109           3, then the maximum height of the last flight was 544.3m, or
110           1786 feet.
111         </para>
112       </listitem>
113       <listitem>
114         <para>
115           Finish preparing the rocket for flight. After the
116           previous flight data have been reported, MicroPeak waits for
117           30 seconds before starting to check for launch. This gives
118           you time to finish assembling the rocket. As those
119           activities might cause pressure changes inside the airframe,
120           MicroPeak might accidentally detect boost. If you need to do
121           anything to the airframe after the 30 second window passes,
122           make sure to be careful not to disturb the altimeter. The
123           LED will remain dark during the 30 second delay, but after
124           that, it will start blinking once every 3 seconds.
125         </para>
126       </listitem>
127       <listitem>
128         <para>
129           Fly the rocket. Once the rocket passes about 10m in height
130           (32 feet), the micro-controller will record the ground
131           pressure and track the pressure seen during the flight. In
132           this mode, the LED flickers rapidly. When the rocket lands,
133           and the pressure stabilizes, the micro-controller will record
134           the minimum pressure pressure experienced during the flight,
135           compute the height represented by the difference in air
136           pressure and blink that value out on the LED. After that,
137           MicroPeak powers down to conserve battery power.
138         </para>
139       </listitem>
140       <listitem>
141         <para>
142           Recover the data. Turn MicroPeak off and then back on. MicroPeak
143           will blink out the maximum height for the last flight. Turn
144           MicroPeak back off to conserve battery power.
145         </para>
146       </listitem>
147     </itemizedlist>
148   </chapter>
149   <chapter>
150     <title>Handling Precautions</title>
151     <para>
152       All Altus Metrum products are sophisticated electronic devices.  
153       When handled gently and properly installed in an air-frame, they
154       will deliver impressive results.  However, as with all electronic 
155       devices, there are some precautions you must take.
156     </para>
157     <para>
158       The CR1025 Lithium batteries have an
159       extraordinary power density.  This is great because we can fly with
160       much less battery mass... but if they are punctured
161       or their contacts are allowed to short, they can and will release their
162       energy very rapidly!
163       Thus we recommend that you take some care when handling MicroPeak
164       to keep conductive material from coming in contact with the exposed metal elements.
165     </para>
166     <para>
167       The barometric sensor used in MicroPeak is sensitive to
168       sunlight. Please consider this when designing an
169       installation. Many model rockets with payload bays use clear
170       plastic for the payload bay. Replacing these with an opaque
171       cardboard tube, painting them, or wrapping them with a layer of
172       masking tape are all reasonable approaches to keep the sensor
173       out of direct sunlight.
174     </para>
175     <para>
176       The barometric sensor sampling ports must be able to "breathe",
177       both by not being covered by foam or tape or other materials that might
178       directly block the hole on the top of the sensor, and also by having a
179       suitable static vent to outside air.
180     </para>
181     <para>
182       As with all other rocketry electronics, Altus Metrum altimeters must 
183       be protected from exposure to corrosive motor exhaust and ejection 
184       charge gasses.
185     </para>
186   </chapter>
187   <chapter>
188     <title>The MicroPeak USB adapter</title>
189     <para>
190       MicroPeak stores barometric pressure information for the first
191       48 seconds of the flight in on-board non-volatile memory. The
192       contents of this memory can be downloaded to a computer using
193       the MicroPeak USB adapter.
194     </para>
195     <section>
196       <title>Installing the MicroPeak software</title>
197       <para>
198         The MicroPeak application runs on Linux, Mac OS X and
199         Windows. You can download the latest version from
200         <ulink url="http://altusmetrum.org/AltOS"/>.
201       </para>
202       <para>
203         On Mac OS X and Windows, the FTDI USB device driver needs to
204         be installed. A compatible version of this driver is included
205         with the MicroPeak application, but you may want to download a
206         newer version from <ulink
207         url="http://www.ftdichip.com/FTDrivers.htm"/>.
208       </para>
209     </section>
210     <section>
211       <title>Downloading Micro Peak data</title>
212       <itemizedlist>
213         <listitem>
214           <para>
215             Connect the MicroPeak USB adapter to a USB cable and plug it
216             in to your computer.
217           </para>
218         </listitem>
219         <listitem>
220           <para>
221             Start the MicroPeak application, locate the File menu and
222             select the Download entry.
223           </para>
224         </listitem>
225         <listitem>
226           <para>
227             The MicroPeak USB adapter has a small phototransistor on
228             the end of the board furthest from the USB
229             connector. Locate this and place the LED on the MicroPeak
230             directly in contact with it. The MicroPeak LED and the
231             MicroPeak USB adapter photo need to be touching—even a
232             millimeters of space between them will reduce the light
233             intensity from the LED enough that the phototransistor
234             will not sense it. Turn on the MicroPeak board and adjust
235             the position until the blue LED on the MicroPeak USB
236             adapter blinks in time with the orange LED on the
237             MicroPeak board.
238           </para>
239         </listitem>
240         <listitem>
241           <para>
242             After the maximum flight height is reported, MicroPeak will
243             pause for a few seconds, blink the LED four times rapidly
244             and then send the data in one long blur on the LED. The
245             MicroPeak application should receive the data. When it does,
246             it will present the data in a graph and offer to save the
247             data to a file. If not, you can power cycle the MicroPeak
248             board and try again.
249           </para>
250         </listitem>
251       </itemizedlist>
252     </section>
253     <section>
254       <title>Analyzing MicroPeak Data</title>
255       <para>
256         The MicroPeak application can present flight data in the form
257         of a graph, a collection of computed statistics or in tabular
258         form.
259       </para>
260       <para>
261         MicroPeak collects raw barometric pressure data which is
262         then used to compute the remaining data. Altitude is computed
263         through a standard atmospheric model. Absolute error in this
264         data will be affected by local atmospheric
265         conditions. Fortunately, these errors tend to mostly cancel
266         out, so the error in the height computation is much smaller
267         than the error in altitude would be.
268       </para>
269       <para>
270         Speed and acceleration are computed by first smoothing the
271         height data with a Gaussian window averaging filter. For speed
272         data, this average uses seven samples. For acceleration data,
273         eleven samples are used. These were chosen to provide
274         reasonably smooth speed and acceleration data, which would
275         otherwise be swamped with noise.
276       </para>
277       <para>
278         Under the Graph tab, the height, speed and acceleration values
279         are displayed together. You can zoom in on the graph by
280         clicking and dragging to sweep out an area of
281         interest. Right-click on the plot to bring up a menu that will
282         let you save, copy or print the graph.
283       </para>
284       <para>
285         The Statistics tab presents overall data from the flight. Note
286         that the Maximum height value is taken from the minumum
287         pressure captured in flight, and may be different from the
288         apparant apogee value as the on-board data are sampled twice
289         as fast as the recorded values, or because the true apogee
290         occurred after the on-board memory was full. Each value is
291         presented in several units as appropriate.
292       </para>
293       <para>
294         A table consisting of the both the raw barometric pressure
295         data and values computed from that for each recorded time.
296       </para>
297       <para>
298         The File menu has operations to open existing flight logs,
299         Download new data from MicroPeak, Save a copy of the flight
300         log to a new file, Export the tabular data (as seen in the Raw
301         Data tab) to a file, change the application Preferences, Close
302         the current window or close all windows and Exit the
303         application.
304       </para>
305     </section>
306     <section>
307       <title>Configuring the MicroPeak application</title>
308       <para>
309         The MicroPeak application has a few user settings which are
310         configured through the Preferences dialog, which can be
311         accessed from the File menu.
312       <itemizedlist>
313         <listitem>
314           <para>
315             The Log Directory is where flight data will be saved to
316             and loaded from by default. Of course, you can always
317             navigate to other directories in the file chooser windows,
318             this setting is just the starting point.
319           </para>
320         </listitem>
321         <listitem>
322           <para>
323             If you prefer to see your graph data in feet and
324             miles per hour instead of meters and meters per second,
325             you can select Imperial Units.
326           </para>
327         </listitem>
328         <listitem>
329           <para>
330             To see what data is actually arriving over the serial
331             port, start the MicroPeak application from a command
332             prompt and select the Serial Debug option. This can be
333             useful in debugging serial communication problems, but
334             most people need never choose this.
335           </para>
336         </listitem>
337         <listitem>
338           <para>
339             You can adjust the size of the text in the Statistics tab
340             by changing the Font size preference. There are three
341             settings, with luck one will both fit on your screen and
342             provide readable values.
343           </para>
344         </listitem>
345         <listitem>
346           <para>
347             The Look &amp; feel menu shows a list of available
348             application appearance choices. By default, the MicroPeak
349             application tries to blend in with other applications, but
350             you may choose some other appearance if you like.
351           </para>
352         </listitem>
353       </itemizedlist>
354       </para>
355       <para>
356         Note that MicroPeak shares a subset of the AltosUI
357         preferences, so if you use both of these applications, change
358         in one application will affect the other.
359       </para>
360     </section>
361   </chapter>
362   <chapter>
363     <title>Technical Information</title>
364     <section>
365       <title>Barometric Sensor</title>
366       <para>
367         MicroPeak uses the Measurement Specialties MS5607 sensor. This
368         has a range of 120kPa to 1kPa with an absolute accuracy of
369         150Pa and a resolution of 2.4Pa.
370       </para>
371       <para>
372         The pressure range corresponds roughly to an altitude range of
373         -1500m (-4900 feet) to 31000m (102000 feet), while the
374         resolution is approximately 20cm (8 inches) near sea level and
375         60cm (24in) at 10000m (33000 feet).
376       </para>
377       <para>
378         Ground pressure is computed from an average of 16 samples,
379         taken while the altimeter is at rest. Flight pressure is
380         computed from a Kalman filter designed to smooth out any minor
381         noise in the sensor values. 
382       </para>
383     </section>
384     <section>
385       <title>Micro-controller</title>
386       <para>
387         MicroPeak uses an Atmel ATtiny85 micro-controller. This tiny
388         CPU contains 8kB of flash for the application, 512B of RAM for
389         temporary data storage and 512B of EEPROM for non-volatile
390         storage of previous flight data.
391       </para>
392       <para>
393         The ATtiny85 has a low-power mode which turns off all of the
394         clocks and powers down most of the internal components. In
395         this mode, the chip consumes only .1μA of power. MicroPeak
396         uses this mode once the flight has ended to preserve battery
397         power.
398       </para>
399     </section>
400     <section>
401       <title>Lithium Battery</title>
402       <para>
403         The CR1025 battery used by MicroPeak holes 30mAh of power,
404         which is sufficient to run for over 40 hours. Because
405         MicroPeak powers down on landing, run time includes only time
406         sitting on the launch pad or during flight.
407       </para>
408       <para>
409         The large positive terminal (+) is usually marked, while the
410         smaller negative terminal is not. Make sure you install the
411         battery with the positive terminal facing away from the
412         circuit board where it will be in contact with the metal
413         battery holder. A small pad on the circuit board makes contact
414         with the negative battery terminal.
415       </para>
416       <para>
417         Shipping restrictions may prevent us from including a CR1025
418         battery with MicroPeak. If so, many stores carry CR1025
419         batteries as they are commonly used in small electronic
420         devices such as flash lights.
421       </para>
422     </section>
423     <section>
424       <title>Atmospheric Model</title>
425       <para>
426         MicroPeak contains a fixed atmospheric model which is used to
427         convert barometric pressure into altitude. The model was
428         converted into a 469-element piece wise linear approximation
429         which is then used to compute the altitude of the ground and
430         apogee. The difference between these represents the maximum
431         height of the flight.
432       </para>
433       <para>
434         The model assumes a particular set of atmospheric conditions,
435         which while a reasonable average cannot represent the changing
436         nature of the real atmosphere. Fortunately, for flights
437         reasonably close to the ground, the effect of this global
438         inaccuracy are largely canceled out when the computed ground
439         altitude is subtracted from the computed apogee altitude, so
440         the resulting height is more accurate than either the ground
441         or apogee altitudes.
442       </para>
443     </section>
444     <section>
445       <title>Mechanical Considerations</title>
446       <para>
447         MicroPeak is designed to be rugged enough for typical rocketry
448         applications. It contains two moving parts, the battery holder
449         and the power switch, which were selected for their
450         ruggedness.
451       </para>
452       <para>
453         The MicroPeak battery holder is designed to withstand impact
454         up to 150g without breaking contact (or, worse yet, causing
455         the battery to fall out). That means it should stand up to
456         almost any launch you care to try, and should withstand fairly
457         rough landings.
458       </para>
459       <para>
460         The power switch is designed to withstand up to 50g forces in
461         any direction. Because it is a sliding switch, orienting the
462         switch perpendicular to the direction of rocket travel will
463         serve to further protect the switch from launch forces.
464       </para>
465     </section>
466     <section>
467       <title>On-board data storage</title>
468       <para>
469         The ATtiny85 has 512 bytes of non-volatile storage, separate
470         from the code storage memory. The MicroPeak firmware uses this
471         to store information about the last completed
472         flight. Barometric measurements from the ground before launch
473         and at apogee are stored, and used at power-on to compute the
474         height of the last flight.
475       </para>
476       <para>
477         In addition to the data used to present the height of the last
478         flight, MicroPeak also stores barometric information sampled
479         at regular intervals during the flight. This information can
480         be extracted from MicroPeak through any AVR programming
481         tool.
482       </para>
483       <table frame='all'>
484         <title>MicroPeak EEPROM Data Storage</title>
485         <tgroup cols='3' align='center' colsep='1' rowsep='1'>
486           <colspec align='center' colwidth='2*' colname='Address'/>
487           <colspec align='center' colwidth='*' colname='Size (bytes)'/>
488           <colspec align='left' colwidth='7*' colname='Description'/>
489           <thead>
490             <row>
491               <entry align='center'>Address</entry>
492               <entry align='center'>Size (bytes)</entry>
493               <entry align='center'>Description</entry>
494             </row>
495           </thead>
496           <tbody>
497             <row>
498               <entry>0x000</entry>
499               <entry>4</entry>
500               <entry>Average ground pressure (Pa)</entry>
501             </row>
502             <row>
503               <entry>0x004</entry>
504               <entry>4</entry>
505               <entry>Minimum flight pressure (Pa)</entry>
506             </row>
507             <row>
508               <entry>0x008</entry>
509               <entry>2</entry>
510               <entry>Number of in-flight samples</entry>
511             </row>
512             <row>
513               <entry>0x00a … 0x1fe</entry>
514               <entry>2</entry>
515               <entry>Instantaneous flight pressure (Pa) low 16 bits</entry>
516             </row>
517           </tbody>
518         </tgroup>
519       </table>
520       <para>
521         All EEPROM data are stored least-significant byte first. The
522         instantaneous flight pressure data are stored without the
523         upper 16 bits of data. The upper bits can be reconstructed
524         from the previous sample, assuming that pressure doesn't
525         change by more more than 32kPa in a single sample
526         interval. Note that this pressure data is <emphasis>not</emphasis>
527         filtered in any way, while both the recorded ground and apogee
528         pressure values are, so you shouldn't expect the minimum
529         instantaneous pressure value to match the recorded minimum
530         pressure value exactly.
531       </para>
532       <para>
533         MicroPeak samples pressure every 96ms, but stores only every
534         other sample in the EEPROM. This provides for 251 pressure
535         samples at 192ms intervals, or 48.192s of storage. The clock
536         used for these samples is a factory calibrated RC circuit
537         built into the ATtiny85 and is accurate only to within ±10% at
538         25°C. So, you can count on the pressure data being accurate,
539         but speed or acceleration data computed from this will be
540         limited by the accuracy of this clock.
541       </para>
542     </section>
543     <section>
544       <title>MicroPeak Programming Interface</title>
545       <para>
546         MicroPeak exposes a standard 6-pin AVR programming interface,
547         but not using the usual 2x3 array of pins on 0.1"
548         centers. Instead, there is a single row of tiny 0.60mm ×
549         0.85mm pads on 1.20mm centers exposed near the edge of the
550         circuit board. We couldn't find any connector that was
551         small enough to include on the circuit board.
552       </para>
553       <para>
554         In lieu of an actual connector, the easiest way to connect to
555         the bare pads is through a set of Pogo pins. These
556         spring-loaded contacts are designed to connect in precisely
557         this way. We've designed a programming jig, the MicroPeak
558         Pogo Pin board which provides a standard AVR interface on one
559         end and a recessed slot for MicroPeak to align the board with
560         the Pogo Pins.
561       </para>
562       <para>
563         The MicroPeak Pogo Pin board is not a complete AVR programmer,
564         it is an interface board that provides a 3.3V regulated power
565         supply to run the MicroPeak via USB and a standard 6-pin AVR
566         programming interface with the usual 2x3 grid of pins on 0.1"
567         centers. This can be connected to any AVR programming
568         dongle.
569       </para>
570       <para>
571         The AVR programming interface cannot run faster than ¼ of the
572         AVR CPU clock frequency. Because MicroPeak runs at 250kHz to
573         save power, you must configure your AVR programming system to
574         clock the AVR programming interface at no faster than
575         62.5kHz, or a clock period of 32µS.
576       </para>
577     </section>
578   </chapter>
579 </book>
580 <!--  LocalWords:  Altusmetrum MicroPeak
581 -->