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