f71c125ca53b7f76c188467254677ecdbf04b25c
[web/altusmetrum] / AltOS / index.mdwn
1 # AltOS
2
3 AltOS is the name of Keith's firmware "operating system" for 
4 [TeleMetrum](../TeleMetrum/) and [TeleDongle](../TeleDongle/).
5
6 In addition to the firmware for [TeleMetrum](../TeleMetrum) and
7 [TeleDongle](../TeleDongle) boards, the AltOS source tree also
8 includes AltosUI, which provides for flight monitoring, post-flight
9 analysis, device configuration and firmware updating. AltosUI runs on
10 Linux, Mac OS X and Windows. It's written in [Java](http://java.com)
11 and offers the same functionality and interface on all three
12 platforms. A small platform-specific library communicates with the USB
13 interface on the Altus Metrum devices.
14
15 There are also Linux-specific tools that provide lower level access to
16 the devices which are useful for developing firmware for the devices.
17
18 The firmware and associated software are licensed [GPL version
19 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
20
21 ## Available Versions ##
22
23 There is a single manual for all Altus Metrum products, which is available 
24 in [html](doc/altusmetrum.html) and [pdf](doc/altusmetrum.pdf) formats.
25
26 We maintain a list of [launch site GPS coordinates](launch-sites.txt).  If 
27 your favorite launch site isn't included, please let us know!
28
29 [[!inline pages="./releases/* and !*/Discussion and !*.bz2 and !*.zip and !*.exe" show="10" rss="no" raw="yes" ]]
30
31 The latest source, which may include unreleased work in progress, is always 
32 available from [git.gag.com](http://git.gag.com) 
33 in the project [fw/altos](http://git.gag.com/?p=fw/altos;a=summary).  
34
35 If you need to debug code on an Altus Metrum product, you may want our special
36 version of SDCC containing a highly modified sdcdb with support for the cc1111
37 debugging interface, which you can find on [git.gag.com](http://git.gag.com) 
38 in the project [fw/sdcc](http://git.gag.com/?p=fw/sdcc;a=summary).  This is
39 not necessary if you just want to rebuild AltOS and use it.
40
41 ### Version 0.9.2 Features ###
42
43 Version 0.9.2 is an AltosUI bug-fix release, with no firmware changes.
44
45  * Fix plotting problems due to missing file in the Mac OS install image.
46
47  * Always read whole eeprom blocks, mark empty records invalid, display
48    parsing errors to user.
49
50  * Add software version to Configure AltosUI dialog
51
52 ### Version 0.9 Features ###
53
54 Version 0.9 adds a few new firmware features and accompanying AltosUI
55 changes, along with new hardware support.
56
57  * Support for TeleMetrum v1.1 hardware. Sources for the flash memory
58    part used in v1.0 dried up, so v1.1 uses a different part which
59    required a new driver and support for explicit flight log erasing.
60
61  * Multiple flight log support. This stores more than one flight log
62    in the on-board flash memory. It also requires the user to
63    explicitly erase flights so that you won't lose flight logs just
64    because you fly the same board twice in one day.
65
66  * Telemetry support for devices with serial number >= 256. Previous
67    versions used a telemetry packet format that provided only 8 bits
68    for the device serial number. This change requires that both ends
69    of the telemetry link be running the 0.9 firmware or they will not
70    communicate.
71
72 ### Version 0.8 Features ###
73
74 Version 0.8 offers a major upgrade in the AltosUI
75 interface. Significant new features include:
76
77 * Post-flight graphing tool. This lets you explore the behaviour of
78   your rocket after flight with a scroll-able and zoom-able chart
79   showing the altitude, speed and acceleration of the airframe along
80   with events recorded by the flight computer. You can export graphs
81   to PNG files, or print them directly.
82
83 * Real-time moving map which overlays the in-progress flight on
84   satellite imagery fetched from
85   [Google Maps](http://maps.google.com). This lets you see in pictures
86   where your rocket has landed, allowing you to plan recovery
87   activities more accurately.
88
89 * Wireless recovery system testing. Prep your rocket for flight and test
90   fire the deployment charges to make sure things work as
91   expected. All without threading wires through holes in your
92   airframe.
93
94 * Optimized flight status displays. Each flight state now has it's own
95   custom 'tab' in the flight monitoring window so you can focus on the
96   most important details. Pre-flight, the system shows a set of
97   red/green status indicators for battery voltage, apogee/main igniter
98   continutity and GPS reception. Wait until they're all green and your
99   rocket is ready for flight. There are also tabs for ascent, descent
100   and landing along with the original tabular view of the data.
101
102 * Monitor multiple flights simultaneously. If you have more than one
103   TeleDongle, you can monitor a flight with each one on the same
104   computer.
105
106 * Automatic flight monitoring at startup. Plug TeleDongle into the
107   machine before starting AltosUI and it will automatically connect to
108   it and prepare to monitor a flight.
109
110 * Exports Google Earth flight tracks. Using the Keyhole Markup
111   Language (.kml) file format, this provides a 3D view of your rocket
112   flight through the Google Earth program.
113
114 ### Version 0.7.1 Features ###
115
116 Version 0.7.1 is the first release containing our new cross-platform Java-based user interface. AltosUI can:
117
118 * Receive and log telemetry from a connected TeleDongle device. All data 
119   received is saved to log files named with the current date and the connected 
120   rocket serial and flight numbers. There is no mode in which telemetry data 
121   will not be saved.
122
123 * Download logged data from TeleMetrum devices, either through a direct USB 
124   connection or over the air through a TeleDongle device.
125
126 * Configure a TeleMetrum device, setting the radio channel, callsign, apogee 
127   delay and main deploy height. This can be done through either a USB 
128   connection or over a radio link via a TeleDongle device.
129
130 * Replay a flight in real-time. This takes a saved telemetry log or eeprom 
131   download and replays it through the user interface so you can relive your 
132   favorite rocket flights.
133
134 * Reprogram Altus Metrum devices. Using an Altus Metrum device connected via 
135   USB, another Altus Metrum device can be reprogrammed using the supplied 
136   programming cable between the two devices.
137
138 * Export Flight data to a comma-separated-values file. This takes either 
139   telemetry or on-board flight data and generates data suitable for use in 
140   external applications. All data is exported using standard units so that no 
141   device-specific knowledge is needed to handle the data.
142
143 * Speak to you during the flight. Instead of spending the flight hunched over 
144   your laptop looking at the screen, enjoy the view while the computer tells 
145   you what’s going on up there. During ascent, you hear the current flight 
146   state and altitude information. During descent, you get azimuth, elevation 
147   and range information to try and help you find your rocket in the air. Once 
148   on the ground, the direction and distance are reported.
149
150 AltosUI provides all of these features on the three target operating systems, 
151 Linux, Mac OS X (version 10.5 or newer) and Windows (XP, Vista or 7). The bulk 
152 of the software is written in Java and is built once and tested and delivered 
153 on all three target platforms. A tiny ‘shim’ library is built on each system 
154 to provide access to the Altus Metrum devices connected over the USB link.
155
156 ## Future Plans ##
157
158 Bug reports, feature requests, and planning for AltOS releases happens
159 on the [Altus Metrum Trac Site](http://trac.gag.com/altusmetrum).
160
161 A number of features are implemented or in process in the sources available
162 in our publicly visible repository that are not part of the current stable
163 release.
164
165 * A Kalman-filter based approach to apogee detection using more than just the
166   baro sensor, so that we can safely control apogee ejection on flights to
167   altitudes beyond the range of our baro sensor alone.  Unlike the other items
168   on the list, this will be a significant change to the in-rocket TeleMetrum
169   firmware.  It may therefore be a while before this becomes part of a stable 
170   firmware release.
171
172 * Motor characterization. Because TeleMetrum contains a
173   high-resolution, high-frequency accelerometer, it is possible to
174   take the data from that and compute an accurate thrust curve for
175   the motor.
176
177 * Comprehensive PDF and/or HTML -based flight report. Construct a
178   complete report of the flight suitable for publication on the web
179   that includes graphs of the flight and details about motor
180   performance etc.
181    
182 * Publish flight data to the Altus Metrum web site. This will allow
183   you to share your flight data with others, and let you download
184   flights published by others.
185
186 There are any number of additions that could be made to this list; feel free 
187 to send along ideas that you’ve got. Of course, all of this software is 
188 licensed under the GNU General Public License, so you can get the source and 
189 hack on it in the comfort of your own home.
190
191 ## Platform Specific Notes ##
192
193 ### Linux ###
194
195 If you use [Debian](http://www.debian.org), then a pre-built package for 
196 32-bit x86 is currently available here:
197
198         wget -O - http://altusmetrum.org/apt/altusmetrum.key | apt-key add -
199         wget -O /etc/apt/sources.list.d/altos.list http://altusmetrum.org/apt/altos.list
200         apt-get update
201         apt-get install altos
202
203 If you use some other distribution of Linux, then 
204 a Linux package of our second-generation Java bits that 
205 should run on any distribution with a modern Java version is also 
206 available.  Unlike the Debian pacakge, which depends on various libraries
207 already part of the Debian distribution, this package includes a "fat" jar
208 file with all of the Java libraries that aren't part of the basic Java runtime
209 environment included, so it should "just work" on any system with 
210 Java 6.  Development and testing is done with OpenJDK 6, but current 
211 downloads from [java.com](http://java.com) should be fine too.
212
213 If you'd rather build from source, our source tree includes documentation on 
214 how to build packages for various
215 Linux systems such as [Arch Linux](http://www.archlinux.org), and the 
216 debian/ directory contains all the control
217 files for building the Debian packages on other architectures or derivatives
218 such as [Ubuntu](http://ubuntu.com).
219
220 Bdale has also created a theme for 
221 [GDM](http://projects.gnome.org/gdm/) that he uses on his primary notebook,
222 and the 
223 [Simple Login Manager](http://slim.berlios.de/) that he uses on all of his
224 other machines and which is ideally suited for machines dedicated to AltOS 
225 ground station use.  It includes a photo of a drag-race between 
226 nearly-identical rockets
227 built by Keith and Bdale, that was the first time either of us gave TeleMetrum
228 complete control of a rocket flight without some other backup!  See the themes/
229 directory in the source tree (the themes are included in the Debian package).
230
231 ### Mac ###
232
233 A Mac OS X package that is compatible with versions 10.5 "Leopard" and
234 later (including 10.6 "Snow Leopard") is available.  The Mac operating
235 system includes Java, and all Altus Metrum products show up as simple
236 USB serial ports, so this should just work with no additional drivers
237 or other dependency issues.  Older versions of the Mac operating
238 system, and even newer versions for PowerPC-based machines, come with
239 Java version 5 or older, which is too old for use with Altus Metrum
240 software. We know of no way to update the Java version other than
241 upgrading to a newer operating system (for Intel based macs) or
242 purchasing new hardware (for PowerPC based macs).
243
244 ### Windows ###
245
246 Our Windows package is known to work on at least some flavors of XP, Vista, and 
247 Windows 7 Enterprise. If you don't already have Java installed, 
248 download and install a current Java 6 version from [java.com](http://java.com)
249 first.  Then download our installer and run it.  Windows already has 
250 the required USB serial device driver, and our package should do the right
251 things to bind it to our devices, but if you get a complaint about the device
252 being unrecognized, try pointing to the copy of the telemetrum.inf file 
253 included in the package directory manually.