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.

Release Notes for Version 1.8.2

Release Notes for Version 1.8.2


Version 1.8.2 includes support for TeleGPS version 2.0 along with accelerometer recalibration support in AltosUI.

1.8.2 also contains a couple of minor fixes for AltosUI when analyzing saved data files.

1. AltOS

AltOS New Features

  • Support for TeleGPS version 2.0 hardware.

2. AltosUI and TeleGPS Applications

AltosUI and TeleGPS New Features

  • Support for TeleGPS version 2.0.
  • Accelerometer re-calibration user interface.

AltosUI and TeleGPS Bug Fixes

  • Prevent some crashes when reading older saved flight data for graphing or KML export.

Release Notes for Version 1.8.1

Release Notes for Version 1.8.1


Version 1.8.1 includes an important bug fix for Apogee Lockout operation in all flight computers. Anyone using this option must update firmware.

This release also contains a change in how flight computers with accelerometers deal with speeds around and above Mach 1. In previous versions, the flight computer would completely disregard the barometric sensor above 330m/s (around Mach 1). Now, the data from the barometric sensor is reduced in effect without ever going away entirely. This prevents early drogue deployment for flights which spend considerable time above Mach 1.

1.8.1 also contains a couple of minor fixes for AltosUI when analyzing saved data files.

1. AltOS

AltOS Bug Fixes

  • Handle time value wrapping in Apogee Lockout correctly. Without this, apogee lockout would sometimes prevent any drogue charge from firing.
  • Change Kalman filter on flight computers with accelerometer to continue using the barometric sensor even at high speeds to avoid unintentional drogue deployment during deceleration.

2. AltosUI and TeleGPS Applications

AltosUI New Features

  • Add new Huge font size to make text even bigger on high resolution monitors.

AltosUI Bug Fixes

  • Prevent some crashes when reading older saved flight data for graphing or KML export.
  • Load frequency preference at startup. The loading code was broken, so you’d see only the default frequencies.


AltOS Version 1.8

Release Notes for Version 1.8

Release Notes for Version 1.8


Version 1.8 includes support for our new TeleBT v4.0 ground station, updates for data analysis in our ground station software and bug fixes in in the flight software for all our boards and ground station interfaces.

1. AltOS

AltOS New Features

  • Add support for TeleBT v4.0 boards.

2. AltosUI and TeleGPS Applications

AltosUI New Features

  • Add support for TeleBT v4.0 hardware
  • Rewrite graphing and export functions. This code now handles each data series separately so that graphs are drawn correctly. Smoothing now uses a filter that looks both forward and backwards in time to make computed speed and acceleration data more accurate.

AltosUI Bug Fixes

  • Correct axis labeling of magnetic sensor in TeleMega and EasyMega. The Y and Z axes were flipped.


AltOS Version 1.7

Release Notes for Version 1.7

Release Notes for Version 1.7


Version 1.7 includes support for our new TeleMini v3.0 flight computer and bug fixes in in the flight software for all our boards and ground station interfaces.

1. AltOS

AltOS New Features

  • Add support for TeleMini v3.0 boards.

AltOS Fixes

  • Fix interrupt priorities on STM32L processors. Run timer interrupt at lowest priority so that device interrupts get serviced first.

2. AltosUI and TeleGPS Applications

AltosUI New Features

  • Add support for TeleMini v3.0 hardware


AltOS Version 1.6.8

Release Notes for Version 1.6.8

Release Notes for Version 1.6.8


Version 1.6.8 fixes a TeleMega and TeleMetrum v2.0 bug where the device could 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 DMA driver to work around STM32L SoC DMA priority issue t lock-up in the logging or radio code, either of which could stop data logging and telemetry.
  • Avoid having TeleBT battery status values smash telemetry packet data by holding a lock during both operations.
  • Don’t start reporting flight 0 when the log fills in flight.

AltOS changes:

  • Flash LEDS on all products briefly during power up so that they can be tested during production.

2. AltosUI, TeleGPS and AltosDroid Applications

AltosUI fixes:

  • Re-enable go/no-go entries after they’ve been disabled due to lack of data. If telemetry information is delayed when the Ui starts up, sometimes important fields would get disabled to never re-appear.
  • Deal with ground station failure better during Configure Ground Station operation by cleaning up pending operations.


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.

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