<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<meta name="generator" content="Asciidoctor 2.0.10">
+<meta name="generator" content="Asciidoctor 2.0.17">
<meta name="author" content="Keith Packard, Bdale Garbee, Bob Finch, Anthony Towns">
-<meta name="copyright" content="Bdale Garbee and Keith Packard 2020">
+<meta name="copyright" content="Bdale Garbee and Keith Packard 2022">
<title>The Altus Metrum System: An Owner’s Manual for Altus Metrum Rocketry Electronics</title>
<link rel="stylesheet" href="./am.css">
</head>
<span id="email2" class="email"><a href="mailto:bdale@gag.com">bdale@gag.com</a></span><br>
<span id="author3" class="author">Bob Finch</span><br>
<span id="author4" class="author">Anthony Towns</span><br>
-<span id="revnumber">version v1.9.6,</span>
-<span id="revdate">29 Sep 2020</span>
+<span id="revnumber">version v1.9.12,</span>
+<span id="revdate">28 Oct 2022</span>
</div>
<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<li><a href="#_configurable_parameters">A.7. Configurable Parameters</a></li>
</ul>
</li>
-<li><a href="#_handling_precautions">Appendix B: Handling Precautions</a></li>
-<li><a href="#_updating_device_firmware">Appendix C: Updating Device Firmware</a>
+<li><a href="#_example_pyro_channel_configurations">Appendix B: Example Pyro Channel Configurations</a>
<ul class="sectlevel2">
-<li><a href="#_updating_telemega_telemetrum_v2_or_newer_easymega_easymini_teledongle_v3_or_telebt_v3_firmware">C.1. Updating TeleMega, TeleMetrum v2 or newer, EasyMega, EasyMini, TeleDongle v3 or TeleBT v3 Firmware</a></li>
-<li><a href="#_pair_programming">C.2. Pair Programming</a></li>
+<li><a href="#_two_stage_flights">B.1. Two-Stage Flights</a></li>
+<li><a href="#_triggered_clusters_and_air_starts">B.2. Triggered Clusters and Air Starts</a></li>
+<li><a href="#_redundant_apogee">B.3. Redundant Apogee</a></li>
+<li><a href="#_redundant_main">B.4. Redundant Main</a></li>
+<li><a href="#_apogee_above_baro_sensor_limit">B.5. Apogee Above Baro Sensor Limit</a></li>
</ul>
</li>
-<li><a href="#_flight_data_recording">Appendix D: Flight Data Recording</a></li>
-<li><a href="#_altus_metrum_hardware_specifications">Appendix E: Altus Metrum Hardware Specifications</a></li>
-<li><a href="#_release_notes">Appendix F: Release Notes</a>
+<li><a href="#_handling_precautions">Appendix C: Handling Precautions</a></li>
+<li><a href="#_updating_device_firmware">Appendix D: Updating Device Firmware</a>
<ul class="sectlevel2">
-<li><a href="#_release_notes_for_version_1_9_6">F.1. Release Notes for Version 1.9.6</a></li>
-<li><a href="#_release_notes_for_version_1_9_5">F.2. Release Notes for Version 1.9.5</a></li>
-<li><a href="#_release_notes_for_version_1_9_4">F.3. Release Notes for Version 1.9.4</a></li>
-<li><a href="#_release_notes_for_version_1_9_3">F.4. Release Notes for Version 1.9.3</a></li>
-<li><a href="#_release_notes_for_version_1_9_2">F.5. Release Notes for Version 1.9.2</a></li>
-<li><a href="#_release_notes_for_version_1_9_1">F.6. Release Notes for Version 1.9.1</a></li>
-<li><a href="#_release_notes_for_version_1_9">F.7. Release Notes for Version 1.9</a></li>
-<li><a href="#_release_notes_for_version_1_8_7">F.8. Release Notes for Version 1.8.7</a></li>
-<li><a href="#_release_notes_for_version_1_8_6">F.9. Release Notes for Version 1.8.6</a></li>
-<li><a href="#_release_notes_for_version_1_8_5">F.10. Release Notes for Version 1.8.5</a></li>
-<li><a href="#_release_notes_for_version_1_8_4">F.11. Release Notes for Version 1.8.4</a></li>
-<li><a href="#_release_notes_for_version_1_8_3">F.12. Release Notes for Version 1.8.3</a></li>
-<li><a href="#_release_notes_for_version_1_8_2">F.13. Release Notes for Version 1.8.2</a></li>
-<li><a href="#_release_notes_for_version_1_8_1">F.14. Release Notes for Version 1.8.1</a></li>
-<li><a href="#_release_notes_for_version_1_8">F.15. Release Notes for Version 1.8</a></li>
-<li><a href="#_release_notes_for_version_1_7">F.16. Release Notes for Version 1.7</a></li>
-<li><a href="#_release_notes_for_version_1_6_8">F.17. Release Notes for Version 1.6.8</a></li>
-<li><a href="#_release_notes_for_version_1_6_5">F.18. Release Notes for Version 1.6.5</a></li>
-<li><a href="#_release_notes_for_version_1_6_4">F.19. Release Notes for Version 1.6.4</a></li>
-<li><a href="#_release_notes_for_version_1_6_3">F.20. Release Notes for Version 1.6.3</a></li>
-<li><a href="#_release_notes_for_version_1_6_2">F.21. Release Notes for Version 1.6.2</a></li>
-<li><a href="#_release_notes_for_version_1_6_1">F.22. Release Notes for Version 1.6.1</a></li>
-<li><a href="#_release_notes_for_version_1_6">F.23. Release Notes for Version 1.6</a></li>
-<li><a href="#_release_notes_for_version_1_5">F.24. Release Notes for Version 1.5</a></li>
-<li><a href="#_release_notes_for_version_1_4_2">F.25. Release Notes for Version 1.4.2</a></li>
-<li><a href="#_release_notes_for_version_1_4_1">F.26. Release Notes for Version 1.4.1</a></li>
-<li><a href="#_release_notes_for_version_1_4">F.27. Release Notes for Version 1.4</a></li>
-<li><a href="#_release_notes_for_version_1_3_2">F.28. Release Notes for Version 1.3.2</a></li>
-<li><a href="#_release_notes_for_version_1_3_1">F.29. Release Notes for Version 1.3.1</a></li>
-<li><a href="#_release_notes_for_version_1_3">F.30. Release Notes for Version 1.3</a></li>
-<li><a href="#_release_notes_for_version_1_2_1">F.31. Release Notes for Version 1.2.1</a></li>
-<li><a href="#_release_notes_for_version_1_2">F.32. Release Notes for Version 1.2</a></li>
-<li><a href="#_release_notes_for_version_1_1">F.33. Release Notes for Version 1.1</a></li>
-<li><a href="#_release_notes_for_version_1_1_2">F.34. Release Notes for Version 1.1</a></li>
-<li><a href="#_release_notes_for_version_1_0_1">F.35. Release Notes for Version 1.0.1</a></li>
-<li><a href="#_release_notes_for_version_0_9_2">F.36. Release Notes for Version 0.9.2</a></li>
-<li><a href="#_release_notes_for_version_0_9">F.37. Release Notes for Version 0.9</a></li>
-<li><a href="#_release_notes_for_version_0_8">F.38. Release Notes for Version 0.8</a></li>
-<li><a href="#_release_notes_for_version_0_7_1">F.39. Release Notes for Version 0.7.1</a></li>
+<li><a href="#_updating_telemega_telemetrum_v2_or_newer_telemini_v3_easymega_easymini_teledongle_v3_or_telebt_v3_firmware">D.1. Updating TeleMega, TeleMetrum v2 or newer, TeleMini v3, EasyMega, EasyMini, TeleDongle v3 or TeleBT v3 Firmware</a></li>
+<li><a href="#_pair_programming">D.2. Pair Programming</a></li>
+</ul>
+</li>
+<li><a href="#_frequency_calibration">Appendix E: Frequency Calibration</a>
+<ul class="sectlevel2">
+<li><a href="#_background_information">E.1. Background Information</a></li>
+<li><a href="#_required_equipment">E.2. Required Equipment</a></li>
+<li><a href="#_rf_calibration_procedure">E.3. RF Calibration Procedure</a></li>
+</ul>
+</li>
+<li><a href="#_flight_data_recording">Appendix F: Flight Data Recording</a></li>
+<li><a href="#_altus_metrum_hardware_specifications">Appendix G: Altus Metrum Hardware Specifications</a></li>
+<li><a href="#_release_notes">Appendix H: Release Notes</a>
+<ul class="sectlevel2">
+<li><a href="#_release_notes_for_version_1_9_12">H.1. Release Notes for Version 1.9.12</a></li>
+<li><a href="#_release_notes_for_version_1_9_11">H.2. Release Notes for Version 1.9.11</a></li>
+<li><a href="#_release_notes_for_version_1_9_10">H.3. Release Notes for Version 1.9.10</a></li>
+<li><a href="#_release_notes_for_version_1_9_9">H.4. Release Notes for Version 1.9.9</a></li>
+<li><a href="#_release_notes_for_version_1_9_8">H.5. Release Notes for Version 1.9.8</a></li>
+<li><a href="#_release_notes_for_version_1_9_7">H.6. Release Notes for Version 1.9.7</a></li>
+<li><a href="#_release_notes_for_version_1_9_6">H.7. Release Notes for Version 1.9.6</a></li>
+<li><a href="#_release_notes_for_version_1_9_5">H.8. Release Notes for Version 1.9.5</a></li>
+<li><a href="#_release_notes_for_version_1_9_4">H.9. Release Notes for Version 1.9.4</a></li>
+<li><a href="#_release_notes_for_version_1_9_3">H.10. Release Notes for Version 1.9.3</a></li>
+<li><a href="#_release_notes_for_version_1_9_2">H.11. Release Notes for Version 1.9.2</a></li>
+<li><a href="#_release_notes_for_version_1_9_1">H.12. Release Notes for Version 1.9.1</a></li>
+<li><a href="#_release_notes_for_version_1_9">H.13. Release Notes for Version 1.9</a></li>
+<li><a href="#_release_notes_for_version_1_8_7">H.14. Release Notes for Version 1.8.7</a></li>
+<li><a href="#_release_notes_for_version_1_8_6">H.15. Release Notes for Version 1.8.6</a></li>
+<li><a href="#_release_notes_for_version_1_8_5">H.16. Release Notes for Version 1.8.5</a></li>
+<li><a href="#_release_notes_for_version_1_8_4">H.17. Release Notes for Version 1.8.4</a></li>
+<li><a href="#_release_notes_for_version_1_8_3">H.18. Release Notes for Version 1.8.3</a></li>
+<li><a href="#_release_notes_for_version_1_8_2">H.19. Release Notes for Version 1.8.2</a></li>
+<li><a href="#_release_notes_for_version_1_8_1">H.20. Release Notes for Version 1.8.1</a></li>
+<li><a href="#_release_notes_for_version_1_8">H.21. Release Notes for Version 1.8</a></li>
+<li><a href="#_release_notes_for_version_1_7">H.22. Release Notes for Version 1.7</a></li>
+<li><a href="#_release_notes_for_version_1_6_8">H.23. Release Notes for Version 1.6.8</a></li>
+<li><a href="#_release_notes_for_version_1_6_5">H.24. Release Notes for Version 1.6.5</a></li>
+<li><a href="#_release_notes_for_version_1_6_4">H.25. Release Notes for Version 1.6.4</a></li>
+<li><a href="#_release_notes_for_version_1_6_3">H.26. Release Notes for Version 1.6.3</a></li>
+<li><a href="#_release_notes_for_version_1_6_2">H.27. Release Notes for Version 1.6.2</a></li>
+<li><a href="#_release_notes_for_version_1_6_1">H.28. Release Notes for Version 1.6.1</a></li>
+<li><a href="#_release_notes_for_version_1_6">H.29. Release Notes for Version 1.6</a></li>
+<li><a href="#_release_notes_for_version_1_5">H.30. Release Notes for Version 1.5</a></li>
+<li><a href="#_release_notes_for_version_1_4_2">H.31. Release Notes for Version 1.4.2</a></li>
+<li><a href="#_release_notes_for_version_1_4_1">H.32. Release Notes for Version 1.4.1</a></li>
+<li><a href="#_release_notes_for_version_1_4">H.33. Release Notes for Version 1.4</a></li>
+<li><a href="#_release_notes_for_version_1_3_2">H.34. Release Notes for Version 1.3.2</a></li>
+<li><a href="#_release_notes_for_version_1_3_1">H.35. Release Notes for Version 1.3.1</a></li>
+<li><a href="#_release_notes_for_version_1_3">H.36. Release Notes for Version 1.3</a></li>
+<li><a href="#_release_notes_for_version_1_2_1">H.37. Release Notes for Version 1.2.1</a></li>
+<li><a href="#_release_notes_for_version_1_2">H.38. Release Notes for Version 1.2</a></li>
+<li><a href="#_release_notes_for_version_1_1">H.39. Release Notes for Version 1.1</a></li>
+<li><a href="#_release_notes_for_version_1_1_2">H.40. Release Notes for Version 1.1</a></li>
+<li><a href="#_release_notes_for_version_1_0_1">H.41. Release Notes for Version 1.0.1</a></li>
+<li><a href="#_release_notes_for_version_0_9_2">H.42. Release Notes for Version 0.9.2</a></li>
+<li><a href="#_release_notes_for_version_0_9">H.43. Release Notes for Version 0.9</a></li>
+<li><a href="#_release_notes_for_version_0_8">H.44. Release Notes for Version 0.8</a></li>
+<li><a href="#_release_notes_for_version_0_7_1">H.45. Release Notes for Version 0.7.1</a></li>
</ul>
</li>
</ul>
<h2 id="_license">License</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>Copyright © 2018 Bdale Garbee and Keith Packard</p>
+<p>Copyright © 2022 Bdale Garbee and Keith Packard</p>
</div>
<div class="paragraph">
<p>This document is released under the terms of the <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons ShareAlike 3.0 License</a></p>
NAR #87103, TRA #12201</pre>
</div>
<div class="verseblock">
-<pre class="content">Keith Packard, KD7SQG
+<pre class="content">Keith Packard, K7WQ
NAR #88757, TRA #12200</pre>
</div>
</div>
callsign settings are, you can temporarily force it
back to the original default values (frequency
434.550MHz, callsign N0CALL) by connecting a wire
-between hole 3 and hole 7 on the debug connector. Hole
-3 has the square pad around it, hole 7 is the one
+between hole 3 and hole 6 on the debug connector. Hole
+3 has the square pad around it, hole 6 is the one
nearest the MS5607 baro sensor, which is a rectangular
component with a metal cap that has two holes in it.</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_telemetry_baud_rate">12.6.7. Telemetry baud rate</h4>
+<h4 id="_limit_transmit_to_10mw">12.6.7. Limit transmit to 10mW</h4>
+<div class="paragraph">
+<p>Reduces transmit power to no more than 10mW. This is
+useful when operating under some UK radio regulations.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_telemetry_baud_rate">12.6.8. Telemetry baud rate</h4>
<div class="paragraph">
<p>This sets the modulation bit rate for data
transmission for both telemetry and packet
</div>
</div>
<div class="sect3">
-<h4 id="_aprs_interval">12.6.8. APRS Interval</h4>
+<h4 id="_aprs_interval">12.6.9. APRS Interval</h4>
<div class="paragraph">
<p>How often to transmit GPS information via APRS
(in seconds). When set to zero, APRS
</div>
</div>
<div class="sect3">
-<h4 id="_aprs_ssid">12.6.9. APRS SSID</h4>
+<h4 id="_aprs_ssid">12.6.10. APRS SSID</h4>
<div class="paragraph">
<p>Which SSID to report in APRS packets. By
default, this is set to the last digit of the
</div>
</div>
<div class="sect3">
-<h4 id="_aprs_format">12.6.10. APRS Format</h4>
+<h4 id="_aprs_format">12.6.11. APRS Format</h4>
<div class="paragraph">
<p>Whether to send APRS data in Compressed or
Uncompressed format. Compressed format is
</div>
</div>
<div class="sect3">
-<h4 id="_aprs_offset">12.6.11. APRS Offset</h4>
+<h4 id="_aprs_offset">12.6.12. APRS Offset</h4>
<div class="paragraph">
<p>The delay from the top of the minute before sending
the first APRS packet of the minute. Coordinating
</div>
</div>
<div class="sect3">
-<h4 id="_callsign">12.6.12. Callsign</h4>
+<h4 id="_callsign">12.6.13. Callsign</h4>
<div class="paragraph">
<p>This sets the call sign included in each
telemetry packet. Set this as needed to
</div>
</div>
<div class="sect3">
-<h4 id="_maximum_flight_log_size">12.6.13. Maximum Flight Log Size</h4>
+<h4 id="_maximum_flight_log_size">12.6.14. Maximum Flight Log Size</h4>
<div class="paragraph">
<p>This sets the space (in kilobytes) allocated
for each flight log. The available space will
</div>
</div>
<div class="sect3">
-<h4 id="_ignitor_firing_mode">12.6.14. Ignitor Firing Mode</h4>
+<h4 id="_ignitor_firing_mode">12.6.15. Ignitor Firing Mode</h4>
<div class="paragraph">
<p>This configuration parameter allows the two standard ignitor
channels (Apogee and Main) to be used in different
</div>
</div>
<div class="sect3">
-<h4 id="_pad_orientation">12.6.15. Pad Orientation</h4>
+<h4 id="_pad_orientation">12.6.16. Pad Orientation</h4>
<div class="paragraph">
<p>Because they include accelerometers,
TeleMetrum, TeleMega and EasyMega are
</div>
</div>
<div class="sect3">
-<h4 id="_beeper_frequency">12.6.16. Beeper Frequency</h4>
+<h4 id="_beeper_frequency">12.6.17. Beeper Frequency</h4>
<div class="paragraph">
<p>The beeper on all Altus Metrum flight
computers works best at 4000Hz, however if you
</div>
</div>
<div class="sect3">
-<h4 id="_logging_trigger_motion">12.6.17. Logging Trigger Motion</h4>
+<h4 id="_logging_trigger_motion">12.6.18. Logging Trigger Motion</h4>
<div class="paragraph">
<p>This sets the amount of motion that TeleGPS
needs to see before logging the new
</div>
</div>
<div class="sect3">
-<h4 id="_position_reporting_interval">12.6.18. Position Reporting Interval</h4>
+<h4 id="_position_reporting_interval">12.6.19. Position Reporting Interval</h4>
<div class="paragraph">
<p>The interval between TeleGPS position reports,
both over the air and in the log. Increase
</div>
</div>
<div class="sect3">
-<h4 id="_calibrate_accelerometer">12.6.19. Calibrate Accelerometer</h4>
+<h4 id="_calibrate_accelerometer">12.6.20. Calibrate Accelerometer</h4>
<div class="paragraph">
<p>This opens a separate window to recalibrate the
accelerometers. Follow the instructions, orienting the
</div>
</div>
<div class="sect3">
-<h4 id="_configure_pyro_channels">12.6.20. Configure Pyro Channels</h4>
+<h4 id="_configure_pyro_channels">12.6.21. Configure Pyro Channels</h4>
<div class="imageblock">
<div class="content">
<img src="configure-pyro.png" alt="configure pyro" width="400">
</tr>
</table>
</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<img src="./images/icons/warning.svg" alt="Warning">
+</td>
+<td class="content">
+Firmware versions older than 1.9.8 cannot use times longer
+than 327.67 seconds. Update firmware if you need a longer time.
+</td>
+</tr>
+</table>
+</div>
<div class="dlist">
<dl>
<dt class="hdlist1">Ascending</dt>
timer expires and all of the other parameters have remained true for
the entire time, then the pyro channel is fired.</p>
</dd>
+</dl>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<img src="./images/icons/warning.svg" alt="Warning">
+</td>
+<td class="content">
+Firmware versions older than 1.9.8 cannot use delays longer
+than 327.67 seconds. Update firmware if you need a longer delay.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
<dt class="hdlist1">Flight State</dt>
<dd>
<p>The flight software tracks the flight
<div class="sect2">
<h3 id="_connecting_to_telebt_over_bluetooth">13.3. Connecting to TeleBT over Bluetooth™</h3>
<div class="paragraph">
+<p>Note that when turning TeleBT on, you may see a brief LED
+flash, but there will be no "activity" indicated until you
+pair with the device from AltosDroid.</p>
+</div>
+<div class="paragraph">
<p>Press the Android 'Menu' button or soft-key to see the
configuration options available. Select the 'Connect a
device' option and then the 'Scan for devices' entry
</div>
</div>
<div class="sect1">
-<h2 id="_handling_precautions">Appendix B: Handling Precautions</h2>
+<h2 id="_example_pyro_channel_configurations">Appendix B: Example Pyro Channel Configurations</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Programming configurable pyro channels on Altus Metrum products that
+include them isn’t difficult, but in an attempt to aid understanding
+of the configuration interface and help "keep simple things simple",
+we offer the following examples of the simplest configurations for
+common situations, along with some hints on avoiding unexpected
+results.</p>
+</div>
+<div class="paragraph">
+<p>The rich set of conditions provided can be used to configure almost
+any pyro event you can imagine, for a wide variety of objectives.
+But don’t be fooled! Typical events need only one or a few simple
+conditions to be configured for success. A key thing to remember is
+that <strong>all</strong> configured conditions must be true to allow a pyro channel
+to fire. Trying to include too many conditions often results in
+conflicting rules that never allow a channel to fire. The most
+important advice we can offer is, therefore, to try and find the
+simplest set of conditions that will do what you need for a given
+project.</p>
+</div>
+<div class="sect2">
+<h3 id="_two_stage_flights">B.1. Two-Stage Flights</h3>
+<div class="paragraph">
+<p>Successful completion of a two-stage flight often involves
+programming of two events. The first is firing a separation
+charge, the second is igniting the sustainer’s (primary)
+motor.</p>
+</div>
+<div class="paragraph">
+<p>Separation charges are best fired as soon as possible after
+the previous stage has completed providing acceleration, to
+minimize drag of the sustainer’s coast phase before ignition.
+Recovery, whether the remainder of the flight is nominal or
+not, usually works best when the states are separated. So,
+the "best" way to configure a pyro channel for a separation
+charge is to just set "after motor number". For a 2-stage
+project, set this to "1". This will cause the pyro channel
+to fire as soon as the firmware’s flight state machine
+determines the first motor has burned out.</p>
+</div>
+<div class="paragraph">
+<p>Safe ignition of a sustainer (primary) motor requires that
+it happen after the previous stage burns out, while the
+airframe remains mostly vertical, and typically after the
+sustainer has coasted away from the booster a bit. A good
+starting point is thus "after motor number" set the same as
+the separation charge, which is "1" for a 2-stage rocket.
+Then "angle from vertical less than" set to some
+reasonably vertical amount, perhaps 20 degrees. Then "delay
+after other conditions" set for the desired duration of coast.
+Use simulations to figure out what a reasonable value here is,
+but for typical high power rocketry sport flights that aren’t
+trying to set records, something like 2 seconds is usually a
+good place to start.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_triggered_clusters_and_air_starts">B.2. Triggered Clusters and Air Starts</h3>
+<div class="paragraph">
+<p>When an airframe has a cluster of motors, one of which is
+"primary" and centered, surrounding by a ring of "secondary"
+motors, you may want to use the launch control system to fire the primary motor and use onboard electronics to light
+the rest of the cluster as soon as launch is detected. This
+is particularly true if the primary motor is significantly
+different in geometry and may take longer to come up to
+pressure than the secondary motors. In this case, a simple
+configuration to light secondary motors is is "time since
+boost greater than" enabled and set to "0". There’s
+really no point in setting an angle limit since no time has
+transpired for the airframe to change orientation.</p>
+</div>
+<div class="paragraph">
+<p>Air starts can use the same simple configuration, but with
+the time set to a non-zero value. However, if air starts
+are going to light after the airframe leaves the launch rail
+or tower, add an "angle from vertical less than"
+condition just you would for a 2-stage sustainer to stay safe.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_redundant_apogee">B.3. Redundant Apogee</h3>
+<div class="paragraph">
+<p>When flying a board like TeleMega or EasyMega, it’s easy to
+configure a programmable channel to fire a redundant apogee
+charge. This is of course not <strong>fully</strong> redundant, since it’s
+always possible that the board itself or its battery could
+the the failure source, but far more often, pyro events fail
+due to broken wires, bad connectors, or bad e-matches…​ so
+firing two charges from one board can add useful redundancy.</p>
+</div>
+<div class="paragraph">
+<p>The simplest configuration for redundant apogee is "flight
+state after" set to "drogue", and then "delay after other
+conditions" set to a second or two.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_redundant_main">B.4. Redundant Main</h3>
+<div class="paragraph">
+<p>Similarly to apogee, configuring a redundant main charge can
+provide useful redundancy. What we want is to configure an
+altitude for deployment lower than the primary main deploy
+altitude, and then ensure we only trigger on that condition
+while descending.</p>
+</div>
+<div class="paragraph">
+<p>The simplest configuration for redundant main is "flight
+state after" set to "drogue", which will ensure we’re in to
+the descent phase, then "height less than" set to a number
+lower than you’ve chosen for the primary main channel
+deployment height.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_apogee_above_baro_sensor_limit">B.5. Apogee Above Baro Sensor Limit</h3>
+<div class="paragraph">
+<p>A question we’ve seen increasingly often is "How does the
+Telemega/Easymega detect apogee for flights above 100,000
+feet?" Flights above that height are a bit outside
+our original design envelope, but can be made to work…​
+This is <strong>not</strong> a simple flight, and the configuration for it
+is also not simple, but we think including this information
+is important for anyone contemplating such a project with our
+electronics!</p>
+</div>
+<div class="paragraph">
+<p>Our flight computers use a Kalman sensor-fusing filter to
+estimate the flight state, which consists of three values:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Height above ground</p>
+</li>
+<li>
+<p>Vertical speed</p>
+</li>
+<li>
+<p>Vertical acceleration</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Apogee is assumed to be where vertical speed crosses zero.</p>
+</div>
+<div class="paragraph">
+<p>Below 30km altitude (about 100k'), we use both the barometer
+and the accelerometer to update the flight state, along with
+a basic Newtonian model of motion. That works well, pegging
+apogee within a few sensor samples essentially every time.</p>
+</div>
+<div class="paragraph">
+<p>Above 30km, the barometric sensor doesn’t provide useful data,
+so we can’t use it to update the flight state. Instead, the
+Kalman filter falls back to a single sensor mode, using only
+the accelerometer.</p>
+</div>
+<div class="paragraph">
+<p>At all altitudes, we de-sense the barometric data when we
+estimate the speed is near or above mach as the sensor is
+often subjected to significant transients, which would
+otherwise push the flight state estimates too fast and could
+trigger a false apogee event.</p>
+</div>
+<div class="paragraph">
+<p>That means the filter is no longer getting the benefit of two
+sensors, and relies on just the accelerometer. The trouble
+with accelerometers is they’re measuring the derivative of
+speed, so you have to integrate their values to compute speed.
+Any offset error in acceleration measurement gets constantly
+added to that speed.</p>
+</div>
+<div class="paragraph">
+<p>In addition, we assume the axial acceleration is actually
+vertical acceleration; our tilt measurements have enough
+integration error during coast that we can’t usefully use
+that to get vertical acceleration. Because we don’t live in
+an inertial frame, that means we’re mis-computing the total
+acceleration acting on the airframe as we have to add gravity
+into the mix, and simply adding that to the axial acceleration
+value doesn’t generate the right value.</p>
+</div>
+<div class="paragraph">
+<p>The effect of this is to under-estimate apogee when you base
+the computation purely on acceleration as the rocket flies a
+parabolic path.</p>
+</div>
+<div class="paragraph">
+<p>For flights <strong>near</strong> 100k', all of this works pretty well -
+you’ve got the flight state estimates adjusted using the
+barometric sensor up to 30km, then you’re flying on inertial
+data to apogee.</p>
+</div>
+<div class="paragraph">
+<p>For flights well above 100k', it’s not great; you’re usually
+going fast enough through 100k' that the baro sensor is still
+de-sensed through the end of its useful range, so the flight
+state estimates are not as close. After that, as you’re flying
+purely on accelerometer data, there’s no way to re-correct the
+state, so the apogee estimates can be off by quite a bit.</p>
+</div>
+<div class="paragraph">
+<p>In the worst cases we have seen, the baro sensor data was
+wildly incorrect above mach due to poor static port design,
+leaving the state estimate of speed across the 30km boundary
+way off and causing the apogee detection to happen far from
+the correct time.</p>
+</div>
+<div class="paragraph">
+<p>The good news is that correctly determining apogee is not
+really all that important at high altitudes; there’s so little
+density that a drogue will have almost no drag anyways. Data
+from customer flights shows a very parabolic path down to
+about 50-60k feet, even with a recovery system deployed.</p>
+</div>
+<div class="paragraph">
+<p>So, what we recommend is to set up two apogee plans:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Use the built-in apogee detection, but add a
+significant delay (as much as 30 seconds). This
+will probably fire near enough to apogee to not
+have a significant impact on the maximum height
+achieved.</p>
+</li>
+<li>
+<p>Add a back-up apogee which fires after apogee
+<strong>when the height is below about 20-25km</strong>. This
+way, if the flight isn’t nominal, and the sustainer
+ends up reaching apogee in dense air, you aren’t
+hoping the chutes come out before it gets going
+too fast. And, you get a second pyro channel firing
+at that altitude even if it reached a higher
+altitude before.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>You can wire these two pyro channels to the same pyro device;
+you just need to make sure they’re wired + to + and - to -
+(the manual shows which screw terminals are which).</p>
+</div>
+<div class="paragraph">
+<p>The bottom line is that flights to altitudes modestly above
+the range of the baro sensor with Altus Metrum products can
+be accomplished safely, but flying "way high" (like 300k')
+demands a deployment mechanism which doesn’t solely rely on
+altimeters (like ours) which are designed for modest altitude
+rocketry. Flights to those altitudes also probably need
+active stabilization to make sure they follow the prescribed
+trajectory and stay inside their waiver.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_handling_precautions">Appendix C: Handling Precautions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>All Altus Metrum products are sophisticated electronic devices.
</div>
</div>
<div class="sect1">
-<h2 id="_updating_device_firmware">Appendix C: Updating Device Firmware</h2>
+<h2 id="_updating_device_firmware">Appendix D: Updating Device Firmware</h2>
<div class="sectionbody">
<div class="paragraph">
<p>TeleMega, TeleMetrum v2 and newer, EasyMega, EasyMini and TeleDongle v3
you have before trying to reprogram them.</p>
</div>
<div class="paragraph">
+<p>TeleMini v3 can be updated directly over USB, but has no USB connector
+on the board. Instead, the USB signals are present on a row of 6
+holes adjacent to the copyright assertion in the silk screen. Thus,
+updating firmware on TeleMini v3 requires making up a special cable,
+after which you can treat it just like TeleMetrum or TeleMega. Many
+USB cables seem to follow the color code of red is +5V, black is GND,
+green is USB +, and white is USB -. On TeleMini v3, pin 3 which has
+a square copper pad is ground, pin 1 is USB -, and pin 2 is USB +.</p>
+</div>
+<div class="paragraph">
<p>You may wish to begin by ensuring you have current firmware
images. These are distributed as part of the AltOS software
bundle that also includes the AltosUI ground station program.
<a href="http://www.altusmetrum.org/AltOS/" class="bare">http://www.altusmetrum.org/AltOS/</a></p>
</div>
<div class="sect2">
-<h3 id="_updating_telemega_telemetrum_v2_or_newer_easymega_easymini_teledongle_v3_or_telebt_v3_firmware">C.1. Updating TeleMega, TeleMetrum v2 or newer, EasyMega, EasyMini, TeleDongle v3 or TeleBT v3 Firmware</h3>
+<h3 id="_updating_telemega_telemetrum_v2_or_newer_telemini_v3_easymega_easymini_teledongle_v3_or_telebt_v3_firmware">D.1. Updating TeleMega, TeleMetrum v2 or newer, TeleMini v3, EasyMega, EasyMini, TeleDongle v3 or TeleBT v3 Firmware</h3>
<div class="paragraph">
<p>Self-programmable devices are reprogrammed by
connecting them to your computer over USB.</p>
</li>
<li>
<p>Using a Micro USB cable, connect the target device to your
-computer’s USB socket.</p>
+computer’s USB socket. If the target is a TeleMini v3,
+make up and attach a special USB cable.</p>
</li>
<li>
<p>Run AltosUI, and select 'Flash Image' from the File menu.</p>
</ol>
</div>
<div class="sect3">
-<h4 id="_recovering_from_self_flashing_failure">C.1.1. Recovering From Self-Flashing Failure</h4>
+<h4 id="_recovering_from_self_flashing_failure">D.1.1. Recovering From Self-Flashing Failure</h4>
<div class="paragraph">
<p>If the firmware loading fails, it can leave the device
unable to boot. Not to worry, you can force the device to
</div>
</div>
<div class="sect2">
-<h3 id="_pair_programming">C.2. Pair Programming</h3>
+<h3 id="_pair_programming">D.2. Pair Programming</h3>
<div class="paragraph">
<p>The big concept to understand is that you have to use
a TeleMetrum v1.0, TeleBT v1.0 or TeleDongle v0.2 as a
have improved receiver performance slightly.</p>
</div>
<div class="sect3">
-<h4 id="_updating_telemetrum_v1_x_firmware">C.2.1. Updating TeleMetrum v1.x Firmware</h4>
+<h4 id="_updating_telemetrum_v1_x_firmware">D.2.1. Updating TeleMetrum v1.x Firmware</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_updating_telemini_v1_0_firmware">C.2.2. Updating TeleMini v1.0 Firmware</h4>
+<h4 id="_updating_telemini_v1_0_firmware">D.2.2. Updating TeleMini v1.0 Firmware</h4>
<div class="paragraph">
<p>You’ll need a special 'programming cable' to
reprogram the TeleMini v1.0. You can make your own
</div>
</div>
<div class="sect3">
-<h4 id="_updating_teledongle_v0_2_firmware">C.2.3. Updating TeleDongle v0.2 Firmware</h4>
+<h4 id="_updating_teledongle_v0_2_firmware">D.2.3. Updating TeleDongle v0.2 Firmware</h4>
<div class="paragraph">
<p>Updating TeleDongle v0.2 firmware is just like
updating TeleMetrum v1.x or TeleMini v1.0 firmware, but you
</div>
</div>
<div class="sect1">
-<h2 id="_flight_data_recording">Appendix D: Flight Data Recording</h2>
+<h2 id="_frequency_calibration">Appendix E: Frequency Calibration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>All products that have radio interfaces require calibration of the radio
+frequency. Normally, this calibration is done once during the production
+process and the resulting cal value is saved into non-volatile memory. The
+procedure decribed here should only be used outside of the factory if you
+are really convinced the radio calibration is bad, and you have access to
+the required tools to do the calibration.</p>
+</div>
+<div class="paragraph">
+<p>Because this procedure is only rarely needed in the field, we have not
+written any fancy user interface for doing it .. some interaction with
+and careful typing in a command-like style interface are required!</p>
+</div>
+<div class="sect2">
+<h3 id="_background_information">E.1. Background Information</h3>
+<div class="paragraph">
+<p>The radio system on each board uses a quartz crystal to control
+a frequency synthesizer that can be programmed to a range of operating
+frequencies. While these crystals are very stable, they have an accuracy
+specification that means once the base frequency they set is multiplied up
+to the typical operating range of our products, any variation also gets
+multiplied. The objective of the calibration process is, indirectly, to
+measure the actual operating frequency of the crystal and adjust the way
+the frequency synthesizer is programmed to account for this variation.</p>
+</div>
+<div class="paragraph">
+<p>The frequency may shift a few tens of Hz over the full operating temperature
+range, and it may also shift a bit over time as the crystal ages. But once
+properly calibrated, none of those changes are likely to ever cause any
+operational problem, as the shift in operating frequency due to these factors
+is tiny compared to the bandwidth of our transmitted signal.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_required_equipment">E.2. Required Equipment</h3>
+<div class="paragraph">
+<p>The calibration process requires the ability to precisely measure the actual
+frequency of a steady CW carrier on or about the intended operating frequency
+in the vicinity of 435 MHz.</p>
+</div>
+<div class="paragraph">
+<p>In production, we use an HP 5385A that is locked to a 10 MHz reference that
+is in turn locked to GPS, which provides a highly accurate calibration. Any
+reasonably accurate frequency counter is likely to be sufficient.</p>
+</div>
+<div class="paragraph">
+<p>You also need a computer with terminal program and USB cable to attach to
+the board in question, along with a battery and power switch suitable for
+powering the board up.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_rf_calibration_procedure">E.3. RF Calibration Procedure</h3>
+<div class="paragraph">
+<p>Using the terminal program, connect to the board over USB. You will find
+that you are now interacting with a command interpreter on the board. Using
+'?' will show the available commands. Of interest for this process are the
+'C' command which turns on a steady transmitted carrier on the currently
+selected operating frequency, and the 'c' subcommands that allow interaction
+with the saved configuration.</p>
+</div>
+<div class="paragraph">
+<p>Use the 'c s' command to discover and note the current radio calibration
+value, and the operating frequency the board is configured for in kHz.</p>
+</div>
+<div class="paragraph">
+<p>Set up your frequency counter with a suitable antenna near the board’s
+antenna and use the 'C' command to turn on a steady carrier. Let the
+frequency stabilize, and note what it is to as many digits as are steady
+on your counter’s display.</p>
+</div>
+<div class="paragraph">
+<p>To calculate the new calibration value, the equation is:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>(intended_frequency / measured_frequency) * current_cal_value</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Set the new calibration value using 'c f <value>', then use 'c w' to save
+that cal value into non-volatile memory. You can use the 'C' command again
+to confirm the operating frequency is now within a few 10’s of Hz of the
+intended operating frequency.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_flight_data_recording">Appendix F: Flight Data Recording</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Each flight computer logs data at 100 samples per second
</div>
</div>
<div class="sect1">
-<h2 id="_altus_metrum_hardware_specifications">Appendix E: Altus Metrum Hardware Specifications</h2>
+<h2 id="_altus_metrum_hardware_specifications">Appendix G: Altus Metrum Hardware Specifications</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Here’s the full set of Altus Metrum products, both in
<td class="tableblock halign-left valign-top"><p class="tableblock">3.7V</p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMini v1.0</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">MS5607 30km (100k')</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">1MB</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">3.7-12V</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMini v2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMini v1.0-v3.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MS5607 30km (100k')</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3.7V</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TeleMega v5.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MS5607 30km (100k')</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ADXL375 200g</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">uBlox Max-8Q</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MPU6000 MMC5983</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8MB</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">40mW</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.7V</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMega v1.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MS5607 30km (100k')</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MMA6555 102g</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3.7-12V</p></td>
</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMotor v3.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ADXL375 200g</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8MB</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">6.5-15V</p></td>
+</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<td class="tableblock halign-left valign-top"><p class="tableblock">38mm coupler</p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMini</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EasyTimer</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Debug USB Battery</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Pyro A Pyro B Battery</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0.8 inch (2.03cm)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1½ inch (3.81cm)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">24mm coupler</p></td>
</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EasyMotor</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Debug USB</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">+5V Pres GND Switch Battery</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">0.8 inch (2.03cm)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1½ inch (3.81cm)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">24mm coupler</p></td>
+</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
-<h2 id="_release_notes">Appendix F: Release Notes</h2>
+<h2 id="_release_notes">Appendix H: Release Notes</h2>
<div class="sectionbody">
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9_6">F.1. Release Notes for Version 1.9.6</h3>
+<h3 id="_release_notes_for_version_1_9_12">H.1. Release Notes for Version 1.9.12</h3>
+<div class="paragraph">
+<p>Version 1.9.12</p>
+</div>
+<div class="sect3">
+<h4 id="_altos">H.1.1. AltOS</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Add EasyMini v3.0 and EasyMotor v3.0 support</p>
+</li>
+<li>
+<p>Fix TeleMetrum v2.0 configuration. Saving config would
+crash the board.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosui_2">H.1.2. AltosUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Add EasyMotor log parsing and graphing.</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_release_notes_for_version_1_9_11">H.2. Release Notes for Version 1.9.11</h3>
+<div class="paragraph">
+<p>Version 1.9.11</p>
+</div>
+<div class="sect3">
+<h4 id="_altos_2">H.2.1. AltOS</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Make Apogee Delay work again.</p>
+</li>
+<li>
+<p>Allow TX power to be limited to 10mW for compliance with
+some uses under UK regulations.</p>
+</li>
+<li>
+<p>Fix numerous minor issues with 16- vs 32- bit time values.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosui_3">H.2.2. AltosUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Support M1-based Macs, follow AdoptOpenJDK to Adoptium</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosdroid_2">H.2.3. AltosDroid</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Handle Bluetooth permissions reliably.</p>
+</li>
+<li>
+<p>Fix some screen rotation bugs.</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_release_notes_for_version_1_9_10">H.3. Release Notes for Version 1.9.10</h3>
+<div class="paragraph">
+<p>Version 1.9.10</p>
+</div>
+<div class="paragraph">
+<p>This release contains a couple of bug fixes for ground station software.</p>
+</div>
+<div class="sect3">
+<h4 id="_altosui_4">H.3.1. AltosUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Rework the windows DLL build to make AltosUI run on more
+instances of Windows 10.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosdroid_3">H.3.2. AltosDroid</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Adapt to Android security changes which prevent AltosDroid
+from storing flights in
+/storage/emulated/0/AltusMetrum. Now, flights are stored in
+/storage/emulated/0/media/org.altusmetrum.AltosDroid/AltusMetrum
+instead. Also, AltosDroid will display an error message if
+flight data cannot be logged.</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_release_notes_for_version_1_9_9">H.4. Release Notes for Version 1.9.9</h3>
+<div class="paragraph">
+<p>Version 1.9.9</p>
+</div>
+<div class="paragraph">
+<p>This release contains a critical bug fix for a problem
+introduced in version 1.9.8 for TeleMega and EasyMega
+boards. This problem occurs when using the stored
+configuration from 1.9.7 or earlier.</p>
+</div>
+<div class="paragraph">
+<p>If you are running 1.9.8 or are upgrading from 1.9.8 on any
+version of TeleMega or EasyMega, you must reconfigure all pyro
+channels, recalibrate accelerometers, reset the APRS interval,
+adjust the beep tone and reset the pyro time.</p>
+</div>
+<div class="sect3">
+<h4 id="_altos_3">H.4.1. AltOS</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Fix EasyMega and TeleMega upgrade process from 1.9.7 or
+earlier. 1.9.8 introduced larger delay values, which
+required modifying the configuration in-place, and the 1.9.8
+version had a flaw which broke the pyro channel config and
+all of the config values beyond that in memory, including
+APRS interval, IMU accel calibation, beep tone and pyro
+time.</p>
+</li>
+<li>
+<p>Fix TeleMega v5.0 mag sensor driver. This driver was quite
+broken due to developing it in the presence of the magnetic
+beeper on the board. Because of that beeper, the values this
+sensor records are not accurate. Fortunately, they are not
+used for controlling the flight.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosui_5">H.4.2. AltosUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Parse TeleMega v5.0 log files. A missing check in the code
+meant that the TeleMega v5.0 log files would cause an error
+when attempting to load them. Logs saved with AltosUI
+1.9.8 were not affected, only the presentation of the data
+was broken.</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_release_notes_for_version_1_9_8">H.5. Release Notes for Version 1.9.8</h3>
+<div class="paragraph">
+<p>Version 1.9.8</p>
+</div>
+<div class="sect3">
+<h4 id="_altos_4">H.5.1. AltOS</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Add support for TeleMega v5.0</p>
+</li>
+<li>
+<p>Extend extra pyro channel times to support delay > 327 seconds</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosui_6">H.5.2. AltosUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Support ARM devices in Linux binary release</p>
+</li>
+<li>
+<p>Add support for TeleMega v5.0</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosdroid_4">H.5.3. AltosDroid</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Show tilt angle in pad and flight tabs</p>
+</li>
+<li>
+<p>Show altitude as well as height (useful for TeleGPS)</p>
+</li>
+<li>
+<p>Support devices without GPS receivers</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_micropeak_gui">H.5.4. MicroPeak GUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Show error dialog if device open fails</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_release_notes_for_version_1_9_7">H.6. Release Notes for Version 1.9.7</h3>
+<div class="paragraph">
+<p>Version 1.9.7</p>
+</div>
+<div class="sect3">
+<h4 id="_altos_5">H.6.1. AltOS</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Fix TeleGPS logging so that new data are appended to an existing log correctly</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosui_7">H.6.2. AltosUI</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Support Mac OS X 11 (Big Sur)</p>
+</li>
+<li>
+<p>Support Monitor Idle on Easy Timer</p>
+</li>
+<li>
+<p>Fix TeleMega v4.0 and TeleMetrum v3.0 configuration in Antenna Down mode</p>
+</li>
+<li>
+<p>Show launch sites in Load Maps view</p>
+</li>
+<li>
+<p>Add IMU header names to CSV files</p>
+</li>
+<li>
+<p>Clean up TeleGPS log corruption due to firmware bugs during firmware update</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_altosdroid_5">H.6.3. AltosDroid</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Support older devices back to Android version 5.1</p>
+</li>
+<li>
+<p>Fix a number of issues that could result in app crashes</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_release_notes_for_version_1_9_6">H.7. Release Notes for Version 1.9.6</h3>
<div class="paragraph">
<p>Version 1.9.6</p>
</div>
<div class="sect3">
-<h4 id="_altos">F.1.1. AltOS</h4>
+<h4 id="_altos_6">H.7.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9_5">F.2. Release Notes for Version 1.9.5</h3>
+<h3 id="_release_notes_for_version_1_9_5">H.8. Release Notes for Version 1.9.5</h3>
<div class="paragraph">
<p>Version 1.9.5</p>
</div>
<div class="sect3">
-<h4 id="_altos_2">F.2.1. AltOS</h4>
+<h4 id="_altos_7">H.8.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_2">F.2.2. AltosUI</h4>
+<h4 id="_altosui_8">H.8.2. AltosUI</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9_4">F.3. Release Notes for Version 1.9.4</h3>
+<h3 id="_release_notes_for_version_1_9_4">H.9. Release Notes for Version 1.9.4</h3>
<div class="paragraph">
<p>Version 1.9.4</p>
</div>
<div class="sect3">
-<h4 id="_altos_3">F.3.1. AltOS</h4>
+<h4 id="_altos_8">H.9.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_3">F.3.2. AltosUI</h4>
+<h4 id="_altosui_9">H.9.2. AltosUI</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9_3">F.4. Release Notes for Version 1.9.3</h3>
+<h3 id="_release_notes_for_version_1_9_3">H.10. Release Notes for Version 1.9.3</h3>
<div class="paragraph">
<p>Version 1.9.3</p>
</div>
<div class="sect3">
-<h4 id="_altos_4">F.4.1. AltOS</h4>
+<h4 id="_altos_9">H.10.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_micropeak">F.4.2. AltosUI, TeleGPS, MicroPeak</h4>
+<h4 id="_altosui_telegps_micropeak">H.10.2. AltosUI, TeleGPS, MicroPeak</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9_2">F.5. Release Notes for Version 1.9.2</h3>
+<h3 id="_release_notes_for_version_1_9_2">H.11. Release Notes for Version 1.9.2</h3>
<div class="paragraph">
<p>Version 1.9.2</p>
</div>
<div class="sect3">
-<h4 id="_altos_5">F.5.1. AltOS</h4>
+<h4 id="_altos_10">H.11.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_micropeak_2">F.5.2. AltosUI, TeleGPS, MicroPeak</h4>
+<h4 id="_altosui_telegps_micropeak_2">H.11.2. AltosUI, TeleGPS, MicroPeak</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosdroid_2">F.5.3. AltosDroid</h4>
+<h4 id="_altosdroid_6">H.11.3. AltosDroid</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9_1">F.6. Release Notes for Version 1.9.1</h3>
+<h3 id="_release_notes_for_version_1_9_1">H.12. Release Notes for Version 1.9.1</h3>
<div class="paragraph">
<p>Version 1.9.1</p>
</div>
<div class="sect3">
-<h4 id="_altos_6">F.6.1. AltOS</h4>
+<h4 id="_altos_11">H.12.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_micropeak_3">F.6.2. AltosUI, TeleGPS, MicroPeak</h4>
+<h4 id="_altosui_telegps_micropeak_3">H.12.2. AltosUI, TeleGPS, MicroPeak</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_9">F.7. Release Notes for Version 1.9</h3>
+<h3 id="_release_notes_for_version_1_9">H.13. Release Notes for Version 1.9</h3>
<div class="paragraph">
<p>Version 1.9</p>
</div>
<div class="sect3">
-<h4 id="_altos_7">F.7.1. AltOS</h4>
+<h4 id="_altos_12">H.13.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_micropeak_4">F.7.2. AltosUI, TeleGPS, MicroPeak</h4>
+<h4 id="_altosui_telegps_micropeak_4">H.13.2. AltosUI, TeleGPS, MicroPeak</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_7">F.8. Release Notes for Version 1.8.7</h3>
+<h3 id="_release_notes_for_version_1_8_7">H.14. Release Notes for Version 1.8.7</h3>
<div class="paragraph">
<p>Version 1.8.7</p>
</div>
<div class="sect3">
-<h4 id="_altos_8">F.8.1. AltOS</h4>
+<h4 id="_altos_13">H.14.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_micropeak_5">F.8.2. AltosUI, TeleGPS, MicroPeak</h4>
+<h4 id="_altosui_telegps_micropeak_5">H.14.2. AltosUI, TeleGPS, MicroPeak</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_6">F.9. Release Notes for Version 1.8.6</h3>
+<h3 id="_release_notes_for_version_1_8_6">H.15. Release Notes for Version 1.8.6</h3>
<div class="paragraph">
<p>Version 1.8.6</p>
</div>
<div class="sect3">
-<h4 id="_altos_9">F.9.1. AltOS</h4>
+<h4 id="_altos_14">H.15.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps">F.9.2. AltosUI, TeleGPS</h4>
+<h4 id="_altosui_telegps">H.15.2. AltosUI, TeleGPS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_micropeak">F.9.3. MicroPeak</h4>
+<h4 id="_micropeak">H.15.3. MicroPeak</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_5">F.10. Release Notes for Version 1.8.5</h3>
+<h3 id="_release_notes_for_version_1_8_5">H.16. Release Notes for Version 1.8.5</h3>
<div class="paragraph">
<p>Version 1.8.5 includes fixes to the ground software support
for TeleBT v4, along with a few other minor updates.</p>
</div>
<div class="sect3">
-<h4 id="_altos_10">F.10.1. AltOS</h4>
+<h4 id="_altos_15">H.16.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_2">F.10.2. AltosUI, TeleGPS</h4>
+<h4 id="_altosui_telegps_2">H.16.2. AltosUI, TeleGPS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_4">F.11. Release Notes for Version 1.8.4</h3>
+<h3 id="_release_notes_for_version_1_8_4">H.17. Release Notes for Version 1.8.4</h3>
<div class="paragraph">
<p>Version 1.8.4 includes support for EasyMini version 2.0</p>
</div>
<div class="sect3">
-<h4 id="_altos_11">F.11.1. AltOS</h4>
+<h4 id="_altos_16">H.17.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_3">F.12. Release Notes for Version 1.8.3</h3>
+<h3 id="_release_notes_for_version_1_8_3">H.18. Release Notes for Version 1.8.3</h3>
<div class="paragraph">
<p>Version 1.8.3 includes support for TeleMega version 3.0 along
with two important flight computer fixes. This version also
downloading.</p>
</div>
<div class="sect3">
-<h4 id="_altos_12">F.12.1. AltOS</h4>
+<h4 id="_altos_17">H.18.1. AltOS</h4>
<div class="sect4">
<h5 id="_altos_new_features">AltOS New Features</h5>
<div class="ulist">
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications">F.12.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications">H.18.2. AltosUI and TeleGPS Applications</h4>
<div class="sect4">
<h5 id="_altosui_new_features">AltosUI New Features</h5>
<div class="ulist">
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_2">F.13. Release Notes for Version 1.8.2</h3>
+<h3 id="_release_notes_for_version_1_8_2">H.19. Release Notes for Version 1.8.2</h3>
<div class="paragraph">
<p>Version 1.8.2 includes support for TeleGPS version 2.0 along
with accelerometer recalibration support in AltosUI.</p>
analyzing saved data files.</p>
</div>
<div class="sect3">
-<h4 id="_altos_13">F.13.1. AltOS</h4>
+<h4 id="_altos_18">H.19.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_2">F.13.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_2">H.19.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI and TeleGPS New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8_1">F.14. Release Notes for Version 1.8.1</h3>
+<h3 id="_release_notes_for_version_1_8_1">H.20. Release Notes for Version 1.8.1</h3>
<div class="paragraph">
<p>Version 1.8.1 includes an important bug fix for Apogee Lockout
operation in all flight computers. Anyone using this option
analyzing saved data files.</p>
</div>
<div class="sect3">
-<h4 id="_altos_14">F.14.1. AltOS</h4>
+<h4 id="_altos_19">H.20.1. AltOS</h4>
<div class="paragraph">
<p>AltOS Bug Fixes</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_3">F.14.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_3">H.20.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_8">F.15. Release Notes for Version 1.8</h3>
+<h3 id="_release_notes_for_version_1_8">H.21. Release Notes for Version 1.8</h3>
<div class="paragraph">
<p>Version 1.8 includes support for our new TeleBT v4.0 ground
station, updates for data analysis in our ground station
boards and ground station interfaces.</p>
</div>
<div class="sect3">
-<h4 id="_altos_15">F.15.1. AltOS</h4>
+<h4 id="_altos_20">H.21.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_4">F.15.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_4">H.21.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_7">F.16. Release Notes for Version 1.7</h3>
+<h3 id="_release_notes_for_version_1_7">H.22. Release Notes for Version 1.7</h3>
<div class="paragraph">
<p>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.</p>
</div>
<div class="sect3">
-<h4 id="_altos_16">F.16.1. AltOS</h4>
+<h4 id="_altos_21">H.22.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_5">F.16.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_5">H.22.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6_8">F.17. Release Notes for Version 1.6.8</h3>
+<h3 id="_release_notes_for_version_1_6_8">H.23. Release Notes for Version 1.6.8</h3>
<div class="paragraph">
<p>Version 1.6.8 fixes a TeleMega and TeleMetrum v2.0 bug where
the device could stop logging data and transmitting
v2.0 users should update their flight firmware.</p>
</div>
<div class="sect3">
-<h4 id="_altos_17">F.17.1. AltOS</h4>
+<h4 id="_altos_22">H.23.1. AltOS</h4>
<div class="paragraph">
<p>AltOS fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_and_altosdroid_applications">F.17.2. AltosUI, TeleGPS and AltosDroid Applications</h4>
+<h4 id="_altosui_telegps_and_altosdroid_applications">H.23.2. AltosUI, TeleGPS and AltosDroid Applications</h4>
<div class="paragraph">
<p>AltosUI fixes:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6_5">F.18. Release Notes for Version 1.6.5</h3>
+<h3 id="_release_notes_for_version_1_6_5">H.24. Release Notes for Version 1.6.5</h3>
<div class="paragraph">
<p>Version 1.6.5 fixes a TeleMega and TeleMetrum v2.0 bug where
the device would often stop logging data and transmitting
v2.0 users should update their flight firmware.</p>
</div>
<div class="sect3">
-<h4 id="_altos_18">F.18.1. AltOS</h4>
+<h4 id="_altos_23">H.24.1. AltOS</h4>
<div class="paragraph">
<p>AltOS fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_and_altosdroid_applications_2">F.18.2. AltosUI, TeleGPS and AltosDroid Applications</h4>
+<h4 id="_altosui_telegps_and_altosdroid_applications_2">H.24.2. AltosUI, TeleGPS and AltosDroid Applications</h4>
<div class="paragraph">
<p>AltosUI fixes:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6_4">F.19. Release Notes for Version 1.6.4</h3>
+<h3 id="_release_notes_for_version_1_6_4">H.25. Release Notes for Version 1.6.4</h3>
<div class="paragraph">
<p>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.</p>
</div>
<div class="sect3">
-<h4 id="_altos_19">F.19.1. AltOS</h4>
+<h4 id="_altos_24">H.25.1. AltOS</h4>
<div class="paragraph">
<p>AltOS fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_telegps_and_altosdroid_applications_3">F.19.2. AltosUI, TeleGPS and AltosDroid Applications</h4>
+<h4 id="_altosui_telegps_and_altosdroid_applications_3">H.25.2. AltosUI, TeleGPS and AltosDroid Applications</h4>
<div class="paragraph">
<p>AltosUI, TeleGPS and AltosDroid New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_documentation">F.19.3. Documentation</h4>
+<h4 id="_documentation">H.25.3. Documentation</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6_3">F.20. Release Notes for Version 1.6.3</h3>
+<h3 id="_release_notes_for_version_1_6_3">H.26. Release Notes for Version 1.6.3</h3>
<div class="paragraph">
<p>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.</p>
</div>
<div class="sect3">
-<h4 id="_altos_20">F.20.1. AltOS</h4>
+<h4 id="_altos_25">H.26.1. AltOS</h4>
<div class="paragraph">
<p>AltOS fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_6">F.20.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_6">H.26.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI and TeleGPS New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosdroid_3">F.20.3. AltosDroid</h4>
+<h4 id="_altosdroid_7">H.26.3. AltosDroid</h4>
<div class="paragraph">
<p>AltosDroid new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_documentation_2">F.20.4. Documentation</h4>
+<h4 id="_documentation_2">H.26.4. Documentation</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6_2">F.21. Release Notes for Version 1.6.2</h3>
+<h3 id="_release_notes_for_version_1_6_2">H.27. Release Notes for Version 1.6.2</h3>
<div class="paragraph">
<p>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.</p>
</div>
<div class="sect3">
-<h4 id="_altos_21">F.21.1. AltOS</h4>
+<h4 id="_altos_26">H.27.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_7">F.21.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_7">H.27.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI and TeleGPS Fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_documentation_3">F.21.3. Documentation</h4>
+<h4 id="_documentation_3">H.27.3. Documentation</h4>
<div class="paragraph">
<p>We spent a bunch of time trying to improve our documentation</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6_1">F.22. Release Notes for Version 1.6.1</h3>
+<h3 id="_release_notes_for_version_1_6_1">H.28. Release Notes for Version 1.6.1</h3>
<div class="paragraph">
<p>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.</p>
</div>
<div class="sect3">
-<h4 id="_altos_22">F.22.1. AltOS</h4>
+<h4 id="_altos_27">H.28.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_8">F.22.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_8">H.28.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI and TeleGPS New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosdroid_4">F.22.3. AltosDroid</h4>
+<h4 id="_altosdroid_8">H.28.3. AltosDroid</h4>
<div class="paragraph">
<p>AltosDroid New Features:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_6">F.23. Release Notes for Version 1.6</h3>
+<h3 id="_release_notes_for_version_1_6">H.29. Release Notes for Version 1.6</h3>
<div class="paragraph">
<p>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.</p>
</div>
<div class="sect3">
-<h4 id="_altos_23">F.23.1. AltOS</h4>
+<h4 id="_altos_28">H.29.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_9">F.23.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_9">H.29.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI and TeleGPS New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_5">F.24. Release Notes for Version 1.5</h3>
+<h3 id="_release_notes_for_version_1_5">H.30. Release Notes for Version 1.5</h3>
<div class="paragraph">
<p>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</p>
</div>
<div class="sect3">
-<h4 id="_altos_24">F.24.1. AltOS</h4>
+<h4 id="_altos_29">H.30.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_10">F.24.2. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_10">H.30.2. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>AltosUI and TeleGPS New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_4_2">F.25. Release Notes for Version 1.4.2</h3>
+<h3 id="_release_notes_for_version_1_4_2">H.31. Release Notes for Version 1.4.2</h3>
<div class="paragraph">
<p>Version 1.4.2 is a minor release. It fixes Java-related install issues on
Windows</p>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_11">F.25.1. AltosUI and TeleGPS Applications</h4>
+<h4 id="_altosui_and_telegps_applications_11">H.31.1. AltosUI and TeleGPS Applications</h4>
<div class="paragraph">
<p>Windows Install Fixes</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_4_1">F.26. Release Notes for Version 1.4.1</h3>
+<h3 id="_release_notes_for_version_1_4_1">H.32. Release Notes for Version 1.4.1</h3>
<div class="paragraph">
<p>Version 1.4.1 is a minor release. It fixes install issues on
Windows and provides the missing TeleMetrum V2.0 firmware. There
V2.0 firmware image will not need to upgrade.</p>
</div>
<div class="sect3">
-<h4 id="_altosui_and_telegps_applications_12">F.26.1. AltosUI and TeleGPS Applications:</h4>
+<h4 id="_altosui_and_telegps_applications_12">H.32.1. AltosUI and TeleGPS Applications:</h4>
<div class="paragraph">
<p>Windows Install Fixes</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_4">F.27. Release Notes for Version 1.4</h3>
+<h3 id="_release_notes_for_version_1_4">H.33. Release Notes for Version 1.4</h3>
<div class="paragraph">
<p>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</p>
</div>
<div class="sect3">
-<h4 id="_altos_25">F.27.1. AltOS</h4>
+<h4 id="_altos_30">H.33.1. AltOS</h4>
<div class="paragraph">
<p>AltOS new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application">F.27.2. AltosUI Application</h4>
+<h4 id="_altosui_application">H.33.2. AltosUI Application</h4>
<div class="paragraph">
<p>AltosUI new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_telegps_application">F.27.3. TeleGPS Application</h4>
+<h4 id="_telegps_application">H.33.3. TeleGPS Application</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_documentation_4">F.27.4. Documentation</h4>
+<h4 id="_documentation_4">H.33.4. Documentation</h4>
<div class="paragraph">
<p>Documentation changes:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_3_2">F.28. Release Notes for Version 1.3.2</h3>
+<h3 id="_release_notes_for_version_1_3_2">H.34. Release Notes for Version 1.3.2</h3>
<div class="paragraph">
<p>Version 1.3.2 is a minor release. It includes small bug fixes for
the TeleMega flight software and AltosUI ground station</p>
</div>
<div class="sect3">
-<h4 id="_altos_26">F.28.1. AltOS</h4>
+<h4 id="_altos_31">H.34.1. AltOS</h4>
<div class="paragraph">
<p>AltOS fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application_2">F.28.2. AltosUI Application</h4>
+<h4 id="_altosui_application_2">H.34.2. AltosUI Application</h4>
<div class="paragraph">
<p>AltosUI fixes:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_3_1">F.29. Release Notes for Version 1.3.1</h3>
+<h3 id="_release_notes_for_version_1_3_1">H.35. Release Notes for Version 1.3.1</h3>
<div class="paragraph">
<p>Version 1.3.1 is a minor release. It improves support for
TeleMega, TeleMetrum v2.0, TeleMini v2.0 and EasyMini.</p>
</div>
<div class="sect3">
-<h4 id="_altos_27">F.29.1. AltOS</h4>
+<h4 id="_altos_32">H.35.1. AltOS</h4>
<div class="paragraph">
<p>AltOS new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application_3">F.29.2. AltosUI Application</h4>
+<h4 id="_altosui_application_3">H.35.2. AltosUI Application</h4>
<div class="paragraph">
<p>AltosUI new features:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_3">F.30. Release Notes for Version 1.3</h3>
+<h3 id="_release_notes_for_version_1_3">H.36. Release Notes for Version 1.3</h3>
<div class="paragraph">
<p>Version 1.3 is a major release. It adds support for TeleMega,
TeleMetrum v2.0, TeleMini v2.0 and EasyMini.</p>
</div>
<div class="sect3">
-<h4 id="_altos_28">F.30.1. AltOS</h4>
+<h4 id="_altos_33">H.36.1. AltOS</h4>
<div class="paragraph">
<p>AltOS new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application_4">F.30.2. AltosUI Application</h4>
+<h4 id="_altosui_application_4">H.36.2. AltosUI Application</h4>
<div class="paragraph">
<p>AltosUI new features:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_2_1">F.31. Release Notes for Version 1.2.1</h3>
+<h3 id="_release_notes_for_version_1_2_1">H.37. Release Notes for Version 1.2.1</h3>
<div class="paragraph">
<p>Version 1.2.1 is a minor release. It adds support for TeleBT and
the AltosDroid application, provides several new features in
AltosUI and fixes some bugs in the AltOS firmware.</p>
</div>
<div class="sect3">
-<h4 id="_altos_29">F.31.1. AltOS</h4>
+<h4 id="_altos_34">H.37.1. AltOS</h4>
<div class="paragraph">
<p>AltOS new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application_5">F.31.2. AltosUI Application</h4>
+<h4 id="_altosui_application_5">H.37.2. AltosUI Application</h4>
<div class="paragraph">
<p>AltosUI application new features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosdroid_5">F.31.3. AltosDroid</h4>
+<h4 id="_altosdroid_9">H.37.3. AltosDroid</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_2">F.32. Release Notes for Version 1.2</h3>
+<h3 id="_release_notes_for_version_1_2">H.38. Release Notes for Version 1.2</h3>
<div class="paragraph">
<p>Version 1.2 is a major release. It adds support for MicroPeak
and the MicroPeak USB adapter.</p>
</div>
<div class="sect3">
-<h4 id="_altos_30">F.32.1. AltOS</h4>
+<h4 id="_altos_35">H.38.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_and_micropeak_application">F.32.2. AltosUI and MicroPeak Application</h4>
+<h4 id="_altosui_and_micropeak_application">H.38.2. AltosUI and MicroPeak Application</h4>
<div class="paragraph">
<p>New Features:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_1">F.33. Release Notes for Version 1.1</h3>
+<h3 id="_release_notes_for_version_1_1">H.39. Release Notes for Version 1.1</h3>
<div class="paragraph">
<p>Version 1.1.1 is a bug-fix release. It fixes a couple of bugs
in AltosUI and one firmware bug that affects TeleMetrum
addition of the Ground Distance value in the Descent tab.</p>
</div>
<div class="sect3">
-<h4 id="_altos_31">F.33.1. AltOS</h4>
+<h4 id="_altos_36">H.39.1. AltOS</h4>
<div class="paragraph">
<p>AltOS fixes:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_4">F.33.2. AltosUI</h4>
+<h4 id="_altosui_10">H.39.2. AltosUI</h4>
<div class="paragraph">
<p>AltosUI new features:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_1_2">F.34. Release Notes for Version 1.1</h3>
+<h3 id="_release_notes_for_version_1_1_2">H.40. Release Notes for Version 1.1</h3>
<div class="paragraph">
<p>Version 1.1 is a minor release. It provides a few new features
in AltosUI and the AltOS firmware and fixes bugs.</p>
</div>
<div class="sect3">
-<h4 id="_altos_32">F.34.1. AltOS</h4>
+<h4 id="_altos_37">H.40.1. AltOS</h4>
<div class="paragraph">
<p>AltOS Firmware New Features:</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_5">F.34.2. AltosUI</h4>
+<h4 id="_altosui_11">H.40.2. AltosUI</h4>
<div class="paragraph">
<p>AltosUI New Features:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_1_0_1">F.35. Release Notes for Version 1.0.1</h3>
+<h3 id="_release_notes_for_version_1_0_1">H.41. Release Notes for Version 1.0.1</h3>
<div class="paragraph">
<p>Version 1.0.1 is a major release, adding support for the
TeleMini device and lots of new AltosUI features</p>
</div>
<div class="sect3">
-<h4 id="_altos_33">F.35.1. AltOS</h4>
+<h4 id="_altos_38">H.41.1. AltOS</h4>
<div class="paragraph">
<p>AltOS New Features</p>
</div>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application_6">F.35.2. AltosUI Application</h4>
+<h4 id="_altosui_application_6">H.41.2. AltosUI Application</h4>
<div class="paragraph">
<p>AltosUI New Features</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_0_9_2">F.36. Release Notes for Version 0.9.2</h3>
+<h3 id="_release_notes_for_version_0_9_2">H.42. Release Notes for Version 0.9.2</h3>
<div class="paragraph">
<p>Version 0.9.2 is an AltosUI bug-fix release, with no firmware
changes.</p>
</div>
<div class="sect3">
-<h4 id="_altosui_6">F.36.1. AltosUI</h4>
+<h4 id="_altosui_12">H.42.1. AltosUI</h4>
<div class="paragraph">
<p>AltosUI fixes:</p>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_0_9">F.37. Release Notes for Version 0.9</h3>
+<h3 id="_release_notes_for_version_0_9">H.43. Release Notes for Version 0.9</h3>
<div class="paragraph">
<p>Version 0.9 adds a few new firmware features and accompanying
AltosUI changes, along with new hardware support.</p>
</div>
<div class="sect3">
-<h4 id="_altos_34">F.37.1. AltOS</h4>
+<h4 id="_altos_39">H.43.1. AltOS</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect3">
-<h4 id="_altosui_application_7">F.37.2. AltosUI Application</h4>
+<h4 id="_altosui_application_7">H.43.2. AltosUI Application</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_0_8">F.38. Release Notes for Version 0.8</h3>
+<h3 id="_release_notes_for_version_0_8">H.44. Release Notes for Version 0.8</h3>
<div class="paragraph">
<p>Version 0.8 offers a major upgrade in the AltosUI
interface.</p>
</div>
<div class="sect3">
-<h4 id="_altosui_application_8">F.38.1. AltosUI Application:</h4>
+<h4 id="_altosui_application_8">H.44.1. AltosUI Application:</h4>
<div class="ulist">
<ul>
<li>
</div>
</div>
<div class="sect2">
-<h3 id="_release_notes_for_version_0_7_1">F.39. Release Notes for Version 0.7.1</h3>
+<h3 id="_release_notes_for_version_0_7_1">H.45. Release Notes for Version 0.7.1</h3>
<div class="paragraph">
<p>Version 0.7.1 is the first release containing our new
cross-platform Java-based user interface.</p>
</div>
<div class="sect3">
-<h4 id="_altosui_application_9">F.39.1. AltosUI Application</h4>
+<h4 id="_altosui_application_9">H.45.1. AltosUI Application</h4>
<div class="ulist">
<ul>
<li>
</div>
<div id="footer">
<div id="footer-text">
-Version v1.9.6<br>
-Last updated 2020-10-22 16:37:05 -0600
+Version v1.9.12<br>
+Last updated 2022-10-28 23:33:06 -0600
</div>
</div>
</body>