Oops, put µPUSB history link below the logo
[web/altusmetrum] / AltOS / doc / micropeak.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>MicroPeak Owner's Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="idm6245264"></a>MicroPeak Owner's Manual</h1></div><div><h2 class="subtitle">A recording altimeter for hobby rocketry</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Keith</span> <span class="surname">Packard</span></h3></div></div><div><p class="copyright">Copyright © 2012 Bdale Garbee and Keith Packard</p></div><div><div class="legalnotice"><a name="idp48058064"></a><p>
2         This document is released under the terms of the
3         <a class="ulink" href="http://creativecommons.org/licenses/by-sa/3.0/" target="_top">
4           Creative Commons ShareAlike 3.0
5         </a>
6         license.
7       </p></div></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.1</td><td align="left">29 October 2012</td></tr><tr><td align="left" colspan="2">
8           Initial release with preliminary hardware.
9         </td></tr><tr><td align="left">Revision 1.0</td><td align="left">18 November 2012</td></tr><tr><td align="left" colspan="2">
10           Updates for version 1.0 release.
11         </td></tr><tr><td align="left">Revision 1.1</td><td align="left">12 December 2012</td></tr><tr><td align="left" colspan="2">
12           Add comments about EEPROM storage format and programming jig.
13         </td></tr><tr><td align="left">Revision 1.2</td><td align="left">20 January 2013</td></tr><tr><td align="left" colspan="2">
14           Add documentation for the MicroPeak USB adapter board. Note
15           the switch to a Kalman filter for peak altitude
16           determination.
17         </td></tr></table></div></div></div><hr></div><div class="dedication"><div class="titlepage"><div><div><h1 class="title"><a name="idp47885280"></a>Acknowledgements</h1></div></div></div><p>
18       Thanks to John Lyngdal for suggesting that we build something like this.
19     </p><p>
20       Have fun using these products, and we hope to meet all of you
21       out on the rocket flight line somewhere.
22       </p><div class="literallayout"><p><br>
23 Bdale Garbee, KB0G<br>
24 NAR #87103, TRA #12201<br>
25 <br>
26 Keith Packard, KD7SQG<br>
27 NAR #88757, TRA #12200<br>
28       </p></div><p>
29     </p></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="#idp48960176">1. Quick Start Guide</a></span></dt><dt><span class="chapter"><a href="#idp48969664">2. Handling Precautions</a></span></dt><dt><span class="chapter"><a href="#idp53493376">3. The MicroPeak USB adapter</a></span></dt><dd><dl><dt><span class="section"><a href="#idp53494704">1. Installing the MicroPeak software</a></span></dt><dt><span class="section"><a href="#idp53497792">2. Downloading Micro Peak data</a></span></dt><dt><span class="section"><a href="#idp53503952">3. Analyzing MicroPeak Data</a></span></dt><dt><span class="section"><a href="#idp47886320">4. Configuring the MicroPeak application</a></span></dt></dl></dd><dt><span class="chapter"><a href="#idp47894112">4. Technical Information</a></span></dt><dd><dl><dt><span class="section"><a href="#idp47894784">1. Barometric Sensor</a></span></dt><dt><span class="section"><a href="#idp47897392">2. Micro-controller</a></span></dt><dt><span class="section"><a href="#idp47899744">3. Lithium Battery</a></span></dt><dt><span class="section"><a href="#idp47902528">4. Atmospheric Model</a></span></dt><dt><span class="section"><a href="#idp47904928">5. Mechanical Considerations</a></span></dt><dt><span class="section"><a href="#idp47907680">6. On-board data storage</a></span></dt><dt><span class="section"><a href="#idp54636384">7. MicroPeak Programming Interface</a></span></dt></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>4.1. <a href="#idp47909744">MicroPeak EEPROM Data Storage</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="idp48960176"></a>Chapter 1. Quick Start Guide</h1></div></div></div><p>
30       MicroPeak is designed to be easy to use. Requiring no external
31       components, flying takes just a few steps
32     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
33           Install the battery. Fit a CR1025 battery into the plastic
34           carrier. The positive (+) terminal should be towards the more
35           open side of the carrier. Slip the carrier into the battery
36           holder with the positive (+) terminal facing away from the
37           circuit board.
38         </p></li><li class="listitem"><p>
39           Install MicroPeak in your rocket. This can be as simple as
40           preparing a soft cushion of wadding inside a vented model payload
41           bay. Wherever you mount it, make sure you protect the
42           barometric sensor from corrosive ejection gasses as those
43           will damage the sensor, and shield it from light as that can
44           cause incorrect sensor readings.
45         </p></li><li class="listitem"><p>
46           Turn MicroPeak on. Slide the switch so that the actuator
47           covers the '1' printed on the board. MicroPeak will report
48           the maximum height of the last flight in decimeters using a
49           sequence of flashes on the LED. A sequence of short flashes
50           indicates one digit. A single long flash indicates zero. The
51           height is reported in decimeters, so the last digit will be
52           tenths of a meter. For example, if MicroPeak reports 5 4 4
53           3, then the maximum height of the last flight was 544.3m, or
54           1786 feet.
55         </p></li><li class="listitem"><p>
56           Finish preparing the rocket for flight. After the
57           previous flight data have been reported, MicroPeak waits for
58           one minute before starting to check for launch. This gives
59           you time to finish assembling the rocket. As those
60           activities might cause pressure changes inside the airframe,
61           MicroPeak might accidentally detect boost. If you need to do
62           anything to the airframe after the one minute window passes,
63           make sure to be careful not to disturb the altimeter. The
64           LED will remain dark during the one minute delay, but after
65           that, it will start blinking once every 3 seconds.
66         </p></li><li class="listitem"><p>
67           Fly the rocket. Once the rocket passes about 30m in height
68           (100 feet), the micro-controller will record the ground
69           pressure and track the pressure seen during the flight. In
70           this mode, the LED flickers rapidly. When the rocket lands,
71           and the pressure stabilizes, the micro-controller will record
72           the minimum pressure pressure experienced during the flight,
73           compute the height represented by the difference in air
74           pressure and blink that value out on the LED. After that,
75           MicroPeak powers down to conserve battery power.
76         </p></li><li class="listitem"><p>
77           Recover the data. Turn MicroPeak off and then back on. MicroPeak
78           will blink out the maximum height for the last flight. Turn
79           MicroPeak back off to conserve battery power.
80         </p></li></ul></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="idp48969664"></a>Chapter 2. Handling Precautions</h1></div></div></div><p>
81       All Altus Metrum products are sophisticated electronic devices.  
82       When handled gently and properly installed in an air-frame, they
83       will deliver impressive results.  However, as with all electronic 
84       devices, there are some precautions you must take.
85     </p><p>
86       The CR1025 Lithium batteries have an
87       extraordinary power density.  This is great because we can fly with
88       much less battery mass... but if they are punctured
89       or their contacts are allowed to short, they can and will release their
90       energy very rapidly!
91       Thus we recommend that you take some care when handling MicroPeak
92       to keep conductive material from coming in contact with the exposed metal elements.
93     </p><p>
94       The barometric sensor used in MicroPeak is sensitive to
95       sunlight. Please consider this when designing an
96       installation. Many model rockets with payload bays use clear
97       plastic for the payload bay. Replacing these with an opaque
98       cardboard tube, painting them, or wrapping them with a layer of
99       masking tape are all reasonable approaches to keep the sensor
100       out of direct sunlight.
101     </p><p>
102       The barometric sensor sampling ports must be able to "breathe",
103       both by not being covered by foam or tape or other materials that might
104       directly block the hole on the top of the sensor, and also by having a
105       suitable static vent to outside air.
106     </p><p>
107       As with all other rocketry electronics, Altus Metrum altimeters must 
108       be protected from exposure to corrosive motor exhaust and ejection 
109       charge gasses.
110     </p></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="idp53493376"></a>Chapter 3. The MicroPeak USB adapter</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#idp53494704">1. Installing the MicroPeak software</a></span></dt><dt><span class="section"><a href="#idp53497792">2. Downloading Micro Peak data</a></span></dt><dt><span class="section"><a href="#idp53503952">3. Analyzing MicroPeak Data</a></span></dt><dt><span class="section"><a href="#idp47886320">4. Configuring the MicroPeak application</a></span></dt></dl></div><p>
111       MicroPeak stores barometric pressure information for the first
112       48 seconds of the flight in on-board non-volatile memory. The
113       contents of this memory can be downloaded to a computer using
114       the MicroPeak USB adapter.
115     </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp53494704"></a>1. Installing the MicroPeak software</h2></div></div></div><p>
116         The MicroPeak application runs on Linux, Mac OS X and
117         Windows. You can download the latest version from
118         <a class="ulink" href="http://altusmetrum.org/AltOS" target="_top">http://altusmetrum.org/AltOS</a>.
119       </p><p>
120         On Mac OS X and Windows, the FTDI USB device driver needs to
121         be installed. A compatible version of this driver is included
122         with the MicroPeak application, but you may want to download a
123         newer version from <a class="ulink" href="http://www.ftdichip.com/FTDrivers.htm" target="_top">http://www.ftdichip.com/FTDrivers.htm</a>.
124       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp53497792"></a>2. Downloading Micro Peak data</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
125             Connect the MicroPeak USB adapter to a USB cable and plug it
126             in to your computer.
127           </p></li><li class="listitem"><p>
128             Start the MicroPeak application, locate the File menu and
129             select the Download entry.
130           </p></li><li class="listitem"><p>
131             The MicroPeak USB adapter has a small phototransistor on
132             the end of the board furthest from the USB
133             connector. Locate this and place the LED on the MicroPeak
134             directly in contact with it. The MicroPeak LED and the
135             MicroPeak USB adapter photo need to be touching&#8212;even a
136             millimeters of space between them will reduce the light
137             intensity from the LED enough that the phototransistor
138             will not sense it. Turn on the MicroPeak board and adjust
139             the position until the blue LED on the MicroPeak USB
140             adapter blinks in time with the orange LED on the
141             MicroPeak board.
142           </p></li><li class="listitem"><p>
143             After the maximum flight height is reported, MicroPeak will
144             pause for a few seconds, blink the LED four times rapidly
145             and then send the data in one long blur on the LED. The
146             MicroPeak application should receive the data. When it does,
147             it will present the data in a graph and offer to save the
148             data to a file. If not, you can power cycle the MicroPeak
149             board and try again.
150           </p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp53503952"></a>3. Analyzing MicroPeak Data</h2></div></div></div><p>
151         The MicroPeak application can present flight data in the form
152         of a graph, a collection of computed statistics or in tabular
153         form.
154       </p><p>
155         MicroPeak collects raw barometric pressure data which is
156         then used to compute the remaining data. Altitude is computed
157         through a standard atmospheric model. Absolute error in this
158         data will be affected by local atmospheric
159         conditions. Fortunately, these errors tend to mostly cancel
160         out, so the error in the height computation is much smaller
161         than the error in altitude would be.
162       </p><p>
163         Speed and acceleration are computed by first smoothing the
164         height data with a Gaussian window averaging filter. For speed
165         data, this average uses seven samples. For acceleration data,
166         eleven samples are used. These were chosen to provide
167         reasonably smooth speed and acceleration data, which would
168         otherwise be swamped with noise.
169       </p><p>
170         Under the Graph tab, the height, speed and acceleration values
171         are displayed together. You can zoom in on the graph by
172         clicking and dragging to sweep out an area of
173         interest. Right-click on the plot to bring up a menu that will
174         let you save, copy or print the graph.
175       </p><p>
176         The Statistics tab presents overall data from the flight. Note
177         that the Maximum height value is taken from the minumum
178         pressure captured in flight, and may be different from the
179         apparant apogee value as the on-board data are sampled twice
180         as fast as the recorded values, or because the true apogee
181         occurred after the on-board memory was full. Each value is
182         presented in several units as appropriate.
183       </p><p>
184         A table consisting of the both the raw barometric pressure
185         data and values computed from that for each recorded time.
186       </p><p>
187         The File menu has operations to open existing flight logs,
188         Download new data from MicroPeak, Save a copy of the flight
189         log to a new file, Export the tabular data (as seen in the Raw
190         Data tab) to a file, change the application Preferences, Close
191         the current window or close all windows and Exit the
192         application.
193       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47886320"></a>4. Configuring the MicroPeak application</h2></div></div></div><p>
194         The MicroPeak application has a few user settings which are
195         configured through the Preferences dialog, which can be
196         accessed from the File menu.
197       </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
198             The Log Directory is where flight data will be saved to
199             and loaded from by default. Of course, you can always
200             navigate to other directories in the file chooser windows,
201             this setting is just the starting point.
202           </p></li><li class="listitem"><p>
203             If you prefer to see your graph data in feet and
204             miles per hour instead of meters and meters per second,
205             you can select Imperial Units.
206           </p></li><li class="listitem"><p>
207             To see what data is actually arriving over the serial
208             port, start the MicroPeak application from a command
209             prompt and select the Serial Debug option. This can be
210             useful in debugging serial communication problems, but
211             most people need never choose this.
212           </p></li><li class="listitem"><p>
213             You can adjust the size of the text in the Statistics tab
214             by changing the Font size preference. There are three
215             settings, with luck one will both fit on your screen and
216             provide readable values.
217           </p></li><li class="listitem"><p>
218             The Look &amp; feel menu shows a list of available
219             application appearance choices. By default, the MicroPeak
220             application tries to blend in with other applications, but
221             you may choose some other appearance if you like.
222           </p></li></ul></div><p>
223       </p><p>
224         Note that MicroPeak shares a subset of the AltosUI
225         preferences, so if you use both of these applications, change
226         in one application will affect the other.
227       </p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="idp47894112"></a>Chapter 4. Technical Information</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#idp47894784">1. Barometric Sensor</a></span></dt><dt><span class="section"><a href="#idp47897392">2. Micro-controller</a></span></dt><dt><span class="section"><a href="#idp47899744">3. Lithium Battery</a></span></dt><dt><span class="section"><a href="#idp47902528">4. Atmospheric Model</a></span></dt><dt><span class="section"><a href="#idp47904928">5. Mechanical Considerations</a></span></dt><dt><span class="section"><a href="#idp47907680">6. On-board data storage</a></span></dt><dt><span class="section"><a href="#idp54636384">7. MicroPeak Programming Interface</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47894784"></a>1. Barometric Sensor</h2></div></div></div><p>
228         MicroPeak uses the Measurement Specialties MS5607 sensor. This
229         has a range of 120kPa to 1kPa with an absolute accuracy of
230         150Pa and a resolution of 2.4Pa.
231       </p><p>
232         The pressure range corresponds roughly to an altitude range of
233         -1500m (-4900 feet) to 31000m (102000 feet), while the
234         resolution is approximately 20cm (8 inches) near sea level and
235         60cm (24in) at 10000m (33000 feet).
236       </p><p>
237         Ground pressure is computed from an average of 16 samples,
238         taken while the altimeter is at rest. Flight pressure is
239         computed from a Kalman filter designed to smooth out any minor
240         noise in the sensor values. 
241       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47897392"></a>2. Micro-controller</h2></div></div></div><p>
242         MicroPeak uses an Atmel ATtiny85 micro-controller. This tiny
243         CPU contains 8kB of flash for the application, 512B of RAM for
244         temporary data storage and 512B of EEPROM for non-volatile
245         storage of previous flight data.
246       </p><p>
247         The ATtiny85 has a low-power mode which turns off all of the
248         clocks and powers down most of the internal components. In
249         this mode, the chip consumes only .1&#956;A of power. MicroPeak
250         uses this mode once the flight has ended to preserve battery
251         power.
252       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47899744"></a>3. Lithium Battery</h2></div></div></div><p>
253         The CR1025 battery used by MicroPeak holds 30mAh of power,
254         which is sufficient to run for over 40 hours. Because
255         MicroPeak powers down on landing, run time includes only time
256         sitting on the launch pad or during flight.
257       </p><p>
258         The large positive terminal (+) is usually marked, while the
259         smaller negative terminal is not. Make sure you install the
260         battery with the positive terminal facing away from the
261         circuit board where it will be in contact with the metal
262         battery holder. A small pad on the circuit board makes contact
263         with the negative battery terminal.
264       </p><p>
265         Shipping restrictions may prevent us from including a CR1025
266         battery with MicroPeak. If so, many stores carry CR1025
267         batteries as they are commonly used in small electronic
268         devices such as flash lights.
269       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47902528"></a>4. Atmospheric Model</h2></div></div></div><p>
270         MicroPeak contains a fixed atmospheric model which is used to
271         convert barometric pressure into altitude. The model was
272         converted into a 469-element piece wise linear approximation
273         which is then used to compute the altitude of the ground and
274         apogee. The difference between these represents the maximum
275         height of the flight.
276       </p><p>
277         The model assumes a particular set of atmospheric conditions,
278         which while a reasonable average cannot represent the changing
279         nature of the real atmosphere. Fortunately, for flights
280         reasonably close to the ground, the effect of this global
281         inaccuracy are largely canceled out when the computed ground
282         altitude is subtracted from the computed apogee altitude, so
283         the resulting height is more accurate than either the ground
284         or apogee altitudes.
285       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47904928"></a>5. Mechanical Considerations</h2></div></div></div><p>
286         MicroPeak is designed to be rugged enough for typical rocketry
287         applications. It contains two moving parts, the battery holder
288         and the power switch, which were selected for their
289         ruggedness.
290       </p><p>
291         The MicroPeak battery holder is designed to withstand impact
292         up to 150g without breaking contact (or, worse yet, causing
293         the battery to fall out). That means it should stand up to
294         almost any launch you care to try, and should withstand fairly
295         rough landings.
296       </p><p>
297         The power switch is designed to withstand up to 50g forces in
298         any direction. Because it is a sliding switch, orienting the
299         switch perpendicular to the direction of rocket travel will
300         serve to further protect the switch from launch forces.
301       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp47907680"></a>6. On-board data storage</h2></div></div></div><p>
302         The ATtiny85 has 512 bytes of non-volatile storage, separate
303         from the code storage memory. The MicroPeak firmware uses this
304         to store information about the last completed
305         flight. Barometric measurements from the ground before launch
306         and at apogee are stored, and used at power-on to compute the
307         height of the last flight.
308       </p><p>
309         In addition to the data used to present the height of the last
310         flight, MicroPeak also stores barometric information sampled
311         at regular intervals during the flight. This information can
312         be extracted from MicroPeak through any AVR programming
313         tool.
314       </p><div class="table"><a name="idp47909744"></a><p class="title"><b>Table 4.1. MicroPeak EEPROM Data Storage</b></p><div class="table-contents"><table summary="MicroPeak EEPROM Data Storage" border="1"><colgroup><col align="center" class="Address"><col align="center" class="Size (bytes)"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Address</th><th align="center">Size (bytes)</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0x000</td><td align="center">4</td><td align="left">Average ground pressure (Pa)</td></tr><tr><td align="center">0x004</td><td align="center">4</td><td align="left">Minimum flight pressure (Pa)</td></tr><tr><td align="center">0x008</td><td align="center">2</td><td align="left">Number of in-flight samples</td></tr><tr><td align="center">0x00a &#8230; 0x1fe</td><td align="center">2</td><td align="left">Instantaneous flight pressure (Pa) low 16 bits</td></tr></tbody></table></div></div><br class="table-break"><p>
315         All EEPROM data are stored least-significant byte first. The
316         instantaneous flight pressure data are stored without the
317         upper 16 bits of data. The upper bits can be reconstructed
318         from the previous sample, assuming that pressure doesn't
319         change by more more than 32kPa in a single sample
320         interval. Note that this pressure data is <span class="emphasis"><em>not</em></span>
321         filtered in any way, while both the recorded ground and apogee
322         pressure values are, so you shouldn't expect the minimum
323         instantaneous pressure value to match the recorded minimum
324         pressure value exactly.
325       </p><p>
326         MicroPeak samples pressure every 96ms, but stores only every
327         other sample in the EEPROM. This provides for 251 pressure
328         samples at 192ms intervals, or 48.192s of storage. The clock
329         used for these samples is a factory calibrated RC circuit
330         built into the ATtiny85 and is accurate only to within ±10% at
331         25°C. So, you can count on the pressure data being accurate,
332         but speed or acceleration data computed from this will be
333         limited by the accuracy of this clock.
334       </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp54636384"></a>7. MicroPeak Programming Interface</h2></div></div></div><p>
335         MicroPeak exposes a standard 6-pin AVR programming interface,
336         but not using the usual 2x3 array of pins on 0.1"
337         centers. Instead, there is a single row of tiny 0.60mm ×
338         0.85mm pads on 1.20mm centers exposed near the edge of the
339         circuit board. We couldn't find any connector that was
340         small enough to include on the circuit board.
341       </p><p>
342         In lieu of an actual connector, the easiest way to connect to
343         the bare pads is through a set of Pogo pins. These
344         spring-loaded contacts are designed to connect in precisely
345         this way. We've designed a programming jig, the MicroPeak
346         Pogo Pin board which provides a standard AVR interface on one
347         end and a recessed slot for MicroPeak to align the board with
348         the Pogo Pins.
349       </p><p>
350         The MicroPeak Pogo Pin board is not a complete AVR programmer,
351         it is an interface board that provides a 3.3V regulated power
352         supply to run the MicroPeak via USB and a standard 6-pin AVR
353         programming interface with the usual 2x3 grid of pins on 0.1"
354         centers. This can be connected to any AVR programming
355         dongle.
356       </p><p>
357         The AVR programming interface cannot run faster than ¼ of the
358         AVR CPU clock frequency. Because MicroPeak runs at 250kHz to
359         save power, you must configure your AVR programming system to
360         clock the AVR programming interface at no faster than
361         62.5kHz, or a clock period of 32µS.
362       </p></div></div></div></body></html>