diff options
| author | Bdale Garbee <bdale@gag.com> | 2015-07-16 13:36:59 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2015-07-16 13:36:59 -0600 | 
| commit | f4f0f044df1251d64d44bf62d25b488fd04a05c8 (patch) | |
| tree | 12efee1447a67d8cf37b6f447c011708264b8266 /doc | |
| parent | b25690062ac04a588ad4d11740597c20e516eb1a (diff) | |
| parent | 570daace9caf7647a09c53d5c75593cc4c98b93b (diff) | |
Merge branch 'branch-1.6' into debian
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/Makefile | 4 | ||||
| -rw-r--r-- | doc/altusmetrum.xsl | 585 | ||||
| -rw-r--r-- | doc/load-maps.png | bin | 520872 -> 572796 bytes | |||
| -rw-r--r-- | doc/monitor-idle.png | bin | 0 -> 64749 bytes | |||
| -rw-r--r-- | doc/release-notes-1.6.1.xsl | 189 | ||||
| -rw-r--r-- | doc/telemetry.xsl | 499 | 
6 files changed, 1127 insertions, 150 deletions
diff --git a/doc/Makefile b/doc/Makefile index 2887a229..9c6189b4 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -18,7 +18,8 @@ RELNOTES=\  	release-notes-1.4.html \  	release-notes-1.4.1.html \  	release-notes-1.5.html \ -	release-notes-1.6.html +	release-notes-1.6.html \ +	release-notes-1.6.1.html  PICTURES=\  	altosui.png \ @@ -51,6 +52,7 @@ PICTURES=\  	micropeak-statistics.png \  	MicroPeakUSB-2.0-inuse.jpg \  	MicroPeakUSB-2.0.jpg \ +	monitor-idle.png \  	scan-channels.png \  	site-map.png \  	table.png \ diff --git a/doc/altusmetrum.xsl b/doc/altusmetrum.xsl index 1631983a..a40481f1 100644 --- a/doc/altusmetrum.xsl +++ b/doc/altusmetrum.xsl @@ -41,6 +41,13 @@      </legalnotice>      <revhistory>        <revision> +	<revnumber>1.6.1</revnumber> +	<date>15 July 2015</date> +	<revremark> +	  Minor release adding TeleBT v3.0 support. +	</revremark> +      </revision> +      <revision>  	<revnumber>1.6</revnumber>  	<date>8 January 2015</date>  	<revremark> @@ -2620,9 +2627,9 @@ NAR #88757, TRA #12200  	  <listitem>  	    <para>  	      After Motor. The flight software counts each time the -	      rocket starts accelerating (presumably due to a motor or -	      motors igniting). Use this value to count ignitions for -	      multi-staged or multi-airstart launches. +	      rocket starts accelerating and then decelerating +	      (presumably due to a motor or motors burning). Use this +	      value for multi-staged or multi-airstart launches.  	    </para>  	  </listitem>  	  <listitem> @@ -3853,8 +3860,7 @@ NAR #88757, TRA #12200        <para>  	Before heading out to a new launch site, you can use this to  	load satellite images in case you don't have internet -	connectivity at the site. This loads a fairly large area -	around the launch site, which should cover any flight you're likely to make. +	connectivity at the site.        </para>        <para>  	There's a drop-down menu of launch sites we know about; if @@ -3909,15 +3915,18 @@ NAR #88757, TRA #12200  	You can specify the range of zoom levels to download; smaller  	numbers show more area with less resolution. The default  	level, 0, shows about 3m/pixel. One zoom level change -	doubles or halves that number. +	doubles or halves that number. Larger zoom levels show more +	detail, smaller zoom levels less.        </para>        <para> -	The Tile Radius value sets how large an area around the center -	point to download. Each tile is 512x512 pixels, and the -	'radius' value specifies how many tiles away from the center -	will be downloaded. Specify a radius of 0 and you get only the -	center tile. A radius of 1 loads a 3x3 grid, centered on the -	specified location. +	The Map Radius value sets how large an area around the center +	point to download. Select a value large enough to cover any +	plausible flight from that site. Be aware that loading a large +	area with a high maximum zoom level can attempt to download a +	lot of data. Loading hybrid maps with a 10km radius at a +	minimum zoom of -2 and a maximum zoom of 2 consumes about +	120MB of space. Terrain and road maps consume about 1/10 as +	much space as satellite or hybrid maps.        </para>        <para>  	Clicking the 'Load Map' button will fetch images from Google @@ -3929,6 +3938,13 @@ NAR #88757, TRA #12200      </section>      <section>        <title>Monitor Idle</title> +      <informalfigure> +	<mediaobject> +	  <imageobject> +	    <imagedata fileref="monitor-idle.png" width="5.2in" scalefit="1"/> +	  </imageobject> +	</mediaobject> +      </informalfigure>        <para>  	This brings up a dialog similar to the Monitor Flight UI,  	except it works with the altimeter in “idle” mode by sending @@ -3939,22 +3955,28 @@ NAR #88757, TRA #12200  	cannot manage to run Monitor Idle, then it's very likely that  	your callsigns are different in some way.        </para> +      <para> +	You can change the frequency and callsign used to communicate +	with the flight computer; they must both match the +	configuration in the flight computer exactly. +      </para>      </section>    </chapter>    <chapter>      <title>AltosDroid</title>      <para>        AltosDroid provides the same flight monitoring capabilities as -      AltosUI, but runs on Android devices and is designed to connect -      to a TeleBT receiver over Bluetooth™. AltosDroid monitors +      AltosUI, but runs on Android devices. AltosDroid is designed to connect +      to a TeleBT receiver over Bluetooth™ and (on Android devices supporting +      USB On-the-go) TeleDongle and TeleBT devices over USB. AltosDroid monitors        telemetry data, logging it to internal storage in the Android -      device, and presents that data in a UI the same way the 'Monitor -      Flight' window does in AltosUI. +      device, and presents that data in a UI similar to the 'Monitor +      Flight' window in AltosUI.      </para>      <para> -      This manual will explain how to configure AltosDroid, connect -      to TeleBT, operate the flight monitoring interface and describe -      what the displayed data means. +      This manual will explain how to configure AltosDroid, connect to +      TeleBT or TeleDongle, operate the flight monitoring interface +      and describe what the displayed data means.      </para>      <section>        <title>Installing AltosDroid</title> @@ -3968,7 +3990,7 @@ NAR #88757, TRA #12200        </para>      </section>      <section> -      <title>Connecting to TeleBT</title> +      <title>Connecting to TeleBT over Bluetooth™</title>        <para>  	Press the Android 'Menu' button or soft-key to see the  	configuration options available. Select the 'Connect a device' @@ -3983,14 +4005,90 @@ NAR #88757, TRA #12200        </para>      </section>      <section> +      <title>Connecting to TeleDongle or TeleBT over USB</title> +      <para> +	Get a special USB On-the-go adapter cable. These cables have a USB +	micro-B male connector on one end and a standard A female +	connector on the other end. Plug in your TeleDongle or TeleBT +	device to the adapter cable and the adapter cable into your +	phone and AltosDroid should automatically start up. If it +	doesn't, the most likely reason is that your Android device +	doesn't support USB On-the-go. +      </para> +    </section> +    <section>        <title>Configuring AltosDroid</title>        <para> -	The only configuration option available for AltosDroid is -	which frequency to listen on. Press the Android 'Menu' button -	or soft-key and pick the 'Select radio frequency' entry. That -	brings up a menu of pre-set radio frequencies; pick the one -	which matches your altimeter. +	There are several configuration and operation parameters +	available in the AltosDroid menu.        </para> +      <section> +	<title>Select radio frequency</title> +	<para> +	  This selects which frequency to listen on by bringing up a +	  menu of pre-set radio frequencies. Pick the one which matches +	  your altimeter. +	</para> +      </section> +      <section> +	<title>Select data rate</title> +	<para> +	  Altus Metrum transmitters can be configured to operate at +	  lower data rates to improve transmission range. If you have +	  configured your device to do this, this menu item allows you +	  to change the receiver to match. +	</para> +      </section> +      <section> +	<title>Change units</title> +	<para> +	  This toggles between metric and imperial units. +	</para> +      </section> +      <section> +	<title>Load maps</title> +	<para> +	  Brings up a dialog allowing you to download offline map +	  tiles so that you can have maps available even if you have +	  no network connectivity at the launch site. +	</para> +      </section> +      <section> +	<title>Map type</title> +	<para> +	  Displays a menu of map types and lets you select one. Hybrid +	  maps include satellite images with a roadmap +	  overlaid. Satellite maps dispense with the roadmap +	  overlay. Roadmap shows just the roads. Terrain includes +	  roads along with shadows indicating changes in elevation, +	  and other geographical features. +	</para> +      </section> +      <section> +	<title>Toggle Online/Offline maps</title> +	<para> +	  Switches between online and offline maps. Online maps will +	  show a 'move to current position' icon in the upper right +	  corner, while offline maps will have copyright information +	  all over the map. Otherwise, they're pretty similar. +	</para> +      </section> +      <section> +	<title>Select Tracker</title> +	<para> +	  Switches the information displays to show data for a +	  different transmitting device. The map will always show all +	  of the devices in view. Trackers are shown and selected by +	  serial number, so make sure you note the serial number of +	  devices in each airframe. +	</para> +      </section> +      <section> +	<title>Delete Track</title> +	<para> +	  Deletes all information about a transmitting device. +	</para> +      </section>      </section>      <section>        <title>AltosDroid Flight Monitoring</title> @@ -4004,91 +4102,353 @@ NAR #88757, TRA #12200        <section>  	<title>Pad</title>          <para> -          The 'Launch Pad' tab shows information used to decide when the +          The 'Pad' tab shows information used to decide when the            rocket is ready for flight. The first elements include red/green            indicators, if any of these is red, you'll want to evaluate -          whether the rocket is ready to launch: -          <variablelist> -	    <varlistentry> -	      <term>Battery Voltage</term> -	      <listitem> -		<para> -		  This indicates whether the Li-Po battery -		  powering the TeleMetrum has sufficient charge to last for -		  the duration of the flight. A value of more than -		  3.8V is required for a 'GO' status. -		</para> -	      </listitem> -	    </varlistentry> -	    <varlistentry> -	      <term>Apogee Igniter Voltage</term> -	      <listitem> -		<para> -		  This indicates whether the apogee -		  igniter has continuity. If the igniter has a low -		  resistance, then the voltage measured here will be close -		  to the Li-Po battery voltage. A value greater than 3.2V is -		  required for a 'GO' status. -		</para> -	      </listitem> -	    </varlistentry> -	    <varlistentry> -	      <term>Main Igniter Voltage</term> -	      <listitem> -		<para> -		  This indicates whether the main -		  igniter has continuity. If the igniter has a low -		  resistance, then the voltage measured here will be close -		  to the Li-Po battery voltage. A value greater than 3.2V is -		  required for a 'GO' status. -		</para> -	      </listitem> -	    </varlistentry> -	    <varlistentry> -	      <term>On-board Data Logging</term> -	      <listitem> -		<para> -		  This indicates whether there is -		  space remaining on-board to store flight data for the -		  upcoming flight. If you've downloaded data, but failed -		  to erase flights, there may not be any space -		  left. TeleMetrum can store multiple flights, depending -		  on the configured maximum flight log size. TeleMini -		  stores only a single flight, so it will need to be -		  downloaded and erased after each flight to capture -		  data. This only affects on-board flight logging; the -		  altimeter will still transmit telemetry and fire -		  ejection charges at the proper times. -		</para> -	      </listitem> -	    </varlistentry> -	    <varlistentry> -	      <term>GPS Locked</term> -	      <listitem> -		<para> -		  For a TeleMetrum or TeleMega device, this indicates whether the GPS receiver is -		  currently able to compute position information. GPS requires -		  at least 4 satellites to compute an accurate position. -		</para> -	      </listitem> -	    </varlistentry> -	    <varlistentry> -	      <term>GPS Ready</term> -	      <listitem> -		<para> -		  For a TeleMetrum or TeleMega device, this indicates whether GPS has reported at least -		  10 consecutive positions without losing lock. This ensures -		  that the GPS receiver has reliable reception from the -		  satellites. -		</para> -	      </listitem> -	    </varlistentry> -          </variablelist> +          whether the rocket is ready to launch.  	</para>  	<para> -	  The Launchpad tab also shows the computed launch pad position -	  and altitude, averaging many reported positions to improve the -	  accuracy of the fix. +	  When the pad tab is selected, the voice responses will +	  include status changes to the igniters and GPS reception, +	  letting you know if the rocket is still ready for launch. +	</para> +        <variablelist> +	  <varlistentry> +	    <term>Battery</term> +	    <listitem> +	      <para> +		This indicates whether the Li-Po battery +		powering the transmitter has sufficient charge to last for +		the duration of the flight. A value of more than +		3.8V is required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Receiver Battery</term> +	    <listitem> +	      <para> +		This indicates whether the Li-Po battery +		powering the TeleBT has sufficient charge to last for +		the duration of the flight. A value of more than +		3.8V is required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Data Logging</term> +	    <listitem> +	      <para> +		This indicates whether there is space remaining +		on-board to store flight data for the upcoming +		flight. If you've downloaded data, but failed to +		erase flights, there may not be any space +		left. TeleMetrum and TeleMega can store multiple +		flights, depending on the configured maximum flight +		log size. TeleGPS logs data continuously. TeleMini +		stores only a single flight, so it will need to be +		downloaded and erased after each flight to capture +		data. This only affects on-board flight logging; the +		altimeter will still transmit telemetry and fire +		ejection charges at the proper times. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>GPS Locked</term> +	    <listitem> +	      <para> +		For a TeleMetrum or TeleMega device, this indicates whether the GPS receiver is +		currently able to compute position information. GPS requires +		at least 4 satellites to compute an accurate position. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>GPS Ready</term> +	    <listitem> +	      <para> +		For a TeleMetrum or TeleMega device, this indicates whether GPS has reported at least +		10 consecutive positions without losing lock. This ensures +		that the GPS receiver has reliable reception from the +		satellites. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Apogee Igniter</term> +	    <listitem> +	      <para> +		This indicates whether the apogee +		igniter has continuity. If the igniter has a low +		resistance, then the voltage measured here will be close +		to the Li-Po battery voltage. A value greater than 3.2V is +		required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Main Igniter</term> +	    <listitem> +	      <para> +		This indicates whether the main +		igniter has continuity. If the igniter has a low +		resistance, then the voltage measured here will be close +		to the Li-Po battery voltage. A value greater than 3.2V is +		required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Igniter A-D</term> +	    <listitem> +	      <para> +		This indicates whether the indicated additional pyro +		channel igniter has continuity. If the igniter has a +		low resistance, then the voltage measured here will +		be close to the Li-Po battery voltage. A value +		greater than 3.2V is required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +        </variablelist> +	<para> +	  The Pad tab also shows the location of the Android device. +	</para> +      </section> +      <section> +	<title>Flight</title> +        <para> +          The 'Flight' tab shows information used to evaluate and spot +          a rocket while in flight. It displays speed and height data +          to monitor the health of the rocket, along with elevation, +          range and bearing to help locate the rocket in the sky. +	</para> +	<para> +	  While the Flight tab is displayed, the voice announcements +	  will include current speed, height, elevation and bearing +	  information. +	</para> +        <variablelist> +	  <varlistentry> +	    <term>Speed</term> +	    <listitem> +	      <para> +		Shows current vertical speed. During descent, the +		speed values are averaged over a fairly long time to +		try and make them steadier. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Height</term> +	    <listitem> +	      <para> +		Shows the current height above the launch pad. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Max Speed</term> +	    <listitem> +	      <para> +		Shows the maximum vertical speed seen during the flight. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Max Height</term> +	    <listitem> +	      <para> +		Shows the maximum height above launch pad. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Elevation</term> +	    <listitem> +	      <para> +		This is the angle above the horizon from the android +		devices current position. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Range</term> +	    <listitem> +	      <para> +		The total distance from the android device to the +		rocket, including both ground distance and +		difference in altitude. Use this to gauge how large +		the rocket is likely to appear in the sky. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Bearing</term> +	    <listitem> +	      <para> +		This is the aziumuth from true north for the rocket +		from the android device. Use this in combination +		with the Elevation value to help locate the rocket +		in the sky, or at least to help point the antenna in +		the general direction. This is provided in both +		degrees and a compass point (like West South +		West). You'll want to know which direction is true +		north before launching your rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Ground Distance</term> +	    <listitem> +	      <para> +		This shows the distance across the ground to the +		lat/lon where the rocket is located. Use this to +		estimate what is currently under the rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Latitude/Longitude</term> +	    <listitem> +	      <para> +		Displays the last known location of the rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Apogee Igniter</term> +	    <listitem> +	      <para> +		This indicates whether the apogee +		igniter has continuity. If the igniter has a low +		resistance, then the voltage measured here will be close +		to the Li-Po battery voltage. A value greater than 3.2V is +		required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Main Igniter</term> +	    <listitem> +	      <para> +		This indicates whether the main +		igniter has continuity. If the igniter has a low +		resistance, then the voltage measured here will be close +		to the Li-Po battery voltage. A value greater than 3.2V is +		required for a 'GO' status. +	      </para> +	    </listitem> +	  </varlistentry> +        </variablelist> +      </section> +      <section> +	<title>Recover</title> +        <para> +          The 'Recover' tab shows information used while recovering the +	  rocket on the ground after flight. +	</para> +	<para> +	  While the Recover tab is displayed, the voice announcements +	  will include distance along with either bearing or +	  direction, depending on whether you are moving. +	</para> +        <variablelist> +	  <varlistentry> +	    <term>Bearing</term> +	    <listitem> +	      <para> +		This is the aziumuth from true north for the rocket +		from the android device. Use this in combination +		with the Elevation value to help locate the rocket +		in the sky, or at least to help point the antenna in +		the general direction. This is provided in both +		degrees and a compass point (like West South +		West). You'll want to know which direction is true +		north before launching your rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Direction</term> +	    <listitem> +	      <para> +		When you are in motion, this provides the angle from +		your current direction of motion towards the rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Distance</term> +	    <listitem> +	      <para> +		Distance over the ground to the rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Tar Lat/Tar Lon</term> +	    <listitem> +	      <para> +		Displays the last known location of the rocket. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>My Lat/My Lon</term> +	    <listitem> +	      <para> +		Displays the location of the Android device. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Max Height</term> +	    <listitem> +	      <para> +		Shows the maximum height above launch pad. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Max Speed</term> +	    <listitem> +	      <para> +		Shows the maximum vertical speed seen during the flight. +	      </para> +	    </listitem> +	  </varlistentry> +	  <varlistentry> +	    <term>Max Accel</term> +	    <listitem> +	      <para> +		Shows the maximum vertical acceleration seen during the flight. +	      </para> +	    </listitem> +	  </varlistentry> +        </variablelist> +      </section> +      <section> +	<title>Map</title> +	<para> +	  The 'Map' tab shows a map of the area around the rocket +	  being tracked along with information needed to recover it. +	</para> +	<para> +	  On the map itself, icons showing the location of the android +	  device along with the last known location of each tracker. A +	  blue line is drawn from the android device location to the +	  currently selected tracker. +	</para> +	<para> +	  Below the map, the distance and either bearing or direction +	  along with the lat/lon of the target and the android device +	  are shown +	</para> +	<para> +	  The Map tab provides the same voice announcements as the +	  Recover tab.  	</para>        </section>      </section> @@ -4097,9 +4457,9 @@ NAR #88757, TRA #12200        <para>  	AltosDroid always saves every bit of telemetry data it  	receives. To download that to a computer for use with AltosUI, -	simply remove the SD card from your Android device, or connect -	your device to your computer's USB port and browse the files -	on that device. You will find '.telem' files in the TeleMetrum +	remove the SD card from your Android device, or connect your +	device to your computer's USB port and browse the files on +	that device. You will find '.telem' files in the TeleMetrum  	directory that will work with AltosUI directly.        </para>      </section> @@ -5916,6 +6276,13 @@ NAR #88757, TRA #12200    <appendix>      <title>Release Notes</title>      <simplesect> +      <title>Version 1.6.1</title> +      <xi:include +	  xmlns:xi="http://www.w3.org/2001/XInclude" +	  href="release-notes-1.6.1.xsl" +	  xpointer="xpointer(/article/*)"/> +    </simplesect> +    <simplesect>        <title>Version 1.6</title>        <xi:include  	  xmlns:xi="http://www.w3.org/2001/XInclude" diff --git a/doc/load-maps.png b/doc/load-maps.png Binary files differindex ae98c9a5..150b8b3c 100644 --- a/doc/load-maps.png +++ b/doc/load-maps.png diff --git a/doc/monitor-idle.png b/doc/monitor-idle.png Binary files differnew file mode 100644 index 00000000..964063f1 --- /dev/null +++ b/doc/monitor-idle.png diff --git a/doc/release-notes-1.6.1.xsl b/doc/release-notes-1.6.1.xsl new file mode 100644 index 00000000..058d43fe --- /dev/null +++ b/doc/release-notes-1.6.1.xsl @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" +"/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd"> + +<article> +  <para> +    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. +  </para> +  <para> +    AltOS New Features +    <itemizedlist> +      <listitem> +	<para> +	  Add support for TeleBT v3.0 boards. +	</para> +      </listitem> +      <listitem> +	<para> +	  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. +	</para> +      </listitem> +    </itemizedlist> +  </para> +  <para> +    AltOS Fixes +    <itemizedlist> +      <listitem> +	<para> +	  Make TeleDongle and TeleBT more tolerant of data rate +	  variations from transmitting devices. +	</para> +      </listitem> +    </itemizedlist> +  </para> +  <para> +    AltosUI and TeleGPS New Features +    <itemizedlist> +      <listitem> +	<para> +	  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. +	</para> +      </listitem> +    </itemizedlist> +  </para> +  <para> +    AltosUI Fixes +    <itemizedlist> +      <listitem> +	<para> +	  Fix frequency configuration to round values instead of +	  truncate them, avoiding a common 1kHz error in the setting. +	</para> +      </listitem> +      <listitem> +	<para> +	  Turn the Windows stub into a more useful program that can +	  launch the application with parameters so that file manager +	  icons work more reliably. +	</para> +      </listitem> +      <listitem> +	<para> +	  Force KML export to use a C locale so that numbers are +	  formatted with '.' instead of ',' for a decimal separator in +	  non-US locales.  +	</para> +      </listitem> +      <listitem> +	<para> +	  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. +	</para> +      </listitem> +      <listitem> +	<para> +	  Allow configuration of frequency and callsign in Monitor +	  Idle mode. +	</para> +      </listitem> +      <listitem> +	<para> +	  Fix layout weirdness when resizing windows on +	  Windows. Windows shouldn't have giant blank spaces around +	  the useful content anymore. +	</para> +      </listitem> +      <listitem> +	<para> +	  Fix layout weirdness when resizing windows on +	  Windows. Windows shouldn't have giant blank spaces around +	  the useful content anymore. +	</para> +      </listitem> +      <listitem> +	<para> +	  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. +	</para> +      </listitem> +      <listitem> +	<para> +	  Make Replay Flight run in realtime again. It had been set to +	  run at 10x speed by mistake. +	</para> +      </listitem> +    </itemizedlist> +  </para> +  <para> +    AltosDroid New Features +    <itemizedlist> +      <listitem> +	<para> +	  Add offline map support using mapping code from AltosUI. +	</para> +      </listitem> +      <listitem> +	<para> +	  Support TeleDongle (and TeleBT via USB) on devices +	  supporting USB On-The-Go. +	</para> +      </listitem> +      <listitem> +	<para> +	  Display additional TeleMega pyro channel status in Pad tab. +	</para> +      </listitem> +      <listitem> +	<para> +	  Switch between metric and imperial units. +	</para> +      </listitem> +      <listitem> +	<para> +	  Monitor TeleBT battery voltage. +	</para> +      </listitem> +      <listitem> +	<para> +	  Track multiple devices at the same time, selecting between +	  them with a menu or using the map. +	</para> +      </listitem> +      <listitem> +	<para> +	  Add hybrid, satellite and terrain map types. +	</para> +      </listitem> +    </itemizedlist> +  </para> +  <para> +    AltosDroid Fixes +    <itemizedlist> +      <listitem> +	<para> +	  Use standard Android display conventions so that a menu +	  button is available in the application title bar. +	</para> +      </listitem> +      <listitem> +	<para> +	  Adjust layout to work on large and small screens; shrinking +	  the go/no-go lights in smaller environments to try and make +	  everything visible. +	</para> +      </listitem> +      <listitem> +	<para> +	  Make voice announcements depend on current tab. +	</para> +      </listitem> +      <listitem> +	<para> +	  Compute adjustment to current travel direction while in +	  motion towards rocket. +	</para> +      </listitem> +    </itemizedlist> +  </para> +</article> diff --git a/doc/telemetry.xsl b/doc/telemetry.xsl index e4101507..2e0b3ea1 100644 --- a/doc/telemetry.xsl +++ b/doc/telemetry.xsl @@ -110,7 +110,7 @@        </para>      </section>      <section> -      <title>Sensor Data</title> +      <title>TeleMetrum v1.x, TeleMini and TeleNano Sensor Data</title>        <informaltable frame='none' label='' tocentry='0'>  	<tgroup cols='2' align='center' colsep='1' rowsep='1'>  	  <colspec align='center' colwidth='*' colname='Offset'/> @@ -124,7 +124,7 @@  	  <tbody>  	    <row>  	      <entry>0x01</entry> -	      <entry>TeleMetrum Sensor Data</entry> +	      <entry>TeleMetrum v1.x Sensor Data</entry>  	    </row>  	    <row>  	      <entry>0x02</entry> @@ -138,7 +138,7 @@  	</tgroup>        </informaltable>        <para> -	TeleMetrum, TeleMini and TeleNano share this same packet +	TeleMetrum v1.x, TeleMini and TeleNano share this same packet  	format for sensor data. Each uses a distinct packet type so  	that the receiver knows which data values are valid and which  	are undefined. @@ -214,6 +214,316 @@        </table>      </section>      <section> +      <title>TeleMega Sensor  Data</title> +      <informaltable frame='none' label='' tocentry='0'> +	<tgroup cols='2' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='left' colwidth='3*' colname='Description'/> +	  <thead> +	    <row> +	      <entry>Type</entry> +	      <entry>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>0x08</entry> +	      <entry>TeleMega IMU Sensor Data</entry> +	    </row> +	    <row> +	      <entry>0x09</entry> +	      <entry>TeleMega Kalman and Voltage Data</entry> +	    </row> +	  </tbody> +	</tgroup> +      </informaltable> +      <para> +	TeleMega has a lot of sensors, and so it splits the sensor +	data into two packets. The raw IMU data are sent more often; +	the voltage values don't change very fast, and the Kalman +	values can be reconstructed from the IMU data. +      </para> +      <para> +	IMU Sensor Data packets are transmitted once per second on the +	ground, 10 times per second during ascent and once per second +	during descent and landing +      </para> +      <para> +	Kalman and Voltage Data packets are transmitted once per second on the +	ground, 5 times per second during ascent and once per second +	during descent and landing +      </para> +      <para> +	The high-g accelerometer is reported separately from the data +	for the 9-axis IMU (accel/gyro/mag). The 9-axis IMU is mounted +	so that the X axis is "across" the board (along the short +	axis0, the Y axis is "along" the board (along the long axis, +	with the high-g accelerometer) and the Z axis is "through" the +	board (perpendicular to the board). Rotation measurements are +	around the respective axis, so Y rotation measures the spin +	rate of the rocket while X and Z rotation measure the tilt +	rate. +      </para> +      <para> +	The overall tilt angle of the rocket is computed by first +	measuring the orientation of the rocket on the pad using the 3 +	axis accelerometer, and then integrating the overall tilt rate +	from the 3 axis gyroscope to compute the total orientation +	change of the airframe since liftoff. +      </para> +      <table frame='all'> +	<title>TeleMega IMU Sensor Packet Contents</title> +	<tgroup cols='4' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='center' colwidth='3*' colname='Data Type'/> +	  <colspec align='left' colwidth='3*' colname='Name'/> +	  <colspec align='left' colwidth='9*' colname='Description'/> +	  <thead> +	    <row> +	      <entry align='center'>Offset</entry> +	      <entry align='center'>Data Type</entry> +	      <entry align='center'>Name</entry> +	      <entry align='center'>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>5</entry><entry>uint8_t</entry><entry>orient</entry><entry>Angle from vertical in degrees</entry> +	    </row> +	    <row> +	      <entry>6</entry><entry>int16_t</entry><entry>accel</entry><entry>High G accelerometer</entry> +	    </row> +	    <row> +	      <entry>8</entry><entry>int32_t</entry><entry>pres</entry><entry>pressure (Pa * 10)</entry> +	    </row> +	    <row> +	      <entry>12</entry><entry>int16_t</entry><entry>temp</entry><entry>temperature (°C * 100)</entry> +	    </row> +	    <row> +	      <entry>14</entry><entry>int16_t</entry><entry>accel_x</entry><entry>X axis acceleration (across)</entry> +	    </row> +	    <row> +	      <entry>16</entry><entry>int16_t</entry><entry>accel_y</entry><entry>Y axis acceleration (along)</entry> +	    </row> +	    <row> +	      <entry>18</entry><entry>int16_t</entry><entry>accel_z</entry><entry>Z axis acceleration (through)</entry> +	    </row> +	    <row> +	      <entry>20</entry><entry>int16_t</entry><entry>gyro_x</entry><entry>X axis rotation (across)</entry> +	    </row> +	    <row> +	      <entry>22</entry><entry>int16_t</entry><entry>gyro_y</entry><entry>Y axis rotation (along)</entry> +	    </row> +	    <row> +	      <entry>24</entry><entry>int16_t</entry><entry>gyro_z</entry><entry>Z axis rotation (through)</entry> +	    </row> +	    <row> +	      <entry>26</entry><entry>int16_t</entry><entry>mag_x</entry><entry>X field strength (across)</entry> +	    </row> +	    <row> +	      <entry>28</entry><entry>int16_t</entry><entry>mag_y</entry><entry>Y field strength (along)</entry> +	    </row> +	    <row> +	      <entry>30</entry><entry>int16_t</entry><entry>mag_z</entry><entry>Z field strength (through)</entry> +	    </row> +	    <row> +	      <entry>32</entry> +	    </row> +	  </tbody> +	</tgroup> +      </table> +      <table frame='all'> +	<title>TeleMega Kalman and Voltage Data Packet Contents</title> +	<tgroup cols='4' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='center' colwidth='3*' colname='Data Type'/> +	  <colspec align='left' colwidth='3*' colname='Name'/> +	  <colspec align='left' colwidth='9*' colname='Description'/> +	  <thead> +	    <row> +	      <entry align='center'>Offset</entry> +	      <entry align='center'>Data Type</entry> +	      <entry align='center'>Name</entry> +	      <entry align='center'>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>5</entry><entry>uint8_t</entry><entry>state</entry><entry>Flight state</entry> +	    </row> +	    <row> +	      <entry>6</entry><entry>int16_t</entry><entry>v_batt</entry><entry>battery voltage</entry> +	    </row> +	    <row> +	      <entry>8</entry><entry>int16_t</entry><entry>v_pyro</entry><entry>pyro battery voltage</entry> +	    </row> +	    <row> +	      <entry>10</entry><entry>int8_t[6]</entry><entry>sense</entry><entry>pyro continuity sense</entry> +	    </row> +	    <row> +	      <entry>16</entry><entry>int32_t</entry><entry>ground_pres</entry><entry>Average barometer reading on ground</entry> +	    </row> +	    <row> +	      <entry>20</entry><entry>int16_t</entry><entry>ground_accel</entry><entry>Average accelerometer reading on ground</entry> +	    </row> +	    <row> +	      <entry>22</entry><entry>int16_t</entry><entry>accel_plus_g</entry><entry>Accel calibration at +1g</entry> +	    </row> +	    <row> +	      <entry>24</entry><entry>int16_t</entry><entry>accel_minus_g</entry><entry>Accel calibration at -1g</entry> +	    </row> +	    <row> +	      <entry>26</entry><entry>int16_t</entry><entry>acceleration</entry><entry>m/s² * 16</entry> +	    </row> +	    <row> +	      <entry>28</entry><entry>int16_t</entry><entry>speed</entry><entry>m/s * 16</entry> +	    </row> +	    <row> +	      <entry>30</entry><entry>int16_t</entry><entry>height</entry><entry>m</entry> +	    </row> +	    <row> +	      <entry>32</entry> +	    </row> +	  </tbody> +	</tgroup> +      </table> +    </section> +    <section> +      <title>TeleMetrum v2 Sensor  Data</title> +      <informaltable frame='none' label='' tocentry='0'> +	<tgroup cols='2' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='left' colwidth='3*' colname='Description'/> +	  <thead> +	    <row> +	      <entry>Type</entry> +	      <entry>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>0x0A</entry> +	      <entry>TeleMetrum v2 Sensor Data</entry> +	    </row> +	    <row> +	      <entry>0x0B</entry> +	      <entry>TeleMetrum v2 Calibration Data</entry> +	    </row> +	  </tbody> +	</tgroup> +      </informaltable> +      <para> +	TeleMetrum v2 has higher resolution barometric data than +	TeleMetrum v1, and so the constant calibration data is +	split out into a separate packet. +      </para> +      <para> +	TeleMetrum v2 Sensor Data packets are transmitted once per second on the +	ground, 10 times per second during ascent and once per second +	during descent and landing +      </para> +      <para> +	TeleMetrum v2 Calibration Data packets are always transmitted once per second. +      </para> +      <table frame='all'> +	<title>TeleMetrum v2 Sensor Packet Contents</title> +	<tgroup cols='4' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='center' colwidth='3*' colname='Data Type'/> +	  <colspec align='left' colwidth='3*' colname='Name'/> +	  <colspec align='left' colwidth='9*' colname='Description'/> +	  <thead> +	    <row> +	      <entry align='center'>Offset</entry> +	      <entry align='center'>Data Type</entry> +	      <entry align='center'>Name</entry> +	      <entry align='center'>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>5</entry><entry>uint8_t</entry><entry>state</entry><entry>Flight state</entry> +	    </row> +	    <row> +	      <entry>6</entry><entry>int16_t</entry><entry>accel</entry><entry>accelerometer</entry> +	    </row> +	    <row> +	      <entry>8</entry><entry>int32_t</entry><entry>pres</entry><entry>pressure sensor (Pa * 10)</entry> +	    </row> +	    <row> +	      <entry>12</entry><entry>int16_t</entry><entry>temp</entry><entry>temperature sensor (°C * 100)</entry> +	    </row> + +	    <row> +	      <entry>14</entry><entry>int16_t</entry><entry>acceleration</entry><entry>m/s² * 16</entry> +	    </row> +	    <row> +	      <entry>16</entry><entry>int16_t</entry><entry>speed</entry><entry>m/s * 16</entry> +	    </row> +	    <row> +	      <entry>18</entry><entry>int16_t</entry><entry>height</entry><entry>m</entry> +	    </row> + +	    <row> +	      <entry>20</entry><entry>int16_t</entry><entry>v_batt</entry><entry>battery voltage</entry> +	    </row> +	    <row> +	      <entry>22</entry><entry>int16_t</entry><entry>sense_d</entry><entry>drogue continuity sense</entry> +	    </row> +	    <row> +	      <entry>24</entry><entry>int16_t</entry><entry>sense_m</entry><entry>main continuity sense</entry> +	    </row> +	    <row> +	      <entry>26</entry><entry>pad[6]</entry><entry>pad bytes</entry><entry></entry> +	    </row> +	    <row> +	      <entry>32</entry> +	    </row> +	  </tbody> +	</tgroup> +      </table> +      <table frame='all'> +	<title>TeleMetrum v2 Calibration Data Packet Contents</title> +	<tgroup cols='4' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='center' colwidth='3*' colname='Data Type'/> +	  <colspec align='left' colwidth='3*' colname='Name'/> +	  <colspec align='left' colwidth='9*' colname='Description'/> +	  <thead> +	    <row> +	      <entry align='center'>Offset</entry> +	      <entry align='center'>Data Type</entry> +	      <entry align='center'>Name</entry> +	      <entry align='center'>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>5</entry><entry>pad[3]</entry><entry>pad bytes</entry><entry></entry> +	    </row> +	    <row> +	      <entry>8</entry><entry>int32_t</entry><entry>ground_pres</entry><entry>Average barometer reading on ground</entry> +	    </row> +	    <row> +	      <entry>12</entry><entry>int16_t</entry><entry>ground_accel</entry><entry>Average accelerometer reading on ground</entry> +	    </row> +	    <row> +	      <entry>14</entry><entry>int16_t</entry><entry>accel_plus_g</entry><entry>Accel calibration at +1g</entry> +	    </row> +	    <row> +	      <entry>16</entry><entry>int16_t</entry><entry>accel_minus_g</entry><entry>Accel calibration at -1g</entry> +	    </row> +	    <row> +	      <entry>18</entry><entry>pad[14]</entry><entry>pad bytes</entry><entry></entry> +	    </row> +	    <row> +	      <entry>32</entry> +	    </row> +	  </tbody> +	</tgroup> +      </table> +    </section> +    <section>        <title>Configuration Data</title>        <informaltable frame='none' label='' tocentry='0'>  	<tgroup cols='2' align='center' colsep='1' rowsep='1'> @@ -315,7 +625,7 @@        </informaltable>        <para>  	This packet provides all of the information available from the -	Venus SkyTraq GPS receiver—position, time, speed and precision +	GPS receiver—position, time, speed and precision  	estimates.         </para>        <para> @@ -604,62 +914,169 @@  	</tgroup>        </table>      </section> +    <section> +      <title>Companion Data Data</title> +      <informaltable frame='none' label='' tocentry='0'> +	<tgroup cols='2' align='center' colsep='1' rowsep='1'> +	  <colspec align='center' colwidth='*' colname='Offset'/> +	  <colspec align='left' colwidth='3*' colname='Description'/> +	  <thead> +	    <row> +	      <entry>Type</entry> +	      <entry>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>0x07</entry> +	      <entry>Companion Data Data</entry> +	    </row> +	  </tbody> +	</tgroup> +      </informaltable> +      <para> +	When a companion board is attached to TeleMega or TeleMetrum, +	it can provide telemetry data to be included in the +	downlink. The companion board can provide up to 12 16-bit data +	values. +      </para> +      <para> +	The companion board itself specifies the transmission rate. On +	the ground and during descent, that rate is limited to one +	packet per second. During ascent, that rate is limited to 10 +	packets per second. +      </para> +      <table frame='all'> +	<title>Companion Data Contents</title> +	<tgroup cols='4' align='center' colsep='1' rowsep='1'> +	  <colspec align='right' colwidth='*' colname='Offset'/> +	  <colspec align='center' colwidth='3*' colname='Data Type'/> +	  <colspec align='left' colwidth='3*' colname='Name'/> +	  <colspec align='left' colwidth='9*' colname='Description'/> +	  <thead> +	    <row> +	      <entry align='center'>Offset</entry> +	      <entry align='center'>Data Type</entry> +	      <entry align='center'>Name</entry> +	      <entry align='center'>Description</entry> +	    </row> +	  </thead> +	  <tbody> +	    <row> +	      <entry>5</entry><entry>uint8_t</entry><entry>board_id</entry> +	      <entry>Type of companion board attached</entry> +	    </row> +	    <row> +	      <entry>6</entry><entry>uint8_t</entry><entry>update_period</entry> +	      <entry>How often telemetry is sent, in 1/100ths of a second</entry> +	    </row> +	    <row> +	      <entry>7</entry><entry>uint8_t</entry><entry>channels</entry> +	      <entry>Number of data channels supplied</entry> +	    </row> +	    <row> +	      <entry>8</entry><entry>uint16_t[12]</entry><entry>companion_data</entry> +	      <entry>Up to 12 channels of 16-bit companion data</entry> +	    </row> +	    <row> +	      <entry>32</entry> +	    </row> +	  </tbody> +	</tgroup> +      </table> +    </section>    </section>    <section>      <title>Data Transmission</title>      <para> -      Altus Metrum devices use the Texas Instruments CC1111 -      microcontroller which includes an integrated sub-GHz digital -      transceiver. This transceiver is used to both transmit and -      receive the telemetry packets. This section discusses what -      modulation scheme is used and how this device is configured. +      Altus Metrum devices use Texas Instruments sub-GHz digital radio +      products. Ground stations use parts with HW FEC while some +      flight computers perform FEC in software. TeleGPS is +      transmit-only.      </para> +    <table> +      <title>Altus Metrum Radio Parts</title> +      <tgroup cols='3'> +	<colspec align="center" colwidth="*" colname="Part Number"/> +	<colspec align="center" colwidth="*" colname="Description"/> +	<colspec align="left" colwidth="*" colname="Used in"/> +	<thead> +	  <row> +	    <entry align="center">Part Number</entry> +	    <entry align="center">Description</entry> +	    <entry align="center">Used in</entry> +	  </row> +	</thead> +	<tbody> +	  <row> +	    <entry>CC1111</entry><entry>10mW transceiver with integrated SoC</entry> +	    <entry>TeleDongle v0.2, TeleBT v1.0, TeleMetrum v1.x, TeleMini</entry> +	  </row> +	  <row> +	    <entry>CC1120</entry><entry>35mW transceiver with SW FEC</entry> +	    <entry>TeleMetrum v2, TeleMega</entry> +	  </row> +	  <row> +	    <entry>CC1200</entry><entry>35mW transceiver with HW FEC</entry> +	    <entry>TeleDongle v3.0, TeleBT v3.0</entry> +	  </row> +	  <row> +	    <entry>CC115L</entry><entry>14mW transmitter with SW FEC</entry> +	    <entry>TeleGPS</entry> +	  </row> +	</tbody> +      </tgroup> +    </table>      <section>        <title>Modulation Scheme</title>        <para>  	Texas Instruments provides a tool for computing modulation  	parameters given a desired modulation format and basic bit -	rate. For AltOS, the basic bit rate was specified as 38 kBaud, -	resulting in the following signal parmeters: +	rate. + +	While we might like to use something with better low-signal +	performance like BPSK, the radios we use don't support that, +	but do support Gaussian frequency shift keying (GFSK). Regular +	frequency shift keying (FSK) encodes the signal by switching +	the carrier between two frequencies. The Gaussian version is +	essentially the same, but the shift between frequencies gently +	follows a gaussian curve, rather than switching +	immediately. This tames the bandwidth of the signal without +	affecting the ability to transmit data. + +	For AltOS, there are three available bit rates, 38.4kBaud, +	9.6kBaud and 2.4kBaud resulting in the following signal +	parmeters: +        </para>        <table>  	<title>Modulation Scheme</title>  	<tgroup cols='3'> -	  <colspec align="center" colwidth="*" colname="parameter"/> -	  <colspec align="center" colwidth="*" colname="value"/> -	  <colspec align="center" colwidth="*" colname="description"/> +	  <colspec align="center" colwidth="*" colname="rate"/> +	  <colspec align="center" colwidth="*" colname="deviation"/> +	  <colspec align="center" colwidth="*" colname="bandwidth"/>  	  <thead>  	    <row> -	      <entry align='center'>Parameter</entry> -	      <entry align='center'>Value</entry> -	      <entry align='center'>Description</entry> +	      <entry align='center'>Rate</entry> +	      <entry align='center'>Deviation</entry> +	      <entry align='center'>Receiver Bandwidth</entry>  	    </row>  	  </thead>  	  <tbody>  	    <row> -	      <entry>Modulation</entry> -	      <entry>GFSK</entry> -	      <entry>Gaussian Frequency Shift Keying</entry> -	    </row> -	    <row> -	      <entry>Deviation</entry> -	      <entry>20.507812 kHz</entry> -	      <entry>Frequency modulation</entry> -	    </row> -	    <row> -	      <entry>Data rate</entry> -	      <entry>38.360596 kBaud</entry> -	      <entry>Raw bit rate</entry> +	      <entry>38.4kBaud</entry> +	      <entry>20.5kHz</entry> +	      <entry>100kHz</entry>  	    </row>  	    <row> -	      <entry>RX Filter Bandwidth</entry> -	      <entry>93.75 kHz</entry> -	      <entry>Receiver Band pass filter bandwidth</entry> +	      <entry>9.6kBaud</entry> +	      <entry>5.125kHz</entry> +	      <entry>25kHz</entry>  	    </row>  	    <row> -	      <entry>IF Frequency</entry> -	      <entry>140.62 kHz</entry> -	      <entry>Receiver intermediate frequency</entry> +	      <entry>2.4kBaud</entry> +	      <entry>1.5kHz</entry> +	      <entry>5kHz</entry>  	    </row>  	  </tbody>  	</tgroup> @@ -668,10 +1085,12 @@      <section>        <title>Error Correction</title>        <para> -	The cc1111 provides forward error correction in hardware, -	which AltOS uses to improve reception of weak signals. The -	overall effect of this is to halve the available bandwidth for -	data from 38 kBaud to 19 kBaud. +	The cc1111 and cc1200 provide forward error correction in +	hardware; on the cc1120 and cc115l that's done in +	software. AltOS uses this to improve reception of weak +	signals. As it's a rate 1/2 encoding, each bit of data takes +	two bits when transmitted, so the effective data rate is half +	of the raw transmitted bit rate.        </para>        <table>  	<title>Error Correction</title>  | 
