TeleStern/doc/micropeak.txt

562 lines
20 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

= 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.