562 lines
20 KiB
Plaintext
562 lines
20 KiB
Plaintext
= MicroPeak Owner's Manual
|
||
Keith Packard <keithp@keithp.com>; Bdale Garbee <bdale@gag.com>
|
||
:revnumber: v{version}
|
||
:revdate: 01 Jan 1970
|
||
:copyright: Bdale Garbee and Keith Packard 2021
|
||
:stylesheet: am.css
|
||
:linkcss:
|
||
:toc:
|
||
:doctype: book
|
||
:numbered:
|
||
:pdf-themesdir: .
|
||
:pdf-theme: 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, K7WQ
|
||
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.
|
||
|
||
== Protecting MicroPeak from Sunlight
|
||
|
||
The MS5607 barometric sensor is sensitive to direct light. When light
|
||
shines through the holes in the cover to the components inside, the
|
||
reported pressure can vary wildly from the actual pressure. This
|
||
causes the reported altitude to have errors of thousands of
|
||
feet.
|
||
|
||
MicroPeak should be installed in an opaque compartment in the airframe
|
||
and not subjected to sunlight. Alternatively, a small piece of
|
||
adhesive-backed open-cell foam can be attached to the device so that
|
||
it covers the barometric sensor and protects it from direct light.
|
||
|
||
Here's what happens when MicroPeak is exposed to sunlight. At apogee,
|
||
I exposed MicroPeak to varying amounts of sunlight and you can see the
|
||
wild swings in altitude resulting from that:
|
||
|
||
.MicroPeak in Sunlight
|
||
image::micropeak-flight-nofoam.png[width=430]
|
||
|
||
You can carefully cutting a piece of adhesive-backed open-cell foam
|
||
and attach it to MicroPeak. It's important to press the adhesive to
|
||
the circuit board and not to the top of the barometric sensor or the
|
||
sensor may become blocked and not operate at all. Once you've attached
|
||
the foam, you should test MicroPeak on the ground to make sure it's
|
||
still working.
|
||
|
||
.MicroPeak with Foam
|
||
image::micropeak-foam.jpg[width=430]
|
||
|
||
That MicroPeak was in the same barometric chamber as the one which
|
||
generated the above results and the resulting flight data looks
|
||
correct:
|
||
|
||
.MicroPeak in Sunlight with Foam
|
||
image::micropeak-flight-foam.png[width=430]
|
||
|
||
[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 solid 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.
|
||
|
||
One good solution is to use a small rectangle of Poron
|
||
50-30031-12X12P or equivalent to cover the sensor. This is an
|
||
open cell foam in 1/32" thickness with an adhesive backing. It
|
||
seems to do a good job of blocking sun while still allowing
|
||
airflow to and from the sensor internals.
|
||
|
||
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.
|