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