156e02be93d50354807238792ee67ea9f6ba5a2f
[web/altusmetrum] / AltOS / index.mdwn
1 # AltOS
2
3 AltOS is the name of Keith's firmware "operating system" for 
4 Altus Metrum products.
5
6 In addition to the firmware for hardware products like
7 [TeleMetrum](../TeleMetrum), [TeleMini](../TeleMini), and
8 [TeleDongle](../TeleDongle), the AltOS source tree also
9 includes AltosUI, which provides for flight monitoring, post-flight
10 analysis, device configuration and firmware updating. AltosUI runs on
11 Linux, Mac OS X and Windows. It's written in [Java](http://java.com)
12 and offers the same functionality and interface on all three
13 platforms. A small platform-specific library communicates with the USB
14 interface on the Altus Metrum devices.
15
16 There are also Linux-specific tools that provide lower level access to
17 the devices which are useful for developing firmware for the devices.
18
19 We maintain a list of [launch site GPS coordinates](launch-sites.txt).  If 
20 your favorite launch site isn't included, please let us know!
21
22 ## Available Versions ##
23
24 There is a single manual for most Altus Metrum products, which is available 
25 in [html](doc/altusmetrum.html) and [pdf](doc/altusmetrum.pdf) formats.
26
27 We also have an AltOS internals document for programmers 
28 in [html](doc/altos.html) and [pdf](doc/altos.pdf) formats, and a
29 document describing the AltOS over the radio protocol 
30 in [html](doc/telemetry.html) and [pdf](doc/telemetry.pdf) formats.
31
32 If you're running Windows 8, you should take a look at [Installing AltosUI on
33 Windows 8](Win8) which will help you install the operating system
34 drivers needed to communicate with the USB hardware.
35
36 [[!inline pages="./releases/* and !*/Discussion and !*.html and !*.bz2 and !*.zip and !*.exe" show="10" rss="no" raw="yes" ]]
37
38 ## Source Code ##
39
40 The latest source, which may include unreleased work in progress, is always 
41 available from [git.gag.com](http://git.gag.com) 
42 in the project [fw/altos](http://git.gag.com/?p=fw/altos;a=summary).  
43
44 If you need to debug code on an Altus Metrum product, or want to do custom
45 development, you need a 2.X version of SDCC.  Version 3.X adds features that 
46 bloat the code generated on 8051 enough to overflow the available flash memory
47 size.  As a result, we maintain a fork of SDCC we call 'cc1111' that is based
48 on the last upstream version of SDCC 2.X, plus a highly modified sdcdb with 
49 support for the cc1111 debugging interface.  This is avilable as a package in
50 Debian, or you can find the sources on [git.gag.com](http://git.gag.com) 
51 in the project [debian/cc1111](http://git.gag.com/?p=debian/cc1111;a=summary). 
52
53 ## Future Plans ##
54
55 Bug reports, feature requests, and planning for AltOS releases happens
56 on the [Altus Metrum Trac Site](http://trac.gag.com/altusmetrum).
57
58 A number of features are implemented or in process in the sources available
59 in our publicly visible repository that are not part of the current stable
60 release.
61
62 * Motor characterization. Because TeleMetrum contains a
63   high-resolution, high-frequency accelerometer, it is possible to
64   take the data from that and compute an accurate thrust curve for
65   the motor.
66
67 * Comprehensive PDF and/or HTML -based flight report. Construct a
68   complete report of the flight suitable for publication on the web
69   that includes graphs of the flight and details about motor
70   performance etc.
71    
72 * Publish flight data to the Altus Metrum web site. This will allow
73   you to share your flight data with others, and let you download
74   flights published by others.
75
76 There are any number of additions that could be made to this list; feel free 
77 to send along ideas that you’ve got. Of course, all of this software is 
78 licensed under the GNU General Public License, so you can get the source and 
79 hack on it in the comfort of your own home.
80
81 ## Platform Specific Notes ##
82
83 ### Linux ###
84
85 If you use [Debian](http://www.debian.org), you can simply install the 'altos'
86 package from any Debian mirror, like so:
87
88                 apt-get update
89                 apt-get install altos
90
91 If you use [Ubuntu](http://ubuntulinux.org), pre-built packages are available
92 from [this PPA](https://launchpad.net/~sconklin/+archive/altos/) 
93 maintained by Steve Conklin and friends.
94
95 If you use some other distribution of Linux, then 
96 a Linux package of our second-generation Java bits that 
97 should run on any distribution with a modern Java version is also 
98 available.  Unlike the Debian pacakge, which depends on various libraries
99 already part of the Debian distribution, this package includes a "fat" jar
100 file with all of the Java libraries that aren't part of the basic Java runtime
101 environment included, so it should "just work" on any system with 
102 Java 6.  Development and testing is done with OpenJDK 6, but current 
103 downloads from [java.com](http://java.com) should be fine too.
104
105 If you'd rather build from source, our source tree includes documentation on 
106 how to build packages for various
107 Linux systems such as [Arch Linux](http://www.archlinux.org), and the 
108 debian/ directory contains all the control
109 files for building the Debian packages on other architectures or derivatives
110 such as [Ubuntu](http://ubuntu.com).
111
112 Bdale has also created a theme for 
113 [GDM](http://projects.gnome.org/gdm/) that he uses on his primary notebook,
114 and the 
115 [Simple Login Manager](http://slim.berlios.de/) that he uses on all of his
116 other machines and which is ideally suited for machines dedicated to AltOS 
117 ground station use.  It includes a photo of a drag-race between 
118 nearly-identical rockets
119 built by Keith and Bdale, that was the first time either of us gave TeleMetrum
120 complete control of a rocket flight without some other backup!  See the themes/
121 directory in the source tree (the themes are included in the Debian package).
122
123 ### Mac ###
124
125 A Mac OS X package that is compatible with versions 10.5 "Leopard" and
126 later.  The Mac operating system includes Java, and all Altus Metrum products 
127 show up as simple USB serial ports, so this should just work with no 
128 additional drivers or other dependency issues.  Older versions of the Mac 
129 operating
130 system, and even newer versions for PowerPC-based machines, come with
131 Java version 5 or older, which is too old for use with Altus Metrum
132 software. We know of no way to update the Java version other than
133 upgrading to a newer operating system (for Intel based macs) or
134 purchasing new hardware (for PowerPC based macs).
135
136 If you have trouble installing on a Mac, and are getting errors about the
137 package being corrupt, you may not be configured to allow installation of
138 software from arbitrary sources.  One customer running 10.8.1 reported that
139 he was able to work around this by going to "System Preferences", "Security
140 & Privacy", "General", and then clicking the "Anywhere" radio button where
141 it askes "Allow applications downloaded from:".
142
143 ### Windows ###
144
145 Our Windows package is known to work on at least some flavors of XP, Vista, and 
146 Windows 7 Enterprise. If you don't already have Java installed, 
147 download and install a current Java 6 version from [java.com](http://java.com)
148 first.  Then download our installer and run it.  Windows already has 
149 the required USB serial device driver, and our package should do the right
150 things to bind it to our devices, but if you get a complaint about the device
151 being unrecognized, try pointing to the copy of the telemetrum.inf file 
152 included in the package directory manually.
153
154 Note that on some Windows 7 systems, it may be necessary to install AltOS using
155 'compatibility mode'.  You can set this mode by 
156 [changing the properties](http://www.sevenforums.com/tutorials/316-compatibility-mode.html)
157 of the installer .exe.
158
159 ## License ##
160
161 The firmware and associated software are licensed [GPL version
162 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)