cc70e756cd0ea0cd022801b73e7105fd2a820383
[web/altusmetrum] / AltusMetrum / index.mdwn
1 # AltusMetrum
2
3 This is the design that started it all!  Bdale got frustrated with existing
4 commercial altimeters and decided to build his own.  This project was 
5 presented in talks at LCA, SCALE, OLS, and Debconf in 2008.
6
7 Here are photos of the front and back sides of the version 0.1 prototype PCB,
8 which was 100% auto-routed on 2 layers using the 
9 [gEDA](http://www.gpleda.org) 
10 schematic and pcb tools.
11
12 <a href="hpim2581.jpg"> <img src="hpim2581-thumb.jpg"></a>
13 <a href="hpim2582.jpg"> <img src="hpim2582-thumb.jpg"></a>
14
15 ## Features ##
16
17 ### User View ###
18
19 * Recording altimeter for model rocketry
20 * Supports dual deployment (can fire 2 ejection charges)
21 * Primary operations based on pressure sensor
22 * 3-axis accelerometer
23 * Temperature sensor
24 * 2 serial ports for attachment of GPS and RF link modules
25 * USB for data recovery and post-flight power source
26 * Flexible battery choices
27 * Designed to fit 24mm airframe tube
28
29 ### Developer View ###
30
31 * NXP LPC-2148 Processor (ARM7TDMI-S)
32         * 512k Flash memory, 32k RAM
33         * USB plus lots of analog, digital, and serial I/O
34 * Microchip 24FC1025 CMOS serial EEPROM
35         * 128k x 8
36         * I2C interface
37 * Various Sensors
38         * Freescale MP3H6115A pressure sensor
39         * Freescale MMA7260QT 3-axis accelerometer
40         * Microchip MCP9700A temperature sensor
41         * (Honeywell 2-axis magnetic sensor left out of v0.1)
42 * Software Features
43         * Written mostly in C with some ARM assembler
44         * Runs from on-chip flash, uses on-chip RAM, stores flight data to
45                 serial EEPROM chip
46         * USB serial emulation for "console" interface
47         * Uses GCC, newlib, FreeRTOS, LPCUSB
48         * Based on a demo package written for the Olimex LPC-P2148 eval board
49                 by J C Wren
50 * Licenses
51         * The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html)
52         * The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
53
54 ## Problems ##
55
56 In addition to the various "oopses" that were found and fixed during initial
57 turn-on of this board, several issues contributed to the decision to shelve
58 the design for now:
59
60 * lots of work went in to trying to make the board fit in a 24mm airframe,
61   but the resulting design with battery is really too heavy for such a small
62   rocket.
63
64 * the 3-axis accelerometer has a max scale of +/- 6g.  This is insufficient
65   for characterizing the kinds of motors that we're playing with now.
66
67 * while using a gcc-based toolchain to cross-develop for the ARM7 core works
68   reasonably well, it's a heavy toolchain to build and maintain, and the
69   processor really is serious overkill for the task at hand.
70
71 ## Artifacts ##
72
73 The best version of Bdale's [Peace Love and Rockets](AltusMetrum.odp) 
74 presentation about this hardware generation was given at the Ohio LinuxFest 
75 2008.  Note that there are many photos included, so this is a HUGE file!
76
77 The version 0.1 design had enough issues that Bdale decided not to publish
78 it.  Work on an 0.2 revision is mostly complete at the schematic level, and
79 some printed circuit board artwork updates were made, but a second run of
80 boards was never attempted.  This design is now mostly of historical interest.
81
82 ## Futures ##
83
84 If we decide to do further work on this design, a number of changes seem
85 potentially appropriate for the next board revision, in addition to just
86 fixing bugs found in the turn-on of the initial boards.
87
88 * The LiPo battery support from [TeleMetrum](../TeleMetrum) should be copied
89   into this design, replacing the battery screw terminals with a standard LiPo
90   2-pin battery connector.
91
92 * The [SparkFun](http://www.sparkfun.com) folks have produced 
93   a [USB bootloader for the LPC2148](http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=94).  It 
94   requires an SD card for temporary storage of code to be
95   flashed.  Replacing the current external SPI memory chip with a microSD 
96   socket could make sense.  The socket size is under a cm square, and ones 
97   that have a fold-up locking top are about $2, vs over $6 for the current
98   memory chip.  The cards themselves are getting very cheap, too, and can
99   store much more data than the current 128k memory chip.  This would require 
100   moving ADC_Vbat to a different ADC input so that pins 27, 29, 30, and 31 
101   would be available for the microSD socket.
102
103 * Consideration should be given to changing the accelerometer for a higher-G
104   single axis unit as in [TeleMetrum](../TeleMetrum) if we want to be able to
105   use it for motor characterization.