+[[!meta title="AltOS"]]
# AltOS
AltOS is the name of Keith's firmware "operating system" for
-[TeleMetrum](../TeleMetrum/) and [TeleDongle](../TeleDongle/).
+Altus Metrum products.
-In addition to the firmware for [TeleMetrum](../TeleMetrum) and
-[TeleDongle](../TeleDongle) boards, the AltOS source tree also includes a
-number of utilities useful for monitoring and logging telemetry during flight,
-post-processing flight data for analysis, plus utilities for updating firmware,
-and developing and debugging new functionality. The first generation of these
-utilities were Linux-only, but our current second-generation software written
-largely in [Java](http://java.com) with a small platform-specific library
-works identically on Windows, Mac, and Linux systems!
+In addition to the firmware for hardware products like
+[TeleMetrum](../TeleMetrum), [TeleMini](../TeleMini), and
+[TeleDongle](../TeleDongle), the AltOS source tree also
+includes AltosUI, which provides for flight monitoring, post-flight
+analysis, device configuration and firmware updating. AltosUI runs on
+Linux, Mac OS X and Windows. It's written in [Java](http://java.com)
+and offers the same functionality and interface on all three
+platforms. A small platform-specific library communicates with the USB
+interface on the Altus Metrum devices.
-The firmware and associated software are licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
+There are also Linux-specific tools that provide lower level access to
+the devices which are useful for developing firmware for the devices.
+
+We maintain a list of [launch site GPS coordinates](https://maps.altusmetrum.org/launch-sites.txt). If your favorite launch site isn't included, please let us know!
## Available Versions ##
-There is a single manual for all Altus Metrum products, which is available
+There is a single manual for most Altus Metrum products, which is available
in [html](doc/altusmetrum.html) and [pdf](doc/altusmetrum.pdf) formats.
-[[!inline pages="./releases/* and !*/Discussion and !*.bz2 and !*.zip and !*.exe" show="10" rss="no" raw="yes" ]]
-
-The latest source is always available from [git.gag.com](http://git.gag.com)
-in the project [fw/altos](http://git.gag.com/?p=fw/altos;a=summary).
-
-If you need to debug code on an Altus Metrum product, you may want the special
-version of SDCC containing a highly modified sdcdb with support for the cc1111
-debugging interface, which you can find on [git.gag.com](http://git.gag.com)
-in the project [fw/sdcc](http://git.gag.com/?p=fw/sdcc;a=summary). This is
-not necessary if you just want to rebuild AltOS and use it.
-
-## Features ##
-
-Version 0.7.1 is the first release containing our new cross-platform Java-based user interface. AltosUI can:
+We also have an AltOS internals document for programmers
+in [html](doc/altos.html) and [pdf](doc/altos.pdf) formats, and a
+document describing the AltOS over the radio protocol
+in [html](doc/telemetry.html) and [pdf](doc/telemetry.pdf) formats.
-* Receive and log telemetry from a connected TeleDongle device. All data
- received is saved to log files named with the current date and the connected
- rocket serial and flight numbers. There is no mode in which telemetry data
- will not be saved.
+If you're running Windows 8, you should take a look at [Installing AltosUI on
+Windows 8](Win8) which will help you install the operating system
+drivers needed to communicate with the USB hardware.
-* Download logged data from TeleMetrum devices, either through a direct USB
- connection or over the air through a TeleDongle device.
+If you're running a recent version of Mac OS X, you'll probably need
+to read [Installing AltosUI on Mac OS X](MacOSX). This describes how
+to get rid of the the 'App is damaged' messages and run the program.
-* Configure a TeleMetrum device, setting the radio channel, callsign, apogee
- delay and main deploy height. This can be done through either a USB
- connection or over a radio link via a TeleDongle device.
+Each available download includes AltosUI, documentation, and firmware updates
+for all current products.
-* Replay a flight in real-time. This takes a saved telemetry log or eeprom
- download and replays it through the user interface so you can relive your
- favorite rocket flights.
+[[!inline pages="./releases/* and !*/Discussion and !*.ihx and !*.sh and !*.html and !*.bz2 and !*.zip and !*.exe and !*.dmg" show="10" rss="no" raw="yes" ]]
-* Reprogram Altus Metrum devices. Using an Altus Metrum device connected via
- USB, another Altus Metrum device can be reprogrammed using the supplied
- programming cable between the two devices.
+Note that [older versions](releases/) are still available if you really need
+them for some reason.
-* Export Flight data to a comma-separated-values file. This takes either
- telemetry or on-board flight data and generates data suitable for use in
- external applications. All data is exported using standard units so that no
- device-specific knowledge is needed to handle the data.
+## Source Code ##
-* Speak to you during the flight. Instead of spending the flight hunched over
- your laptop looking at the screen, enjoy the view while the computer tells
- you what’s going on up there. During ascent, you hear the current flight
- state and altitude information. During descent, you get azimuth, elevation
- and range information to try and help you find your rocket in the air. Once
- on the ground, the direction and distance are reported.
+The latest source, which may include unreleased work in progress, is always
+available from [git.gag.com](http://git.gag.com)
+in the project [fw/altos](http://git.gag.com/?p=fw/altos;a=summary).
-AltosUI provides all of these features on the three target operating systems,
-Linux, Mac OS X (version 10.5 or newer) and Windows (XP, Vista or 7). The bulk
-of the software is written in Java and is built once and tested and delivered
-on all three target platforms. A tiny ‘shim’ library is built on each system
-to provide access to the Altus Metrum devices connected over the USB link.
+We've gathered a few notes on [buidling AltOS](building).
## Future Plans ##
+Bug reports, feature requests, and planning for AltOS releases happens
+on the [Altus Metrum Trac Site](http://trac.gag.com/altusmetrum).
+
A number of features are implemented or in process in the sources available
in our publicly visible repository that are not part of the current stable
-release. Some of these features are already available in our C utilities,
-but not yet part of our second-generation Java user interface altosui.
-
-* [Google Earth](http://earth.google.com) "KML" file export. The
- first-generation C program ao-postflight can do this, the implementation
- in altosui has improvements.
-
-* Data plotting. The first-generation C program ao-postflight can output a
- set of standard plots as an svg file. The plotting code we're integrating
- into altosui supports direct interaction with the data and is much more fun!
-
-* State-dependent display. When the rocket is on the pad, you mostly want to
- know if it’s ready to fly. When the rocket is descending on a chute, you
- want to know where it is in the sky and how fast its falling. Presenting a
- limited amount of information that represents what is most interesting to
- the user at any given time should make the display easier to read.
-
-* Ejection charge testing. The TeleMetrum firmware has the ability to be
- commanded to fire ejection charges over the USB or radio links. Safely
- hooking this up to the user interface will allow for wireless ejection
- system testing. It is possible to do this today with a terminal program,
- but we want this to be a feature in altosui. The key here is “safely”, of
- course, which means figuring out a ‘fool proof’ user interface.
-
-* A Kalman-filter based approach to apogee detection using more than just the
- baro sensor, so that we can safely control apogee ejection on flights to
- altitudes beyond the range of our baro sensor alone. Unlike the other items
- on the list, this will be a significant change to the in-rocket TeleMetrum
- firmware. It may therefore be a while before this becomes part of a stable
- firmware release.
+release.
+
+* Motor characterization. Because TeleMetrum contains a
+ high-resolution, high-frequency accelerometer, it is possible to
+ take the data from that and compute an accurate thrust curve for
+ the motor.
+
+* Comprehensive PDF and/or HTML -based flight report. Construct a
+ complete report of the flight suitable for publication on the web
+ that includes graphs of the flight and details about motor
+ performance etc.
+
+* Publish flight data to the Altus Metrum web site. This will allow
+ you to share your flight data with others, and let you download
+ flights published by others.
There are any number of additions that could be made to this list; feel free
to send along ideas that you’ve got. Of course, all of this software is
### Linux ###
-If you use [Debian](http://www.debian.org), then a pre-built package for
-32-bit x86 is currently available here:
+If you use [Debian](http://www.debian.org), you can simply install the 'altos'
+package from any Debian mirror, like so:
- wget -O - http://altusmetrum.org/apt/altusmetrum.key | apt-key add -
- wget -O /etc/apt/sources.list.d/altos.list http://altusmetrum.org/apt/altos.list
- apt-get update
- apt-get install altos
+ apt-get update
+ apt-get install altos
If you use some other distribution of Linux, then
a Linux package of our second-generation Java bits that
### Mac ###
-A Mac OS X package that is compatible with
-versions 10.5 "Leopard" and later (including 10.6 "Snow Leopard") is
-available. The Mac operating system includes Java, and all Altus Metrum
-products show up as simple USB serial ports, so this should just work
-with no additional drivers or other dependency issues. Older versions of
-the Mac operating system come with Java versions that are too old for use
-with Altus Metrum software, and we know of no way to update the Java version
-other than upgrading to a newer operating system.
+A Mac OS X package that is compatible with versions 10.5 "Leopard" and
+later. The Mac operating system includes Java, and all Altus Metrum products
+show up as simple USB serial ports, so this should just work with no
+additional drivers or other dependency issues. Older versions of the Mac
+operating
+system, and even newer versions for PowerPC-based machines, come with
+Java version 5 or older, which is too old for use with Altus Metrum
+software. We know of no way to update the Java version other than
+upgrading to a newer operating system (for Intel based macs) or
+purchasing new hardware (for PowerPC based macs).
+
+If you have trouble installing on a Mac, and are getting errors about the
+package being corrupt, you may not be configured to allow installation of
+software from arbitrary sources. One customer running 10.8.1 reported that
+he was able to work around this by going to "System Preferences", "Security
+& Privacy", "General", and then clicking the "Anywhere" radio button where
+it askes "Allow applications downloaded from:".
### Windows ###
the required USB serial device driver, and our package should do the right
things to bind it to our devices, but if you get a complaint about the device
being unrecognized, try pointing to the copy of the telemetrum.inf file
-included in the package directory manually. Reports of success or failure
-with other versions of Windows would be appreciated!
+included in the package directory manually.
+
+Note that on some Windows 7 systems, it may be necessary to install AltOS using
+'compatibility mode'. You can set this mode by
+[changing the properties](http://www.sevenforums.com/tutorials/316-compatibility-mode.html)
+of the installer .exe.
+
+## License ##
+
+The firmware and associated software are licensed [GPL version
+2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)