# AltOS AltOS is the name of Keith's firmware "operating system" for [TeleMetrum](../TeleMetrum/) and [TeleDongle](../TeleDongle/). In addition to the firmware for [TeleMetrum](../TeleMetrum) and [TeleDongle](../TeleDongle) boards, 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. There are also Linux-specific tools that provide lower level access to the devices which are useful for developing firmware for the devices. The firmware and associated software are licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) ## Available Versions ## There is a single manual for all 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. ### Version 0.8 Features ### Version 0.8 offers a major upgrade in the AltosUI interface. Significant new features include: * Post-flight graphing tool. This lets you explore the behaviour of your rocket after flight with a scroll-able and zoom-able chart showing the altitude, speed and acceleration of the airframe along with events recorded by the flight computer. You can export graphs to PNG files, or print them directly. * Real-time moving map which overlays the in-progress flight on satellite imagery fetched from [Google Maps](http://maps.google.com). This lets you see in pictures where your rocket has landed, allowing you to plan recovery activities more accurately. * Wireless recovery system testing. Prep your rocket for flight and test fire the deployment charges to make sure things work as expected. All without threading wires through holes in your airframe. * Optimized flight status displays. Each flight state now has it's own custom 'tab' in the flight monitoring window so you can focus on the most important details. Pre-flight, the system shows a set of red/green status indicators for battery voltage, apogee/main igniter continutity and GPS reception. Wait until they're all green and your rocket is ready for flight. There are also tabs for ascent, descent and landing along with the original tabular view of the data. * Monitor multiple flights simultaneously. If you have more than one TeleDongle, you can monitor a flight with each one on the same computer. * Automatic flight monitoring at startup. Plug TeleDongle into the machine before starting AltosUI and it will automatically connect to it and prepare to monitor a flight. * Exports Google Earth flight tracks. Using the Keyhole Markup Language (.kml) file format, this provides a 3D view of your rocket flight through the Google Earth program. ### Version 0.7.1 Features ### Version 0.7.1 is the first release containing our new cross-platform Java-based user interface. AltosUI can: * 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. * Download logged data from TeleMetrum devices, either through a direct USB connection or over the air through a TeleDongle device. * 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. * 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. * 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. * 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. * 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. 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. ## Future Plans ## 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. * 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. * 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 licensed under the GNU General Public License, so you can get the source and hack on it in the comfort of your own home. ## Platform Specific Notes ## ### Linux ### If you use [Debian](http://www.debian.org), then a pre-built package for 32-bit x86 is currently available here: 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 If you use some other distribution of Linux, then a Linux package of our second-generation Java bits that should run on any distribution with a modern Java version is also available. Unlike the Debian pacakge, which depends on various libraries already part of the Debian distribution, this package includes a "fat" jar file with all of the Java libraries that aren't part of the basic Java runtime environment included, so it should "just work" on any system with Java 6. Development and testing is done with OpenJDK 6, but current downloads from [java.com](http://java.com) should be fine too. If you'd rather build from source, our source tree includes documentation on how to build packages for various Linux systems such as [Arch Linux](http://www.archlinux.org), and the debian/ directory contains all the control files for building the Debian packages on other architectures or derivatives such as [Ubuntu](http://ubuntu.com). Bdale has also created a theme for [GDM](http://projects.gnome.org/gdm/) that he uses on his primary notebook, and the [Simple Login Manager](http://slim.berlios.de/) that he uses on all of his other machines and which is ideally suited for machines dedicated to AltOS ground station use. It includes a photo of a drag-race between nearly-identical rockets built by Keith and Bdale, that was the first time either of us gave TeleMetrum complete control of a rocket flight without some other backup! See the themes/ directory in the source tree (the themes are included in the Debian package). ### 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, 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). ### Windows ### Our Windows package is known to work on at least some flavors of XP, Vista, and Windows 7 Enterprise. If you don't already have Java installed, download and install a current Java 6 version from [java.com](http://java.com) first. Then download our installer and run it. Windows already has 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.