summaryrefslogtreecommitdiff
path: root/OpenAlt/index.mdwn
blob: a880e7e19b057882fdc28ad4558ed4954593511f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# OpenAlt

This is the design that started it all!  Bdale got frustrated with existing
commercial altimeters and decided to build his own.  This project was 
presented in talks at LCA, SCALE, OLS, and Debconf in 2008.  

Here are photos of the front and back sides of the version 0.1 prototype PCB,
which was 100% auto-routed on 2 layers using the 
[gEDA](http://www.gpleda.org) 
schematic and pcb tools.

<a href="hpim2581.jpg"> <img src="hpim2581-thumb.jpg"></a>
<a href="hpim2582.jpg"> <img src="hpim2582-thumb.jpg"></a>

## Features ##

### User View ###

* Recording altimeter for model rocketry
* Supports dual deployment (can fire 2 ejection charges)
* Primary operations based on pressure sensor
* 3-axis accelerometer
* Temperature sensor
* 2 serial ports for attachment of GPS and RF link modules
* USB for data recovery and post-flight power source
* Flexible battery choices
* Designed to fit 24mm airframe tube

### Developer View ###

* NXP LPC-2148 Processor (ARM7TDMI-S)
	* 512k Flash memory, 32k RAM
	* USB plus lots of analog, digital, and serial I/O
* Microchip 24FC1025 CMOS serial EEPROM
	* 128k x 8
	* I2C interface
* Various Sensors
	* Freescale MP3H6115A pressure sensor
	* Freescale MMA7260QT 3-axis accelerometer
	* Microchip MCP9700A temperature sensor
	* (Honeywell 2-axis magnetic sensor left out of v0.1)
* Software Features
	* Written mostly in C with some ARM assembler
	* Runs from on-chip flash, uses on-chip RAM, stores flight data to
		serial EEPROM chip
	* USB serial emulation for "console" interface
	* Uses GCC, newlib, FreeRTOS, LPCUSB
	* Based on a demo package written for the Olimex LPC-P2148 eval board
		by J C Wren
* Licenses
	* The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html)
	* The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

## Problems ##

In addition to the various "oopses" that were found and fixed during initial
turn-on of this board, several issues contributed to the decision to shelve
the design for now:

* lots of work went in to trying to make the board fit in a 24mm airframe,
  but the resulting design with battery is really too heavy for such a small
  rocket.

* the 3-axis accelerometer has a max scale of +/- 6g.  This is insufficient
  for characterizing the kinds of motors that we're playing with now.

* while using a gcc-based toolchain to cross-develop for the ARM7 core works
  reasonably well, it's a heavy toolchain to build and maintain, and the
  processor really is serious overkill for the task at hand.

## Artifacts ##

The best version of Bdale's [Peace Love and Rockets](AltusMetrum.odp) 
presentation about this hardware generation was given at the Ohio LinuxFest 
2008.  Note that there are many photos included, so this is a HUGE file!

The version 0.1 design had enough issues that Bdale decided not to publish
it.  Work on an 0.2 revision is mostly complete at the schematic level, and
some printed circuit board artwork updates were made, but a second run of
boards was never attempted.  This design is now mostly of historical interest.

## Futures ##

If we decide to do further work on this design, a number of changes seem
potentially appropriate for the next board revision, in addition to just
fixing bugs found in the turn-on of the initial boards.

* The LiPo battery support from [TeleMetrum](../TeleMetrum) should be copied
  into this design, replacing the battery screw terminals with a standard LiPo
  2-pin battery connector.

* The [SparkFun](http://www.sparkfun.com) folks have produced 
  a [USB bootloader for the LPC2148](http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=94).  It 
  requires an SD card for temporary storage of code to be
  flashed.  Replacing the current external SPI memory chip with a microSD 
  socket could make sense.  The socket size is under a cm square, and ones 
  that have a fold-up locking top are about $2, vs over $6 for the current
  memory chip.  The cards themselves are getting very cheap, too, and can
  store much more data than the current 128k memory chip.  This would require 
  moving ADC_Vbat to a different ADC input so that pins 27, 29, 30, and 31 
  would be available for the microSD socket.

* Consideration should be given to changing the accelerometer for a higher-G
  single axis unit as in [TeleMetrum](../TeleMetrum) if we want to be able to
  use it for motor characterization.