= MicroPeak Owner's Manual Keith Packard ; Bdale Garbee :revnumber: v1.9 :revdate: 8 Oct 2018 :copyright: Bdale Garbee and Keith Packard 2018 :stylesheet: am.css :linkcss: :toc: :doctype: book :numbered: :pdf-stylesdir: . :pdf-style: altusmetrum :pdf-fontsdir: fonts include::header.adoc[] [dedication] == Acknowledgements Thanks to John Lyngdal for suggesting that we build something like this. 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 == Using MicroPeak MicroPeak is designed to be easy to use. Requiring no external components, flying takes just a few steps Install the battery:: Fit a CR1025 battery into the plastic carrier. The positive (\+) terminal should be towards the more open side of the carrier. Slip the carrier into the battery holder with the positive (+) terminal facing away from the circuit board. .MicroPeak and Battery image::micropeak-back.jpg[width=430] Install MicroPeak in your rocket:: This can be as simple as 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, and shield it from light as that can cause incorrect sensor readings. Turn MicroPeak on:: Slide the switch so that the actuator covers the '1' printed on the board. MicroPeak will report the maximum height of the last flight in decimeters using a sequence of flashes on the LED. A sequence of short flashes indicates one digit. A single long flash indicates zero. The 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. 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. 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 the minimum pressure pressure experienced during the flight, compute the height represented by the difference in air pressure and blink that value out on the LED. After that, MicroPeak powers down to conserve battery power. 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. == The MicroPeak USB adapter .MicroPeak USB Adapter image::MicroPeakUSB-2.0.jpg[width=430,align="center"] 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. === Installing the MicroPeak software The MicroPeak application runs on Linux, Mac OS X and Windows. You can download the latest version from http://altusmetrum.org/MicroPeak 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 http://www.ftdichip.com/FTDrivers.htm === Downloading Micro Peak data * Plug the MicroPeak USB adapter in to your computer. * Start the MicroPeak application. image::micropeak-nofont.svg[width=50,align="center"] * Click on the Download button at the top of the window. .MicroPeak Application image::micropeak-app.png[width=430,align="center"] * Select from the listed devices. There will probably be only one. .MicroPeak Device Dialog image::micropeak-device-dialog.png[width=220,align="center"] * The application will now wait until it receives valid data from the MicroPeak USB adapter. .MicroPeak Download Dialog image::micropeak-download.png[width=200,align="center"] * 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. .MicroPeak Downloading image::MicroPeakUSB-2.0-inuse.jpg[width=430,align="center"] * 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. .MicroPeak Save Dialog image::micropeak-save-dialog.png[width=220,align="center"] * Once the data are saved, a graph will be displayed with height, speed and acceleration values computed from the recorded barometric pressure data. See <<_analyzing_micropeak_data> for more details on that. === Analyzing MicroPeak Data The MicroPeak application can present flight data in the form of a graph, a collection of computed statistics or in tabular form. 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. 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. 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. ==== MicroPeak Graphs .MicroPeak Graph image::micropeak-graph.png[width=430,align="center"] 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. ==== MicroPeak Flight Statistics .MicroPeak Flight Statistics image::micropeak-statistics.png[width=430,align="center"] 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. ==== Raw Flight Data .MicroPeak Raw Flight Data image::micropeak-raw-data.png[width=430,align="center"] A table consisting of the both the raw barometric pressure data and values computed from that for each recorded time. ==== Configuring the Graph .MicroPeak Graph Configuration image::micropeak-graph-configure.png[width=430,align="center"] This selects which graph elements to show, and lets you switch between metric and imperial units === Setting MicroPeak Preferences .MicroPeak Preferences image::micropeak-preferences.png[width=170,align="center"] The MicroPeak application has a few user settings which are configured through the Preferences dialog, which can be accessed from the File menu. Log Directory:: 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. Imperial Units:: 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. Serial Debug:: 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. Font Size:: 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. Look & Feel:: The Look & 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. 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. [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. [WARNING] The CR1025 Lithium batteries have an extraordinary power density. This is great because we can fly with much less battery mass... but if they are punctured or their contacts are allowed to short, they can and will release their energy very rapidly! Thus we recommend that you take some care when handling MicroPeak to keep conductive material from coming in contact with the exposed metal elements. 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. The barometric sensor sampling ports 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. [appendix] == Technical Information === Barometric Sensor MicroPeak uses the Measurement Specialties MS5607 sensor. This has a range of 120kPa to 1kPa with an absolute accuracy of 150Pa and a resolution of 2.4Pa. The pressure range corresponds roughly to an altitude range of -1500m (-4900 feet) to 31000m (102000 feet), while the resolution is approximately 20cm (8 inches) near sea level and 60cm (24in) at 10000m (33000 feet). Ground pressure is computed from an average of 16 samples, 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. === Micro-controller MicroPeak uses an Atmel ATtiny85 micro-controller. This tiny CPU contains 8kB of flash for the application, 512B of RAM for temporary data storage and 512B of EEPROM for non-volatile storage of previous flight data. The ATtiny85 has a low-power mode which turns off all of the clocks and powers down most of the internal components. In this mode, the chip consumes only .1μA of power. MicroPeak uses this mode once the flight has ended to preserve battery power. === Lithium Battery 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. The large positive terminal (+) is usually marked, while the smaller negative terminal is not. Make sure you install the battery with the positive terminal facing away from the circuit board where it will be in contact with the metal battery holder. A small pad on the circuit board makes contact with the negative battery terminal. 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. === Atmospheric Model 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 which is then used to compute the altitude of the ground and apogee. The difference between these represents the maximum height of the flight. The model assumes a particular set of atmospheric conditions, 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 altitude is subtracted from the computed apogee altitude, so the resulting height is more accurate than either the ground or apogee altitudes. 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. === Mechanical Considerations MicroPeak is designed to be rugged enough for typical rocketry applications. It contains two moving parts, the battery holder and the power switch, which were selected for their ruggedness. The MicroPeak battery holder is designed to withstand impact up to 150g without breaking contact (or, worse yet, causing the battery to fall out). That means it should stand up to almost any launch you care to try, and should withstand fairly rough landings. The power switch is designed to withstand up to 50g forces in any direction. Because it is a sliding switch, orienting the switch perpendicular to the direction of rocket travel will serve to further protect the switch from launch forces. === MicroPeak Programming Interface 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. 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. 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. 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. [appendix] == On-board data storage 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. 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. .MicroPeak EEPROM Data Storage [options="border",cols="2,1,7"] |==== |Address |Size (bytes) |Description |0x000 |4 |Average ground pressure (Pa) |0x004 |4 |Minimum flight pressure (Pa) |0x008 |2 |Number of in-flight samples |0x00a … 0x1fe |2 |Instantaneous flight pressure (Pa) low 16 bits |==== 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 *not* 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. 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.