AltOS

AltOS is the name of Keith's firmware "operating system" for Altus Metrum products.

In addition to the firmware for hardware products like TeleMetrum, TeleMini, and 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 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.

We maintain a list of launch site GPS coordinates. If your favorite launch site isn't included, please let us know!

Available Versions

There is a single manual for most Altus Metrum products, which is available in html and pdf formats.

We also have an AltOS internals document for programmers in html and pdf formats, and a document describing the AltOS over the radio protocol in html and pdf formats.

If you're running Windows 8, you should take a look at Installing AltosUI on Windows 8 which will help you install the operating system drivers needed to communicate with the USB hardware.

Each available download includes AltosUI, documentation, and firmware updates for all current products.


AltOS Version 1.6.5

Release Notes for Version 1.6.5

Release Notes for Version 1.6.5


Version 1.6.5 fixes a TeleMega and TeleMetrum v2.0 bug where the device would often stop logging data and transmitting telemetry in flight. All TeleMega v1.0, v2.0 and TeleMetrum v2.0 users should update their flight firmware.

1. AltOS

AltOS fixes:

  • Fix STM32L SPI driver to prevent lock-up in the logging or radio code, either of which could stop data logging and telemetry. Found and characterized by Chuck Haskin, who also tested the new firmware before release.

2. AltosUI, TeleGPS and AltosDroid Applications

AltosUI fixes:

  • Deliver firmward for TeleMega v2.0 and TeleBT v3.0 with Windows package.


AltOS Version 1.6.4

Release Notes for Version 1.6.4

Release Notes for Version 1.6.4


Version 1.6.4 fixes a bluetooth communication problem with TeleBT v1.0 devices, along with some altosui and altosdroid minor nits. It also now ships firmware for some newer devices.

1. AltOS

AltOS fixes:

  • Fix hardware flow control on TeleBT v1.0. Hardware RTS/CTS doesn’t seem to work, switch from using the hardware to driving these pins with software.
  • Fix ARM USB drivers to deal with OS restarts. Needed to reset all USB-related state when the USB bus is reset. These fixes affect all STM32L, STM32F0 and LPC11U14 based devices.

2. AltosUI, TeleGPS and AltosDroid Applications

AltosUI, TeleGPS and AltosDroid New Features:

  • Automatically switch from meters or feet to kilometers or miles for distance units.
  • Add Monitor Idle mode to TeleGPS application.

AltosUI, TeleGPS and AltosDroid Fixes:

  • Abort map preloading when the preload map dialog is closed.
  • In AltosDroid, Don’t reconnect to last device if the user had disconnected it the last time the application was active.

3. Documentation

  • Mention TeleMega v2.0 in hardware specs table.
  • Document TeleGPS RF output in telegps manual.


AltOS Version 1.6.3

Release Notes for Version 1.6.3

Release Notes for Version 1.6.3


Version 1.6.3 adds idle mode to AltosDroid and has bug fixes for our host software on desktops, laptops an android devices along with BlueTooth support for Windows.

1. AltOS

AltOS fixes:

  • Fix hardware flow control on TeleBT v3.0. RTS/CTS is wired backwards on this board, switch from using the hardware to driving these pins with software.

2. AltosUI and TeleGPS Applications

AltosUI and TeleGPS New Features:

  • Add BlueTooth support for Windows operating system. This supports connections to TeleBT over BlueTooth rather than just USB.

AltosUI and TeleGPS Fixes:

  • Change Java detection and install on Windows. Detection is now done by looking for the javaw.exe program, and installation by opening a browser on the java.com web site.
  • Delay polling while the Fire Igniters is visible to allow for TeleMega to report back complete status over the radio.
  • Disallow changing RF calibration numbers in the configuration UI. There’s no good reason to change this from the field, and recovering is really hard if you haven’t written down the right number.
  • Fix USB device discovery on Mac OS X El Capitan. This makes the connected Altus Metrum USB devices appear again.
  • Fix acceleration data presented in MonitorIdle mode for TeleMetrum v2.0 flight computers.

3. AltosDroid

AltosDroid new features:

  • Monitor Idle mode. Check state of flight computer while in idle mode over the radio link
  • Fire Igniters. Remotely fire ignires for recovery system ground tests.
  • Remote reboot. Cause the flight computer to reboot over the radio link. This provides a method for switching the flight computer from idle to flight mode without needing to reach the power switch.
  • Configurable frequency menu. Change the set of available frequencies and provide more descriptive names.

AltosDroid bug fixes:

  • Don’t set target location if GPS hasn’t locked yet.
  • Fix saving target states so they can be reloaded when the application restarts. When the application is shut down and restarted, all previous target state information will be restored (including GPS position if available).
  • Fix crash on some Android devices for offline maps when changing the map scale or location.
  • Don’t require USB OTG support. This kept the latest AltosDroid from being offered on devices without USB device support, although it can work without that just fine using BlueTooth.
  • Don’t require bluetooth to be enabled. This allows the application to operate with USB devices or just show old data without turning on the bluetooth radio.
  • Recover old tracker positions when restarting application. This finally allows you to safely stop and restart the application without losing the last known location of any tracker.

4. Documentation

  • Document TeleMega and EasyMega additional pyro channel continuity audio alert pattern.


AltOS Version 1.6.2

Release Notes for Version 1.6.2

Release Notes for Version 1.6.2

Bdale Garbee

Keith Packard

This document is released under the terms of the Creative Commons ShareAlike 3.0 license.


Version 1.6.2 includes support for our updated TeleMega v2.0 product and bug fixes in in the flight software for all our boards and ground station interfaces.

1. AltOS

AltOS New Features:

  • Add support for TeleMega v2.0 boards.
  • Add PWM servo driver. There’s no higher level code using this yet, but the driver allows testing of the TeleMega v2.0 servo output connector.

AltOS Fixes:

  • Slow down telemetry packets to allow receiver to keep up.

2. AltosUI and TeleGPS Applications

AltosUI and TeleGPS Fixes:

  • Fix post-flight orientation computation when processing TeleMega and EasyMega eeprom data files.
  • Capture complete eeprom data even when there are invalid entries in the data. This keeps reading eeprom contents and writing the associated .eeprom file when an error is detected.

3. Documentation

We spent a bunch of time trying to improve our documentation

  • HTML versions now have a table of contents on the left side.
  • EasyMini now has its own shorter manual.
  • Provide links between sections in each document.
  • Lots of minor rewriting and restructuring to avoid duplication of information


AltOS Version 1.6.1


Version 1.6.1 includes support for our updated TeleBT v3.0 product and bug fixes in in the flight software for all our boards and ground station interfaces.

AltOS New Features

  • Add support for TeleBT v3.0 boards.

  • Add support for uncompressed APRS data, providing support for older APRS receivers. Uncompressed APRS data is less precise, takes more bandwidth and doesn't have integrated altitude data.

AltOS Fixes

  • Make TeleDongle and TeleBT more tolerant of data rate variations from transmitting devices.

AltosUI and TeleGPS New Features

  • Add map to Monitor Idle display. It's nice to be able to verify that maps are working, instead of needing to use Monitor Flight.

AltosUI Fixes

  • Fix frequency configuration to round values instead of truncate them, avoiding a common 1kHz error in the setting.

  • Turn the Windows stub into a more useful program that can launch the application with parameters so that file manager icons work more reliably.

  • Force KML export to use a C locale so that numbers are formatted with '.' instead of ',' for a decimal separator in non-US locales.

  • Preload map tiles based on distance rather than number of tiles; this means you get the same resolution covering the entire area, rather than having high resolution near the center and low resolution further away.

  • Allow configuration of frequency and callsign in Monitor Idle mode.

  • Fix layout weirdness when resizing windows on Windows. Windows shouldn't have giant blank spaces around the useful content anymore.

  • Fix layout weirdness when resizing windows on Windows. Windows shouldn't have giant blank spaces around the useful content anymore.

  • Use a longer filter for descent speed values. This should provide something more useful on the display, although it will take longer to respond to changes now.

  • Make Replay Flight run in realtime again. It had been set to run at 10x speed by mistake.

AltosDroid New Features

  • Add offline map support using mapping code from AltosUI.

  • Support TeleDongle (and TeleBT via USB) on devices supporting USB On-The-Go.

  • Display additional TeleMega pyro channel status in Pad tab.

  • Switch between metric and imperial units.

  • Monitor TeleBT battery voltage.

  • Track multiple devices at the same time, selecting between them with a menu or using the map.

  • Add hybrid, satellite and terrain map types.

AltosDroid Fixes

  • Use standard Android display conventions so that a menu button is available in the application title bar.

  • Adjust layout to work on large and small screens; shrinking the go/no-go lights in smaller environments to try and make everything visible.

  • Make voice announcements depend on current tab.

  • Compute adjustment to current travel direction while in motion towards rocket.


AltOS Version 1.6


Version 1.6 includes support for our updated TeleDongle v3.0 product and bug fixes in in the flight software for all our boards and ground station interfaces.

AltOS New Features

  • Add support for TeleDongle v3.0 boards.

AltOS Fixes

  • Don't beep out the continuity twice by accident in idle mode. If the battery voltage report takes longer than the initialiation sequence, the igniter continuity would get reported twice.

  • Record all 32 bits of gyro calibration data in TeleMega and EasyMega log files. This fixes computation of the gyro rates in AltosUI.

  • Change TeleDongle LED usage. Green LED flashes when valid packet is received. Red LED flashes when invalid packet is received.

  • Replace LPC11U14 SPI driver with non-interrupt version. The interrupt code would occasionally wedge on long transfers if interrupts were blocked for too long. This affects all released TeleGPS products; if you have a TeleGPS device, you'll want to reflash the firmware.

AltosUI and TeleGPS New Features

  • Compute tilt angle from TeleMega and EasyMega log files. This duplicates the quaternion-based angle tracking code from the flight firmware inside the ground station software so that post-flight analysis can include evaluation of the tilt angle.

  • Shows the tool button window when starting with a data file specified. This means that opening a data file from the file manager will now bring up the main window to let you operate the whole application.

AltosUI Fixes

  • Show the 'Connecting' dialog when using Monitor Idle. Lets you cancel the Monitor Idle startup when connecting over the radio link.

  • Make 'Monitor Idle' work for TeleGPS devices when connected over USB. It's nice for testing without needing to broadcast over the radio.

  • Use different Windows API to discover USB devices. This works better on my Windows 7 box, and will be used if the older API fails to provide the necessary information.

  • Look in more places in the registry to try and identify the installed Java version on Windows. If you install the default 32-bit version of Windows on a 64-bit OS, the Java registry information is hiding \SOFTWARE\Wow6432Node for some reason.

  • Fix file association on Windows by searching for the javaw.exe program instead of assuming it is in %SYSTEMROOT%. This makes double-clicking on Altus Metrum data files in the file manager work correctly.

  • When replaying a file, put 'done' in the Age field when we reach the end of the file, instead of continuing to count forever.

  • In the Scan Channels code, wait for five seconds if we see any packet. This is needed because AltOS now sends the callsign, serial number and flight number only once every five seconds these days.

  • In the Scan Channels code, reset pending flight state information each time we change channels. This avoids having flight computers appear on multiple frequencies by accident.


AltOS Version 1.5


Version 1.5 is a major release. It includes support for our new EasyMega product, new features and bug fixes in in the flight software for all our boards and the AltosUI ground station

AltOS New Features

  • Add support for EasyMega boards.

  • Make the APRS SSID be configurable. This lets you track different rockets on the same receiver without getting things mixed up.

  • Report extra pyro channel continuity state on EasyMega and TeleMega via the beeper. This lets you easily verify flight readiness on these boards after powering up the electronics on the rail.

  • Add lower telemetry data rates (2400 and 9600 bps) to increase telemetry radio range. This reduces the amount of data received as well as increasing battery consumption in the transmitter.

  • Change TeleGPS to have only a single log, and append new data to it rather than using seperate per-flight logs. This avoids accidentally filling up log storage by turning TeleGPS on/off several times.

AltOS Fixes

  • Increase the maximum range for altitude values from +/-32767m to +/-2147483647m, allowing the flight computers to function correctly above the 32km level.

  • Continuously test pyro firing conditions during delay stage, inhibiting the pyro channel if the test fails. This prevents firing pyro charges where the conditions were good before the delay, but become bad before the delay expires.

  • Allow negative numbers in pyro configuration values. This lets you specify things like descending speed or deceleration.

AltosUI and TeleGPS New Features

  • Support telemetry baud rate selection. Adds menus to the flight monitoring and configuration for baud rate selection.

  • Support APRS SSID configuration.

  • Integrate with file managers. This provides icons for all of our file types and associates our application with the files so that using a file manager to open a AltOS data file results in launching our application.

AltosUI Fixes

  • Make the 'Graph' button on the landed tab work again.

  • Make tests for Java on Windows a bit smarter, and also provide the user with the option to skip installing Java for cases where we just can't figure out what version is installed.


AltOS Version 1.4.1


Version 1.4.1 is a minor release. It fixes install issues on Windows and provides the missing TeleMetrum V2.0 firmware. There aren't any changes to the firmware or host applications at all. All Windows users will want to upgrade to get the signed driver, but Mac and Linux users who do not need the TeleMetrum V2.0 firmware image will not need to upgrade.

Windows Install Fixes

  • Provide signed Windows driver files. This should avoid any need to disable driver signature checking on Windows 7 or 8.

  • Fix Java version detection and download. Previously, the installer would only look for Java 6 or 7 and insist on downloading its own Java bits if there was something else installed. Furthermore, the 64-bit Java link provided didn't work for anyone other than Keith, making it impossible to install AltOS on any machine with Java SE 8 installed.

Other Fixes

  • Include 1.4 firmware for TeleMetrum V2.0. None of the installers shipped this file. Now it's included in the AltOS packages for Linux, Mac and Windows.

  • Include Google Application Key for map downloading. The 1.4 release didn't have this key in the released version of the software, making map downloading fail for most people.


AltOS Version 1.4


Version 1.4 is a major release. It includes support for our new TeleGPS product, new features and bug fixes in in the flight software for all our boards and the AltosUI ground station

AltOS New Features

  • Add support for TeleGPS boards.

  • Replace the 'dit dit dit' tones at startup with the current battery voltage, measured in tenths of a volt. This lets you check the battery voltage without needing telemetry, which is especially useful on EasyMini.

  • Change state beeping to "Farnsworth spacing", which means they're quite a bit faster than before, and so they take less time to send.

  • Make the beeper tone configurable, making it possible to distinguish between two Altus Metrum products in the same ebay.

  • Make the firing time for extra pyro channels configurable, allowing longer (or shorter) than the default 50ms. Only relevant for TeleMega at this time.

AltOS Fixes

  • Fix bug preventing the selection of the 'Flight State After' mode in pyro configuration.

  • Fix bug where erasing flights would reset the flight number to 2 on TeleMega and TeleMetrum v2.

  • Fix u-Blox GPS driver to mark course and speed data as being present.

AltosUI New Features

  • Add zooming and new content types (terrain and road maps) to map view. Change map storage format from PNG to Jpeg, which saves a huge amount of disk space. You will need to re-download all of your pre-loaded map images.

  • Add a distance measuring device to the maps view. Select this by using any button other than the left one, or by pressing shift or control on the keyboard while using the left button.

  • Add new 'Ignitor' tab to the flight monitor display for TeleMega's extra ignitors.

  • Increase the width of data lines in the graphs to make them easier to read.

  • Add additional ignitor firing marks and voltages to the graph so you can see when the ignitors fired, along with the ignitor voltages.

  • Add GPS course, ground speed and climb rate as optional graph elements.

AltosUI Fixes

  • When flashing new firmware, re-try opening the device as sometimes it takes a while for the underlying operating system to recognize that the device has rebooted in preparation for the flashing operation.

  • Hide Tilt Angle in ascent tab for devices that don't have a gyro.

  • Filter out speed and acceleration spikes caused by ejection charge firing when computing the maximum values. This provides a more accurate reading of those maximums.

  • Fix EasyMini voltage displays. Early EasyMini prototypes used a 3.0V regulator, and AltosUI still used that value as the basis of the computation. Production EasyMini boards have always shipped with a 3.3V regulator. Also, purple EasyMini boards sensed the battery voltage past the blocking diode, resulting in a drop of about 150mV from the true battery voltage. Compensate for that when displaying the value.

  • Display error message when trying to configure maximum flight log size while the flight computer still has flight data stored.

  • Handle TeleMetrum and TeleMini eeprom files generated with pre-1.0 firmware. Those ancient versions didn't report the log format, so just use the product name instead.

TeleGPS Application

  • New application designed for use with TeleGPS boards.

  • Shares code with AltosUI, mostly just trimmed down to focus on TeleGPS-related functions.

Documentation changes

  • Re-create the drill template images; they should print correctly from Firefox at least. Ship these as individual PDF files so they're easy to print.

  • Add a description of the 'Apogee Lockout' setting, which prevents the apogee charge from firing for a configurable amount of time after boost.


Version 1.3.2 is a minor release. It includes small bug fixes for the TeleMega flight software and AltosUI ground station

AltOS Firmware Changes

  • On TeleMega, limit number of logged GPS status information to 12 satellites. That's all there is room for in the log structure.

  • Improve APRS behavior. Remembers last known GPS position and keeps sending that if we lose GPS lock. Marks locked/unlocked by sending L/U in the APRS comment field along with the number of sats in view and voltages.

AltosUI changes

  • If the TeleMega flight firmware reports that it has logged information about more than 12 satellites, don't believe it as the log only holds 12 satellite records.

  • Track the maximum height as computed from GPS altitude data and report that in the flight summary data.

  • Use letters (A, B, C, D) for alternate pyro channel names instead of numbers (0, 1, 2, 3) in the Fire Igniter dialog.

Source Code

The latest source, which may include unreleased work in progress, is always available from git.gag.com in the project fw/altos.

We've gathered a few notes on buidling AltOS.

Future Plans

Bug reports, feature requests, and planning for AltOS releases happens on the Altus Metrum Trac Site.

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.

  • 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, you can simply install the 'altos' package from any Debian mirror, like so:

    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 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, and the debian/ directory contains all the control files for building the Debian packages on other architectures or derivatives such as Ubuntu.

Bdale has also created a theme for GDM that he uses on his primary notebook, and the Simple Login Manager 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. 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

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 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.

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 of the installer .exe.

License

The firmware and associated software are licensed GPL version 2