# http://docbook.sourceforge.net/release/xsl/current/README
#
-RELNOTES=\
- release-notes-0.7.1.html \
- release-notes-0.8.html \
- release-notes-0.9.html \
- release-notes-0.9.2.html \
- release-notes-1.0.1.html \
- release-notes-1.1.html \
- release-notes-1.1.1.html \
- release-notes-1.2.html \
- release-notes-1.2.1.html \
- release-notes-1.3.html \
- release-notes-1.3.1.html \
- release-notes-1.3.2.html \
- 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.1.html
+RELNOTES_INC=\
+ release-notes-0.7.1.inc \
+ release-notes-0.8.inc \
+ release-notes-0.9.inc \
+ release-notes-0.9.2.inc \
+ release-notes-1.0.1.inc \
+ release-notes-1.1.inc \
+ release-notes-1.1.1.inc \
+ release-notes-1.2.inc \
+ release-notes-1.2.1.inc \
+ release-notes-1.3.inc \
+ release-notes-1.3.1.inc \
+ release-notes-1.3.2.inc \
+ release-notes-1.4.inc \
+ release-notes-1.4.1.inc \
+ release-notes-1.4.2.inc \
+ release-notes-1.5.inc \
+ release-notes-1.6.inc \
+ release-notes-1.6.1.inc
PICTURES=\
altosui.png \
telemini-v2-top.jpg
TXT_FILES=altusmetrum.txt
+
INC_FILES=\
dedication.inc \
intro.inc \
pyro-channels.inc \
flight-data-recording.inc \
handling.inc \
- specs.inc
+ specs.inc \
+ release-notes.inc \
+ $(RELNOTES_INC)
+
+RAW_FILES=$(TXT_FILES:.txt=.raw) $(INC_FILES:.inc=.raw)
+
+TELEGPS_INC_FILES=\
+ dedication.inc \
+ telegps-quick-start.inc \
+ telegps-using.inc \
+ telegps-system-operation.inc \
+ telegps-application.inc \
+ handling.inc \
+ telegps-specs.inc \
+ telegps-updating-firmware.inc \
+ telegps-release-notes.inc
+
+TELEGPS_TXT_FILES=\
+ telegps.txt
+
+TELEGPS_RAW_FILES=$(TELEGPS_TXT_FILES:.txt=.raw) $(TELEGPS_INC_FILES:.inc=.raw)
-RAW_FILES=$(TXT_FILES:.txt=.raw)
+MICROPEAK_TXT_FILES=\
+ micropeak.txt
-RAW_INC=$(INC_FILES:.inc=.raw)
+MICROPEAK_INC_FILES=
-AD_PDF=$(TXT_FILES:.txt=.pdf)
+MICROPEAK_RAW_FILES=$(MICROPEAK_TXT_FILES:.txt=.raw) $(MICROPEAK_INC_FILES:.inc=.raw)
+
+OUTLINE_TXT_FILES=\
+ easymega-outline.txt \
+ easymini-outline.txt \
+ telemega-outline.txt \
+ telemetrum-outline.txt \
+ telemini-outline.txt
+
+OUTLINE_RAW_FILES=$(OUTLINE_TXT_FILES:.txt=.raw)
+
+OUTLINE_PDF_FILES=$(OUTLINE_TXT_FILES:.txt=.pdf)
SVG=\
easymini.svg \
telemini.svg \
easymega.svg
-RELNOTES_XSL=$(RELNOTES:.html=.xsl)
-HTML=altusmetrum.html altos.html telemetry.html companion.html micropeak.html telegps.html $(RELNOTES)
-PDF=altusmetrum.pdf altos.pdf telemetry.pdf companion.pdf micropeak.pdf telegps.pdf \
- telemetrum-outline.pdf telemega-outline.pdf easymini-outline.pdf easymega-outline.pdf $(AD_PDF)
-HTMLSTYLE=/usr/share/xml/docbook/stylesheet/docbook-xsl/html/docbook.xsl
+RELNOTES_PDF=$(RELNOTES_INC:.inc=.pdf)
+RELNOTES_HTML=$(RELNOTES_INC:.inc=.html)
+
+HTML=altusmetrum.html altos.html telemetry.html companion.html micropeak.html telegps.html $(RELNOTES_HTML)
+
+PDF=altusmetrum.pdf $(RELNOTES_PDF) altos.pdf telemetry.pdf companion.pdf micropeak.pdf telegps.pdf \
+ $(OUTLINE_PDF_FILES)
+
FOSTYLE=xorg-fo.xsl
-FOPCFG=fop-cfg.xml
-TEMPLATES=titlepage.templates.xsl
-PDFSTYLE=
+
+TEMPLATES_TMPL=titlepage.templates.tmpl
+
+TEMPLATES_XSL=$(TEMPLATES_TMPL:.tmpl=.xsl)
+
IMAGES=$(PICTURES) $(SVG)
+
DOC=$(HTML) $(PDF) $(IMAGES)
-.SUFFIXES: .inc .txt .raw .pdf .html
+.SUFFIXES: .tmpl .xsl .inc .txt .raw .pdf .html
XSLTFLAGS=--stringparam section.autolabel 1 --xinclude
sed -e 's/@@VERSION@@/$(VERSION)/' -e 's/@@DATE@@/$(DATE)/' -e 's/^[ ]*//' -e 's/^\\//' $*.inc > $@
.raw.pdf:
- a2x --verbose -k -d book -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file am-fo.xsl --fop --fop-opts="-c fop.xconf" $*.raw
+ a2x --verbose -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file am-fo.xsl --fop --fop-opts="-c fop.xconf" $*.raw
.raw.html:
- a2x --verbose -k -d book -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --stylesheet=am.css $*.raw
+ a2x --verbose -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --stylesheet=am.css $*.raw
-.xsl.html:
- xsltproc $(XSLTFLAGS) -o $@ $(HTMLSTYLE) $*.xsl
+.tmpl.xsl:
+ xsltproc --output $@ /usr/share/xml/docbook/stylesheet/docbook-xsl/template/titlepage.xsl $*.tmpl
-.xsl.pdf:
- xmlto -p '-c $(FOPCFG)' --searchpath `pwd` -x $(FOSTYLE) --with-fop pdf $*.xsl
+all: $(HTML) $(PDF)
-.xml.xsl:
- xsltproc --output $@ /usr/share/xml/docbook/stylesheet/docbook-xsl/template/titlepage.xsl $*.xml
+$(HTML): $(PDF)
-all: $(HTML) $(PDF)
+altusmetrum.pdf altusmetrum.html: altusmetrum-docinfo.xml $(RAW_FILES) $(RAW_INC) $(IMAGES)
-altusmetrum.pdf: altusmetrum-docinfo.xml $(RAW_FILES) $(RAW_INC)
+telegps.html telegps.pdf: telegps-docinfo.xml $(TELEGPS_RAW_FILES) $(IMAGES)
+
+micropeak.pdf micropeak.html: micropeak-docinfo.xml $(MICROPEAK_RAW_FILES) $(IMAGES)
install: all
git push)
clean:
- rm -f $(HTML) $(PDF) $(TEMPLATES)
+ rm -f $(HTML) $(PDF) $(TEMPLATES_XSL)
-distclean:
+distclean: clean
rm -f $(HTML) $(PDF)
-altusmetrum.html: $(RELNOTES_XSL) $(IMAGES)
-altusmetrum.pdf: $(RELNOTES_XSL) $(IMAGES)
-
-telegps.html: $(RELNOTES_XSL) $(IMAGES)
-telegps.pdf: $(RELNOTES_XSL) $(IMAGES)
-
-$(PDF): $(FOSTYLE) $(TEMPLATES) $(FOPCFG)
-
-indent: altusmetrum.xsl
- xmlindent -i 2 < altusmetrum.xsl > altusmetrum.new
-
-$(FOPCFG): Makefile
- (echo '<fop version="1.0">'; echo ' <base>'"`pwd`"'</base>'; echo '</fop>') > $@
-
+$(PDF): $(FOSTYLE) $(TEMPLATES_XSL)
+$(HTML): $(TEMPLATES_XSL)
<author>
<firstname>Bdale</firstname>
<surname>Garbee</surname>
+ <email>bdale@gag.com</email>
</author>
<author>
<firstname>Keith</firstname>
<surname>Packard</surname>
+ <email>keithp@keithp.com</email>
</author>
<author>
<firstname>Bob</firstname>
Major release adding EasyMega support.
</revremark>
</revision>
+ <revision>
+ <revnumber>1.4.2</revnumber>
+ <date>17 August 2014</date>
+ <revremark>
+ Minor release fixing some Windows installation bugs.
+ </revremark>
+ </revision>
<revision>
<revnumber>1.4.1</revnumber>
<date>20 June 2014</date>
<date>24 November 2010</date>
<revremark>Updated for software version 0.8 </revremark>
</revision>
+ <revision>
+ <revnumber>0.7.1</revnumber>
+ <date>29 September 2010</date>
+ <revremark>Added AltosUI</revremark>
+ </revision>
</revhistory>
= The Altus Metrum System
-
:doctype: book
:numbered:
include::specs.raw[]
- [index]
- == Index
+ include::release-notes.raw[]
<xsl:include href="titlepage.templates.xsl"/>
<xsl:include href="footer.templates.xsl"/>
+<xsl:param name="ulink.show" select="0" />
+<xsl:param name="ulink.footnotes" select="1"/>
+
<xsl:param name="fop1.extensions" select="1" />
<xsl:param name="variablelist.as.blocks" select="1" />
--- /dev/null
+= EasyMega Outline and Hole Pattern
+:doctype: article
+
+ This image, when printed, provides a precise template for the
+ mounting holes in EasyMega. EasyMega has overall dimensions of
+ 1.250 x 2.250 inches, and the mounting holes are sized for use
+ with 4-40 or M3 screws.
+
+ image::easymega.svg[align="center"]
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
-<article>
- <title>EasyMega Outline and Hole Pattern</title>
- <para>
- This image, when printed, provides a precise template for the
- mounting holes in EasyMega. EasyMega has overall dimensions
- of 1.250 x 2.250 inches, and the mounting holes are sized for
- use with 4-40 or M3 screws.
- </para>
- <informalfigure>
- <mediaobject id="EasyMegaTemplate">
- <imageobject>
- <imagedata format="SVG" fileref="easymega.svg"
- scalefit="0" scale="100" align="center" />
- </imageobject>
- </mediaobject>
- </informalfigure>
-</article>
-
-<!-- LocalWords: Altusmetrum
--->
--- /dev/null
+= EasyMini Outline and Hole Pattern
+:doctype: article
+
+ This image, when printed, provides a precise template for the
+ mounting holes in EasyMini. EasyMini has overall dimensions
+ of 0.800 x 1.500 inches, and the mounting holes are sized for
+ use with 4-40 or M3 screws.
+
+ image::easymini.svg[align="center"]
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
-<article>
- <title>EasyMini Outline and Hole Pattern</title>
- <para>
- This image, when printed, provides a precise template for the
- mounting holes in EasyMini. EasyMini has overall dimensions
- of 0.800 x 1.500 inches, and the mounting holes are sized for
- use with 4-40 or M3 screws.
- </para>
- <informalfigure>
- <mediaobject id="EasyMiniTemplate">
- <imageobject>
- <imagedata format="SVG" fileref="easymini.svg"
- scalefit="0" scale="100" align="center" />
- </imageobject>
- </mediaobject>
- </informalfigure>
-</article>
-
-<!-- LocalWords: Altusmetrum
--->
will deliver impressive results. However, as with all electronic
devices, there are some precautions you must take.
+ [WARNING]
The Lithium Polymer rechargeable batteries have an
extraordinary power density. This is great because we can fly with
much less battery mass than if we used alkaline batteries or previous
--- /dev/null
+<subtitle>A recording altimeter for hobby rocketry</subtitle>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<copyright>
+ <year>2014</year>
+ <holder>Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="micropeak-dime.jpg" width="6in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
+<revhistory>
+ <revision>
+ <revnumber>1.3.2</revnumber>
+ <date>12 February 2014</date>
+ <revremark>
+ Add a "Download" button to the main window, which makes it
+ quicker to access the download function. Update the data
+ download documentation to reflect the new MicroPeak USB
+ adapter design. Monitor data during download to let you see
+ if the USB connection is working at all by showing the
+ characters received from the MicroPeak USB adapter.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.2</revnumber>
+ <date>20 January 2013</date>
+ <revremark>
+ Add documentation for the MicroPeak USB adapter board. Note
+ the switch to a Kalman filter for peak altitude
+ determination.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.1</revnumber>
+ <date>12 December 2012</date>
+ <revremark>
+ Add comments about EEPROM storage format and programming jig.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.0</revnumber>
+ <date>18 November 2012</date>
+ <revremark>
+ Updates for version 1.0 release.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>0.1</revnumber>
+ <date>29 October 2012</date>
+ <revremark>
+ Initial release with preliminary hardware.
+ </revremark>
+ </revision>
+</revhistory>
--- /dev/null
+= MicroPeak Owner's Manual
+:doctype: book
+:numbered:
+
+[dedication]
+== Acknowledgements
+
+ Thanks to John Lyngdal for suggesting that we build something
+ like this.
+
+ Have fun using these products, and we hope to meet all of you
+ out on the rocket flight line somewhere.
+
+ [verse]
+ Bdale Garbee, KB0G
+ NAR #87103, TRA #12201
+
+ [verse]
+ Keith Packard, KD7SQG
+ NAR #88757, TRA #12200
+
+== Using MicroPeak
+
+ MicroPeak is designed to be easy to use. Requiring no external
+ components, flying takes just a few steps
+
+ * Install the battery. Fit a CR1025 battery into the plastic
+ carrier. The positive (\+) terminal should be towards the more
+ open side of the carrier. Slip the carrier into the battery
+ holder with the positive (+) terminal facing away from the
+ circuit board.
+
+ .MicroPeak and Battery
+ image::micropeak-back.jpg[width="4.5in"]
+
+ * Install MicroPeak in your rocket. This can be as simple as
+ preparing a soft cushion of wadding inside a vented model payload
+ bay. Wherever you mount it, make sure you protect the
+ barometric sensor from corrosive ejection gasses as those
+ will damage the sensor, and shield it from light as that can
+ cause incorrect sensor readings.
+
+ * Turn MicroPeak on. Slide the switch so that the actuator
+ covers the '1' printed on the board. MicroPeak will report
+ the maximum height of the last flight in decimeters using a
+ sequence of flashes on the LED. A sequence of short flashes
+ indicates one digit. A single long flash indicates zero. The
+ height is reported in decimeters, so the last digit will be
+ tenths of a meter. For example, if MicroPeak reports 5 4 4
+ 3, then the maximum height of the last flight was 544.3m, or
+ 1786 feet.
+
+ * Finish preparing the rocket for flight. After the
+ previous flight data have been reported, MicroPeak waits for
+ one minute before starting to check for launch. This gives
+ you time to finish assembling the rocket. As those
+ activities might cause pressure changes inside the airframe,
+ MicroPeak might accidentally detect boost. If you need to do
+ anything to the airframe after the one minute window passes,
+ make sure to be careful not to disturb the altimeter. The
+ LED will remain dark during the one minute delay, but after
+ that, it will start blinking once every 3 seconds.
+
+ * Fly the rocket. Once the rocket passes about 30m in height
+ (100 feet), the micro-controller will record the ground
+ pressure and track the pressure seen during the flight. In
+ this mode, the LED flickers rapidly. When the rocket lands,
+ and the pressure stabilizes, the micro-controller will record
+ the minimum pressure pressure experienced during the flight,
+ compute the height represented by the difference in air
+ pressure and blink that value out on the LED. After that,
+ MicroPeak powers down to conserve battery power.
+
+ * Recover the data. Turn MicroPeak off and then back on. MicroPeak
+ will blink out the maximum height for the last flight. Turn
+ MicroPeak back off to conserve battery power.
+
+== The MicroPeak USB adapter
+
+ .MicroPeak USB Adapter
+ image::MicroPeakUSB-2.0.jpg[width="4.5in"]
+
+ MicroPeak stores barometric pressure information for the first
+ 48 seconds of the flight in on-board non-volatile memory. The
+ contents of this memory can be downloaded to a computer using
+ the MicroPeak USB adapter.
+
+ === Installing the MicroPeak software
+
+ The MicroPeak application runs on Linux, Mac OS X and
+ Windows. You can download the latest version from
+ http://altusmetrum.org/MicroPeak
+
+ On Mac OS X and Windows, the FTDI USB device driver
+ needs to be installed. A compatible version of this
+ driver is included with the MicroPeak application, but
+ you may want to download a newer version from
+ http://www.ftdichip.com/FTDrivers.htm
+
+ === Downloading Micro Peak data
+
+ * Plug the MicroPeak USB adapter in to your computer.
+
+ * Start the MicroPeak application.
+
+ image::micropeak-nofont.svg[width="0.5in"]
+
+ * Click on the Download button at the top of the
+ window.
+
+ .MicroPeak Application
+ image::micropeak-app.png[width="4.5in"]
+
+ * Select from the listed devices. There will probably
+ be only one.
+
+ .MicroPeak Device Dialog
+ image::micropeak-device-dialog.png[width="2.3in"]
+
+ * The application will now wait until it receives
+ valid data from the MicroPeak USB adapter.
+
+ .MicroPeak Download Dialog
+ image::micropeak-download.png[width="2in"]
+
+ * The MicroPeak USB adapter has a small
+ phototransistor under the hole in the center of the
+ box. Locate this, turn on the MicroPeak and place
+ the orange LED on the MicroPeak directly inside the
+ hole, resting the MicroPeak itself on the box. You
+ should see the blue LED on the MicroPeak USB adapter
+ blinking in time with the orange LED on the
+ MicroPeak board itself.
+
+ .MicroPeak Downloading
+ image::MicroPeakUSB-2.0-inuse.jpg[width="4.5in"]
+
+ * After the maximum flight height is reported,
+ MicroPeak will pause for a few seconds, blink the
+ LED four times rapidly and then send the data in one
+ long blur on the LED. The MicroPeak application
+ should receive the data. When it does, it will
+ present the data in a graph and offer to save the
+ data to a file. If not, you can power cycle the
+ MicroPeak board and try again.
+
+ .MicroPeak Save Dialog
+ image::micropeak-save-dialog.png[width="2.3in"]
+
+ * Once the data are saved, a graph will be displayed
+ with height, speed and acceleration values computed
+ from the recorded barometric pressure data. See the
+ next section for more details on that.
+
+ === Analyzing MicroPeak Data
+
+ The MicroPeak application can present flight data in
+ the form of a graph, a collection of computed
+ statistics or in tabular form.
+
+ MicroPeak collects raw barometric pressure data which
+ is then used to compute the remaining data. Altitude
+ is computed through a standard atmospheric
+ model. Absolute error in this data will be affected by
+ local atmospheric conditions. Fortunately, these
+ errors tend to mostly cancel out, so the error in the
+ height computation is much smaller than the error in
+ altitude would be.
+
+ Speed and acceleration are computed by first smoothing
+ the height data with a Gaussian window averaging
+ filter. For speed data, this average uses seven
+ samples. For acceleration data, eleven samples are
+ used. These were chosen to provide reasonably smooth
+ speed and acceleration data, which would otherwise be
+ swamped with noise.
+
+ The File menu has operations to open existing flight
+ logs, Download new data from MicroPeak, Save a copy of
+ the flight log to a new file, Export the tabular data
+ (as seen in the Raw Data tab) to a file, change the
+ application Preferences, Close the current window or
+ close all windows and Exit the application.
+
+ ==== MicroPeak Graphs
+
+ .MicroPeak Graph
+ image::micropeak-graph.png[width="4.5in"]
+
+ Under the Graph tab, the height, speed and acceleration values
+ are displayed together. You can zoom in on the graph by
+ clicking and dragging to sweep out an area of
+ interest. Right-click on the plot to bring up a menu that will
+ let you save, copy or print the graph.
+
+ ==== MicroPeak Flight Statistics
+
+ .MicroPeak Flight Statistics
+ image::micropeak-statistics.png[width="4.5in"]
+
+ The Statistics tab presents overall data from
+ the flight. Note that the Maximum height value
+ is taken from the minumum pressure captured in
+ flight, and may be different from the apparant
+ apogee value as the on-board data are sampled
+ twice as fast as the recorded values, or
+ because the true apogee occurred after the
+ on-board memory was full. Each value is
+ presented in several units as appropriate.
+
+ ==== Raw Flight Data
+
+ .MicroPeak Raw Flight Data
+ image::micropeak-raw-data.png[width="4.5in"]
+
+ A table consisting of the both the raw barometric pressure
+ data and values computed from that for each recorded time.
+
+ ==== Configuring the Graph
+
+ .MicroPeak Graph Configuration
+ image::micropeak-graph-configure.png[width="4.5in"]
+
+ This selects which graph elements to show, and lets you
+ switch between metric and imperial units
+
+ === Setting MicroPeak Preferences
+
+ .MicroPeak Preferences
+ image::micropeak-preferences.png[width="1.8in"]
+
+ The MicroPeak application has a few user settings which are
+ configured through the Preferences dialog, which can be
+ accessed from the File menu.
+
+ Log Directory::
+
+ The Log Directory is where flight data will be
+ saved to and loaded from by default. Of
+ course, you can always navigate to other
+ directories in the file chooser windows, this
+ setting is just the starting point.
+
+ Imperial Units::
+
+ If you prefer to see your graph data in feet
+ and miles per hour instead of meters and
+ meters per second, you can select Imperial
+ Units.
+
+ Serial Debug::
+
+ To see what data is actually arriving over the
+ serial port, start the MicroPeak application
+ from a command prompt and select the Serial
+ Debug option. This can be useful in debugging
+ serial communication problems, but most people
+ need never choose this.
+
+ Font Size::
+
+ You can adjust the size of the text in the
+ Statistics tab by changing the Font size
+ preference. There are three settings, with
+ luck one will both fit on your screen and
+ provide readable values.
+
+ Look & Feel::
+
+ The Look & feel menu shows a list of available
+ application appearance choices. By default,
+ the MicroPeak application tries to blend in
+ with other applications, but you may choose
+ some other appearance if you like.
+
+ Note that MicroPeak shares a subset of the
+ AltosUI preferences, so if you use both of
+ these applications, change in one application
+ will affect the other.
+
+[appendix]
+== Handling Precautions
+
+ All Altus Metrum products are sophisticated electronic
+ devices. When handled gently and properly installed in an
+ air-frame, they will deliver impressive results. However, as
+ with all electronic devices, there are some precautions you
+ must take.
+
+ [WARNING]
+
+ The CR1025 Lithium batteries have an extraordinary power
+ density. This is great because we can fly with much less
+ battery mass... but if they are punctured or their contacts
+ are allowed to short, they can and will release their energy
+ very rapidly! Thus we recommend that you take some care when
+ handling MicroPeak to keep conductive material from coming in
+ contact with the exposed metal elements.
+
+ The barometric sensor used in MicroPeak is sensitive to
+ sunlight. Please consider this when designing an
+ installation. Many model rockets with payload bays use clear
+ plastic for the payload bay. Replacing these with an opaque
+ cardboard tube, painting them, or wrapping them with a layer
+ of masking tape are all reasonable approaches to keep the
+ sensor out of direct sunlight.
+
+ The barometric sensor sampling ports must be able to
+ "breathe", both by not being covered by foam or tape or other
+ materials that might directly block the hole on the top of the
+ sensor, and also by having a suitable static vent to outside
+ air.
+
+ As with all other rocketry electronics, Altus Metrum
+ altimeters must be protected from exposure to corrosive motor
+ exhaust and ejection charge gasses.
+
+[appendix]
+== Technical Information
+
+ === Barometric Sensor
+
+ MicroPeak uses the Measurement Specialties MS5607
+ sensor. This has a range of 120kPa to 1kPa with an
+ absolute accuracy of 150Pa and a resolution of 2.4Pa.
+
+ The pressure range corresponds roughly to an altitude
+ range of -1500m (-4900 feet) to 31000m (102000 feet),
+ while the resolution is approximately 20cm (8 inches)
+ near sea level and 60cm (24in) at 10000m (33000 feet).
+
+ Ground pressure is computed from an average of 16
+ samples, taken while the altimeter is at rest. The
+ flight pressure used to report maximum height is
+ computed from a Kalman filter designed to smooth out
+ any minor noise in the sensor values. The flight
+ pressure recorded to non-volatile storage is
+ unfiltered, coming directly from the pressure sensor.
+
+ === Micro-controller
+
+ MicroPeak uses an Atmel ATtiny85
+ micro-controller. This tiny CPU contains 8kB of flash
+ for the application, 512B of RAM for temporary data
+ storage and 512B of EEPROM for non-volatile storage of
+ previous flight data.
+
+ The ATtiny85 has a low-power mode which turns off all
+ of the clocks and powers down most of the internal
+ components. In this mode, the chip consumes only .1μA
+ of power. MicroPeak uses this mode once the flight has
+ ended to preserve battery power.
+
+ === Lithium Battery
+
+ The CR1025 battery used by MicroPeak holds 30mAh of
+ power, which is sufficient to run for over 40
+ hours. Because MicroPeak powers down on landing, run
+ time includes only time sitting on the launch pad or
+ during flight.
+
+ The large positive terminal (+) is usually marked,
+ while the smaller negative terminal is not. Make sure
+ you install the battery with the positive terminal
+ facing away from the circuit board where it will be in
+ contact with the metal battery holder. A small pad on
+ the circuit board makes contact with the negative
+ battery terminal.
+
+ Shipping restrictions may prevent us from including a
+ CR1025 battery with MicroPeak. If so, many stores
+ carry CR1025 batteries as they are commonly used in
+ small electronic devices such as flash lights.
+
+ === Atmospheric Model
+
+ MicroPeak contains a fixed atmospheric model which is
+ used to convert barometric pressure into altitude. The
+ model was converted into a 469-element piece-wise
+ linear approximation which is then used to compute the
+ altitude of the ground and apogee. The difference
+ between these represents the maximum height of the
+ flight.
+
+ The model assumes a particular set of atmospheric
+ conditions, which, while a reasonable average, cannot
+ represent the changing nature of the real
+ atmosphere. Fortunately, for flights reasonably close
+ to the ground, the effect of this global inaccuracy
+ are largely canceled out when the computed ground
+ altitude is subtracted from the computed apogee
+ altitude, so the resulting height is more accurate
+ than either the ground or apogee altitudes.
+
+ Because the raw pressure data is recorded to
+ non-volatile storage, you can use that, along with a
+ more sophisticated atmospheric model, to compute your
+ own altitude values.
+
+ === Mechanical Considerations
+
+ MicroPeak is designed to be rugged enough for typical
+ rocketry applications. It contains two moving parts,
+ the battery holder and the power switch, which were
+ selected for their ruggedness.
+
+ The MicroPeak battery holder is designed to withstand
+ impact up to 150g without breaking contact (or, worse
+ yet, causing the battery to fall out). That means it
+ should stand up to almost any launch you care to try,
+ and should withstand fairly rough landings.
+
+ The power switch is designed to withstand up to 50g
+ forces in any direction. Because it is a sliding
+ switch, orienting the switch perpendicular to the
+ direction of rocket travel will serve to further
+ protect the switch from launch forces.
+
+ === MicroPeak Programming Interface
+
+ MicroPeak exposes a standard 6-pin AVR programming
+ interface, but not using the usual 2x3 array of pins
+ on 0.1" centers. Instead, there is a single row of
+ tiny 0.60mm × 0.85mm pads on 1.20mm centers exposed
+ near the edge of the circuit board. We couldn't find
+ any connector that was small enough to include on the
+ circuit board.
+
+ In lieu of an actual connector, the easiest way to
+ connect to the bare pads is through a set of Pogo
+ pins. These spring-loaded contacts are designed to
+ connect in precisely this way. We've designed a
+ programming jig, the MicroPeak Pogo Pin board which
+ provides a standard AVR interface on one end and a
+ recessed slot for MicroPeak to align the board with
+ the Pogo Pins.
+
+ The MicroPeak Pogo Pin board is not a complete AVR
+ programmer, it is an interface board that provides a
+ 3.3V regulated power supply to run the MicroPeak via
+ USB and a standard 6-pin AVR programming interface
+ with the usual 2x3 grid of pins on 0.1" centers. This
+ can be connected to any AVR programming dongle.
+
+ The AVR programming interface cannot run faster than ¼
+ of the AVR CPU clock frequency. Because MicroPeak runs
+ at 250kHz to save power, you must configure your AVR
+ programming system to clock the AVR programming
+ interface at no faster than 62.5kHz, or a clock period
+ of 32µS.
+
+[appendix]
+== On-board data storage
+
+ The ATtiny85 has 512 bytes of non-volatile storage, separate
+ from the code storage memory. The MicroPeak firmware uses this
+ to store information about the last completed
+ flight. Barometric measurements from the ground before launch
+ and at apogee are stored, and used at power-on to compute the
+ height of the last flight.
+
+ In addition to the data used to present the height of the last
+ flight, MicroPeak also stores barometric information sampled
+ at regular intervals during the flight. This is the
+ information captured with the MicroPeak USB adapter. It can
+ also be read from MicroPeak through any AVR programming tool.
+
+
+ .MicroPeak EEPROM Data Storage
+ [options="border",cols="2,1,7"]
+ |====
+ |Address |Size (bytes) |Description
+ |0x000 |4 |Average ground pressure (Pa)
+ |0x004 |4 |Minimum flight pressure (Pa)
+ |0x008 |2 |Number of in-flight samples
+ |0x00a … 0x1fe |2 |Instantaneous flight pressure (Pa) low 16 bits
+ |====
+
+ All EEPROM data are stored least-significant byte first. The
+ instantaneous flight pressure data are stored without the
+ upper 16 bits of data. The upper bits can be reconstructed
+ from the previous sample, assuming that pressure doesn't
+ change by more more than 32kPa in a single sample
+ interval. Note that this pressure data is *not* filtered in
+ any way, while both the recorded ground and apogee pressure
+ values are, so you shouldn't expect the minimum instantaneous
+ pressure value to match the recorded minimum pressure value
+ exactly.
+
+ MicroPeak samples pressure every 96ms, but stores only every
+ other sample in the EEPROM. This provides for 251 pressure
+ samples at 192ms intervals, or 48.192s of storage. The clock
+ used for these samples is a factory calibrated RC circuit
+ built into the ATtiny85 and is accurate only to within ±10% at
+ 25°C. So, you can count on the pressure data being accurate,
+ but speed or acceleration data computed from this will be
+ limited by the accuracy of this clock.
+++ /dev/null
-<?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">
-<book>
- <title>MicroPeak Owner's Manual</title>
- <subtitle>A recording altimeter for hobby rocketry</subtitle>
- <bookinfo>
- <author>
- <firstname>Keith</firstname>
- <surname>Packard</surname>
- </author>
- <copyright>
- <year>2014</year>
- <holder>Bdale Garbee and Keith Packard</holder>
- </copyright>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-dime.jpg" width="6in"/>
- </imageobject>
- </mediaobject>
- <legalnotice>
- <para>
- This document is released under the terms of the
- <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
- Creative Commons ShareAlike 3.0
- </ulink>
- license.
- </para>
- </legalnotice>
- <revhistory>
- <revision>
- <revnumber>0.1</revnumber>
- <date>29 October 2012</date>
- <revremark>
- Initial release with preliminary hardware.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.0</revnumber>
- <date>18 November 2012</date>
- <revremark>
- Updates for version 1.0 release.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.1</revnumber>
- <date>12 December 2012</date>
- <revremark>
- Add comments about EEPROM storage format and programming jig.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.2</revnumber>
- <date>20 January 2013</date>
- <revremark>
- Add documentation for the MicroPeak USB adapter board. Note
- the switch to a Kalman filter for peak altitude
- determination.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.3.2</revnumber>
- <date>12 February 2014</date>
- <revremark>
- Add a "Download" button to the main window, which makes it
- quicker to access the download function. Update the data
- download documentation to reflect the new MicroPeak USB
- adapter design. Monitor data during download to let you see
- if the USB connection is working at all by showing the
- characters received from the MicroPeak USB adapter.
- </revremark>
- </revision>
- </revhistory>
- </bookinfo>
- <dedication>
- <title>Acknowledgements</title>
- <para>
- Thanks to John Lyngdal for suggesting that we build something like this.
- </para>
- <para>
- Have fun using these products, and we hope to meet all of you
- out on the rocket flight line somewhere.
- <literallayout>
-Bdale Garbee, KB0G
-NAR #87103, TRA #12201
-
-Keith Packard, KD7SQG
-NAR #88757, TRA #12200
- </literallayout>
- </para>
- </dedication>
- <chapter>
- <title>Quick Start Guide</title>
- <para>
- MicroPeak is designed to be easy to use. Requiring no external
- components, flying takes just a few steps
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Install the battery. Fit a CR1025 battery into the plastic
- carrier. The positive (+) terminal should be towards the more
- open side of the carrier. Slip the carrier into the battery
- holder with the positive (+) terminal facing away from the
- circuit board.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-back.jpg" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </listitem>
- <listitem>
- <para>
- Install MicroPeak in your rocket. This can be as simple as
- preparing a soft cushion of wadding inside a vented model payload
- bay. Wherever you mount it, make sure you protect the
- barometric sensor from corrosive ejection gasses as those
- will damage the sensor, and shield it from light as that can
- cause incorrect sensor readings.
- </para>
- </listitem>
- <listitem>
- <para>
- Turn MicroPeak on. Slide the switch so that the actuator
- covers the '1' printed on the board. MicroPeak will report
- the maximum height of the last flight in decimeters using a
- sequence of flashes on the LED. A sequence of short flashes
- indicates one digit. A single long flash indicates zero. The
- height is reported in decimeters, so the last digit will be
- tenths of a meter. For example, if MicroPeak reports 5 4 4
- 3, then the maximum height of the last flight was 544.3m, or
- 1786 feet.
- </para>
- </listitem>
- <listitem>
- <para>
- Finish preparing the rocket for flight. After the
- previous flight data have been reported, MicroPeak waits for
- one minute before starting to check for launch. This gives
- you time to finish assembling the rocket. As those
- activities might cause pressure changes inside the airframe,
- MicroPeak might accidentally detect boost. If you need to do
- anything to the airframe after the one minute window passes,
- make sure to be careful not to disturb the altimeter. The
- LED will remain dark during the one minute delay, but after
- that, it will start blinking once every 3 seconds.
- </para>
- </listitem>
- <listitem>
- <para>
- Fly the rocket. Once the rocket passes about 30m in height
- (100 feet), the micro-controller will record the ground
- pressure and track the pressure seen during the flight. In
- this mode, the LED flickers rapidly. When the rocket lands,
- and the pressure stabilizes, the micro-controller will record
- the minimum pressure pressure experienced during the flight,
- compute the height represented by the difference in air
- pressure and blink that value out on the LED. After that,
- MicroPeak powers down to conserve battery power.
- </para>
- </listitem>
- <listitem>
- <para>
- Recover the data. Turn MicroPeak off and then back on. MicroPeak
- will blink out the maximum height for the last flight. Turn
- MicroPeak back off to conserve battery power.
- </para>
- </listitem>
- </itemizedlist>
- </chapter>
- <chapter>
- <title>Handling Precautions</title>
- <para>
- All Altus Metrum products are sophisticated electronic devices.
- When handled gently and properly installed in an air-frame, they
- will deliver impressive results. However, as with all electronic
- devices, there are some precautions you must take.
- </para>
- <para>
- The CR1025 Lithium batteries have an
- extraordinary power density. This is great because we can fly with
- much less battery mass... but if they are punctured
- or their contacts are allowed to short, they can and will release their
- energy very rapidly!
- Thus we recommend that you take some care when handling MicroPeak
- to keep conductive material from coming in contact with the exposed metal elements.
- </para>
- <para>
- The barometric sensor used in MicroPeak is sensitive to
- sunlight. Please consider this when designing an
- installation. Many model rockets with payload bays use clear
- plastic for the payload bay. Replacing these with an opaque
- cardboard tube, painting them, or wrapping them with a layer of
- masking tape are all reasonable approaches to keep the sensor
- out of direct sunlight.
- </para>
- <para>
- The barometric sensor sampling ports must be able to "breathe",
- both by not being covered by foam or tape or other materials that might
- directly block the hole on the top of the sensor, and also by having a
- suitable static vent to outside air.
- </para>
- <para>
- As with all other rocketry electronics, Altus Metrum altimeters must
- be protected from exposure to corrosive motor exhaust and ejection
- charge gasses.
- </para>
- </chapter>
- <chapter>
- <title>The MicroPeak USB adapter</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="MicroPeakUSB-2.0.jpg" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- MicroPeak stores barometric pressure information for the first
- 48 seconds of the flight in on-board non-volatile memory. The
- contents of this memory can be downloaded to a computer using
- the MicroPeak USB adapter.
- </para>
- <section>
- <title>Installing the MicroPeak software</title>
- <para>
- The MicroPeak application runs on Linux, Mac OS X and
- Windows. You can download the latest version from
- <ulink url="http://altusmetrum.org/AltOS"/>.
- </para>
- <para>
- On Mac OS X and Windows, the FTDI USB device driver needs to
- be installed. A compatible version of this driver is included
- with the MicroPeak application, but you may want to download a
- newer version from <ulink
- url="http://www.ftdichip.com/FTDrivers.htm"/>.
- </para>
- </section>
- <section>
- <title>Downloading Micro Peak data</title>
- <itemizedlist>
- <listitem>
- <para>
- Plug the MicroPeak USB adapter in to your computer.
- </para>
- </listitem>
- <listitem>
- <?dbfo keep-together="always"?>
- <para>
- Start the MicroPeak application.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-nofont.svg" width="0.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </listitem>
- <listitem>
- <?dbfo keep-together="always"?>
- <para>
- Click on the Download button at the top of the window.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-app.png" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </listitem>
- <listitem>
- <?dbfo keep-together="always"?>
- <para>
- Select from the listed devices. There will probably be
- only one.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-device-dialog.png" width="2.3in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </listitem>
- <listitem>
- <para>
- The application will now wait until it receives valid data
- from the MicroPeak USB adapter.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-download.png" width="2in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- The MicroPeak USB adapter has a small phototransistor
- under the hole in the center of the box.
- Locate this, turn on the MicroPeak and place the orange LED on the MicroPeak
- directly inside the hole, resting the MicroPeak itself on
- the box. You should see the blue LED on the MicroPeak USB
- adapter blinking in time with the orange LED on the
- MicroPeak board itself.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="MicroPeakUSB-2.0-inuse.jpg" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </listitem>
- <listitem>
- <?dbfo keep-together="always"?>
- <para>
- After the maximum flight height is reported, MicroPeak will
- pause for a few seconds, blink the LED four times rapidly
- and then send the data in one long blur on the LED. The
- MicroPeak application should receive the data. When it does,
- it will present the data in a graph and offer to save the
- data to a file. If not, you can power cycle the MicroPeak
- board and try again.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-save-dialog.png" width="2.3in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </listitem>
- <listitem>
- <?dbfo keep-together="always"?>
- <para>
- Once the data are saved, a graph will be displayed with
- height, speed and acceleration values computed from the
- recorded barometric pressure data. See the next section
- for more details on that.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Analyzing MicroPeak Data</title>
- <para>
- The MicroPeak application can present flight data in the form
- of a graph, a collection of computed statistics or in tabular
- form.
- </para>
- <para>
- MicroPeak collects raw barometric pressure data which is
- then used to compute the remaining data. Altitude is computed
- through a standard atmospheric model. Absolute error in this
- data will be affected by local atmospheric
- conditions. Fortunately, these errors tend to mostly cancel
- out, so the error in the height computation is much smaller
- than the error in altitude would be.
- </para>
- <para>
- Speed and acceleration are computed by first smoothing the
- height data with a Gaussian window averaging filter. For speed
- data, this average uses seven samples. For acceleration data,
- eleven samples are used. These were chosen to provide
- reasonably smooth speed and acceleration data, which would
- otherwise be swamped with noise.
- </para>
- <para>
- The File menu has operations to open existing flight logs,
- Download new data from MicroPeak, Save a copy of the flight
- log to a new file, Export the tabular data (as seen in the Raw
- Data tab) to a file, change the application Preferences, Close
- the current window or close all windows and Exit the
- application.
- </para>
- <section>
- <title>MicroPeak Graphs</title>
- <para>
- Under the Graph tab, the height, speed and acceleration values
- are displayed together. You can zoom in on the graph by
- clicking and dragging to sweep out an area of
- interest. Right-click on the plot to bring up a menu that will
- let you save, copy or print the graph.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-graph.png" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>MicroPeak Flight Statistics</title>
- <para>
- The Statistics tab presents overall data from the flight. Note
- that the Maximum height value is taken from the minumum
- pressure captured in flight, and may be different from the
- apparant apogee value as the on-board data are sampled twice
- as fast as the recorded values, or because the true apogee
- occurred after the on-board memory was full. Each value is
- presented in several units as appropriate.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-statistics.png" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Raw Data</title>
- <para>
- A table consisting of the both the raw barometric pressure
- data and values computed from that for each recorded time.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-raw-data.png" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Configuring the Graph</title>
- <para>
- This selects which graph elements to show, and lets you
- switch between metric and imperial units
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-graph-configure.png" width="4.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- </section>
- <section>
- <title>Setting MicroPeak Preferences</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="micropeak-preferences.png" width="1.8in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- The MicroPeak application has a few user settings which are
- configured through the Preferences dialog, which can be
- accessed from the File menu.
- <itemizedlist>
- <listitem>
- <para>
- The Log Directory is where flight data will be saved to
- and loaded from by default. Of course, you can always
- navigate to other directories in the file chooser windows,
- this setting is just the starting point.
- </para>
- </listitem>
- <listitem>
- <para>
- If you prefer to see your graph data in feet and
- miles per hour instead of meters and meters per second,
- you can select Imperial Units.
- </para>
- </listitem>
- <listitem>
- <para>
- To see what data is actually arriving over the serial
- port, start the MicroPeak application from a command
- prompt and select the Serial Debug option. This can be
- useful in debugging serial communication problems, but
- most people need never choose this.
- </para>
- </listitem>
- <listitem>
- <para>
- You can adjust the size of the text in the Statistics tab
- by changing the Font size preference. There are three
- settings, with luck one will both fit on your screen and
- provide readable values.
- </para>
- </listitem>
- <listitem>
- <para>
- The Look & feel menu shows a list of available
- application appearance choices. By default, the MicroPeak
- application tries to blend in with other applications, but
- you may choose some other appearance if you like.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Note that MicroPeak shares a subset of the AltosUI
- preferences, so if you use both of these applications, change
- in one application will affect the other.
- </para>
- </section>
- </chapter>
- <chapter>
- <title>Technical Information</title>
- <section>
- <title>Barometric Sensor</title>
- <para>
- MicroPeak uses the Measurement Specialties MS5607 sensor. This
- has a range of 120kPa to 1kPa with an absolute accuracy of
- 150Pa and a resolution of 2.4Pa.
- </para>
- <para>
- The pressure range corresponds roughly to an altitude range of
- -1500m (-4900 feet) to 31000m (102000 feet), while the
- resolution is approximately 20cm (8 inches) near sea level and
- 60cm (24in) at 10000m (33000 feet).
- </para>
- <para>
- Ground pressure is computed from an average of 16 samples,
- taken while the altimeter is at rest. The flight pressure used to
- report maximum height is computed from a Kalman filter
- designed to smooth out any minor noise in the sensor
- values. The flight pressure recorded to non-volatile storage
- is unfiltered, coming directly from the pressure sensor.
- </para>
- </section>
- <section>
- <title>Micro-controller</title>
- <para>
- MicroPeak uses an Atmel ATtiny85 micro-controller. This tiny
- CPU contains 8kB of flash for the application, 512B of RAM for
- temporary data storage and 512B of EEPROM for non-volatile
- storage of previous flight data.
- </para>
- <para>
- The ATtiny85 has a low-power mode which turns off all of the
- clocks and powers down most of the internal components. In
- this mode, the chip consumes only .1μA of power. MicroPeak
- uses this mode once the flight has ended to preserve battery
- power.
- </para>
- </section>
- <section>
- <title>Lithium Battery</title>
- <para>
- The CR1025 battery used by MicroPeak holds 30mAh of power,
- which is sufficient to run for over 40 hours. Because
- MicroPeak powers down on landing, run time includes only time
- sitting on the launch pad or during flight.
- </para>
- <para>
- The large positive terminal (+) is usually marked, while the
- smaller negative terminal is not. Make sure you install the
- battery with the positive terminal facing away from the
- circuit board where it will be in contact with the metal
- battery holder. A small pad on the circuit board makes contact
- with the negative battery terminal.
- </para>
- <para>
- Shipping restrictions may prevent us from including a CR1025
- battery with MicroPeak. If so, many stores carry CR1025
- batteries as they are commonly used in small electronic
- devices such as flash lights.
- </para>
- </section>
- <section>
- <title>Atmospheric Model</title>
- <para>
- MicroPeak contains a fixed atmospheric model which is used to
- convert barometric pressure into altitude. The model was
- converted into a 469-element piece-wise linear approximation
- which is then used to compute the altitude of the ground and
- apogee. The difference between these represents the maximum
- height of the flight.
- </para>
- <para>
- The model assumes a particular set of atmospheric conditions,
- which, while a reasonable average, cannot represent the changing
- nature of the real atmosphere. Fortunately, for flights
- reasonably close to the ground, the effect of this global
- inaccuracy are largely canceled out when the computed ground
- altitude is subtracted from the computed apogee altitude, so
- the resulting height is more accurate than either the ground
- or apogee altitudes.
- </para>
- <para>
- Because the raw pressure data is recorded to non-volatile
- storage, you can use that, along with a more sophisticated
- atmospheric model, to compute your own altitude values.
- </para>
- </section>
- <section>
- <title>Mechanical Considerations</title>
- <para>
- MicroPeak is designed to be rugged enough for typical rocketry
- applications. It contains two moving parts, the battery holder
- and the power switch, which were selected for their
- ruggedness.
- </para>
- <para>
- The MicroPeak battery holder is designed to withstand impact
- up to 150g without breaking contact (or, worse yet, causing
- the battery to fall out). That means it should stand up to
- almost any launch you care to try, and should withstand fairly
- rough landings.
- </para>
- <para>
- The power switch is designed to withstand up to 50g forces in
- any direction. Because it is a sliding switch, orienting the
- switch perpendicular to the direction of rocket travel will
- serve to further protect the switch from launch forces.
- </para>
- </section>
- <section>
- <title>On-board data storage</title>
- <para>
- The ATtiny85 has 512 bytes of non-volatile storage, separate
- from the code storage memory. The MicroPeak firmware uses this
- to store information about the last completed
- flight. Barometric measurements from the ground before launch
- and at apogee are stored, and used at power-on to compute the
- height of the last flight.
- </para>
- <para>
- In addition to the data used to present the height of the last
- flight, MicroPeak also stores barometric information sampled
- at regular intervals during the flight. This is the
- information captured with the MicroPeak USB adapter. It can
- also be read from MicroPeak through any AVR programming
- tool.
- </para>
- <table frame='all'>
- <title>MicroPeak EEPROM Data Storage</title>
- <tgroup cols='3' align='center' colsep='1' rowsep='1'>
- <colspec align='center' colwidth='2*' colname='Address'/>
- <colspec align='center' colwidth='*' colname='Size (bytes)'/>
- <colspec align='left' colwidth='7*' colname='Description'/>
- <thead>
- <row>
- <entry align='center'>Address</entry>
- <entry align='center'>Size (bytes)</entry>
- <entry align='center'>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>0x000</entry>
- <entry>4</entry>
- <entry>Average ground pressure (Pa)</entry>
- </row>
- <row>
- <entry>0x004</entry>
- <entry>4</entry>
- <entry>Minimum flight pressure (Pa)</entry>
- </row>
- <row>
- <entry>0x008</entry>
- <entry>2</entry>
- <entry>Number of in-flight samples</entry>
- </row>
- <row>
- <entry>0x00a … 0x1fe</entry>
- <entry>2</entry>
- <entry>Instantaneous flight pressure (Pa) low 16 bits</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>
- All EEPROM data are stored least-significant byte first. The
- instantaneous flight pressure data are stored without the
- upper 16 bits of data. The upper bits can be reconstructed
- from the previous sample, assuming that pressure doesn't
- change by more more than 32kPa in a single sample
- interval. Note that this pressure data is <emphasis>not</emphasis>
- filtered in any way, while both the recorded ground and apogee
- pressure values are, so you shouldn't expect the minimum
- instantaneous pressure value to match the recorded minimum
- pressure value exactly.
- </para>
- <para>
- MicroPeak samples pressure every 96ms, but stores only every
- other sample in the EEPROM. This provides for 251 pressure
- samples at 192ms intervals, or 48.192s of storage. The clock
- used for these samples is a factory calibrated RC circuit
- built into the ATtiny85 and is accurate only to within ±10% at
- 25°C. So, you can count on the pressure data being accurate,
- but speed or acceleration data computed from this will be
- limited by the accuracy of this clock.
- </para>
- </section>
- <section>
- <title>MicroPeak Programming Interface</title>
- <para>
- MicroPeak exposes a standard 6-pin AVR programming interface,
- but not using the usual 2x3 array of pins on 0.1"
- centers. Instead, there is a single row of tiny 0.60mm ×
- 0.85mm pads on 1.20mm centers exposed near the edge of the
- circuit board. We couldn't find any connector that was
- small enough to include on the circuit board.
- </para>
- <para>
- In lieu of an actual connector, the easiest way to connect to
- the bare pads is through a set of Pogo pins. These
- spring-loaded contacts are designed to connect in precisely
- this way. We've designed a programming jig, the MicroPeak
- Pogo Pin board which provides a standard AVR interface on one
- end and a recessed slot for MicroPeak to align the board with
- the Pogo Pins.
- </para>
- <para>
- The MicroPeak Pogo Pin board is not a complete AVR programmer,
- it is an interface board that provides a 3.3V regulated power
- supply to run the MicroPeak via USB and a standard 6-pin AVR
- programming interface with the usual 2x3 grid of pins on 0.1"
- centers. This can be connected to any AVR programming
- dongle.
- </para>
- <para>
- The AVR programming interface cannot run faster than ¼ of the
- AVR CPU clock frequency. Because MicroPeak runs at 250kHz to
- save power, you must configure your AVR programming system to
- clock the AVR programming interface at no faster than
- 62.5kHz, or a clock period of 32µS.
- </para>
- </section>
- </chapter>
-</book>
-<!-- LocalWords: Altusmetrum MicroPeak
--->
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>29 September 2010</date>
+<copyright>
+ <year>2010</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 0.7.1
+:toc!:
+:doctype: article
+
+ Version 0.7.1 is the first release containing our new
+ cross-platform Java-based user interface.
+
+ == AltosUI Application
+
+ * Receive and log telemetry from a connected TeleDongle
+ device. All data received is saved to log files named with
+ the current date and the connected rocket serial and flight
+ numbers. There is no mode in which telemetry data will not
+ be saved.
+
+
+ * Download logged data from TeleMetrum devices, either through
+ a direct USB connection or over the air through a TeleDongle
+ device.
+
+
+ * Configure a TeleMetrum device, setting the radio channel,
+ callsign, apogee delay and main deploy height. This can be
+ done through either a USB connection or over a radio link
+ via a TeleDongle device.
+
+
+ * Replay a flight in real-time. This takes a saved telemetry
+ log or eeprom download and replays it through the user
+ interface so you can relive your favorite rocket flights.
+
+
+ * Reprogram Altus Metrum devices. Using an Altus Metrum device
+ connected via USB, another Altus Metrum device can be
+ reprogrammed using the supplied programming cable between
+ the two devices.
+
+
+ * Export Flight data to a comma-separated-values file. This
+ takes either telemetry or on-board flight data and generates
+ data suitable for use in external applications. All data is
+ exported using standard units so that no device-specific
+ knowledge is needed to handle the data.
+
+
+ * Speak to you during the flight. Instead of spending the
+ flight hunched over your laptop looking at the screen, enjoy
+ the view while the computer tells you what’s going on up
+ there. During ascent, you hear the current flight state and
+ altitude information. During descent, you get azimuth,
+ elevation and range information to try and help you find
+ your rocket in the air. Once on the ground, the direction
+ and distance are reported.
+++ /dev/null
-<?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 0.7.1 is the first release containing our new cross-platform Java-based user interface. AltosUI can:
- </para>
- <itemizedlist>
- <listitem>
-<para>
- Receive and log telemetry from a connected TeleDongle
- device. All data received is saved to log files named with the
- current date and the connected rocket serial and flight
- numbers. There is no mode in which telemetry data will not be
- saved.
- </para>
-</listitem>
- <listitem>
-<para>
- Download logged data from TeleMetrum devices, either through a
- direct USB connection or over the air through a TeleDongle
- device.
- </para>
-</listitem>
- <listitem>
-<para>
- Configure a TeleMetrum device, setting the radio channel,
- callsign, apogee delay and main deploy height. This can be done
- through either a USB connection or over a radio link via a
- TeleDongle device.
- </para>
-</listitem>
- <listitem>
-<para>
- Replay a flight in real-time. This takes a saved telemetry log
- or eeprom download and replays it through the user interface so
- you can relive your favorite rocket flights.
- </para>
-</listitem>
- <listitem>
-<para>
- Reprogram Altus Metrum devices. Using an Altus Metrum device
- connected via USB, another Altus Metrum device can be
- reprogrammed using the supplied programming cable between the
- two devices.
- </para>
-</listitem>
- <listitem>
-<para>
- Export Flight data to a comma-separated-values file. This takes
- either telemetry or on-board flight data and generates data
- suitable for use in external applications. All data is exported
- using standard units so that no device-specific knowledge is
- needed to handle the data.
- </para>
-</listitem>
- <listitem>
-<para>
- Speak to you during the flight. Instead of spending the flight
- hunched over your laptop looking at the screen, enjoy the view
- while the computer tells you what’s going on up there. During
- ascent, you hear the current flight state and altitude
- information. During descent, you get azimuth, elevation and
- range information to try and help you find your rocket in the
- air. Once on the ground, the direction and distance are
- reported.
- </para>
-</listitem>
- </itemizedlist>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>24 November 2010</date>
+<copyright>
+ <year>2010</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 0.8
+:toc!:
+:doctype: article
+
+ Version 0.8 offers a major upgrade in the AltosUI
+ interface.
+
+ == AltosUI Application:
+
+ * Post-flight graphing tool. This lets you explore the
+ behaviour of your rocket after flight with a scroll-able and
+ zoom-able chart showing the altitude, speed and acceleration
+ of the airframe along with events recorded by the flight
+ computer. You can export graphs to PNG files, or print them
+ directly.
+
+ * Real-time moving map which overlays the in-progress flight
+ on satellite imagery fetched from Google Maps. This lets you
+ see in pictures where your rocket has landed, allowing you
+ to plan recovery activities more accurately.
+
+ * Wireless recovery system testing. Prep your rocket for
+ flight and test fire the deployment charges to make sure
+ things work as expected. All without threading wires through
+ holes in your airframe.
+
+ * Optimized flight status displays. Each flight state now has
+ it's own custom 'tab' in the flight monitoring window so you
+ can focus on the most important details. Pre-flight, the
+ system shows a set of red/green status indicators for
+ battery voltage, apogee/main igniter continutity and GPS
+ reception. Wait until they're all green and your rocket is
+ ready for flight. There are also tabs for ascent, descent
+ and landing along with the original tabular view of the
+ data.
+
+ * Monitor multiple flights simultaneously. If you have more
+ than one TeleDongle, you can monitor a flight with each one
+ on the same computer.
+
+ * Automatic flight monitoring at startup. Plug TeleDongle into
+ the machine before starting AltosUI and it will
+ automatically connect to it and prepare to monitor a flight.
+
+ * Exports Google Earth flight tracks. Using the Keyhole Markup
+ Language (.kml) file format, this provides a 3D view of your
+ rocket flight through the Google Earth program.
+++ /dev/null
-<?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 0.8 offers a major upgrade in the AltosUI
- interface. Significant new features include:
- </para>
- <itemizedlist>
- <listitem>
-<para>
- Post-flight graphing tool. This lets you explore the behaviour
- of your rocket after flight with a scroll-able and zoom-able
- chart showing the altitude, speed and acceleration of the
- airframe along with events recorded by the flight computer. You
- can export graphs to PNG files, or print them directly.
- </para>
-</listitem>
- <listitem>
-<para>
- Real-time moving map which overlays the in-progress flight on
- satellite imagery fetched from Google Maps. This lets you see in
- pictures where your rocket has landed, allowing you to plan
- recovery activities more accurately.
- </para>
-</listitem>
- <listitem>
-<para>
- Wireless recovery system testing. Prep your rocket for flight
- and test fire the deployment charges to make sure things work as
- expected. All without threading wires through holes in your
- airframe.
- </para>
-</listitem>
- <listitem>
-<para>
- Optimized flight status displays. Each flight state now has it's
- own custom 'tab' in the flight monitoring window so you can
- focus on the most important details. Pre-flight, the system
- shows a set of red/green status indicators for battery voltage,
- apogee/main igniter continutity and GPS reception. Wait until
- they're all green and your rocket is ready for flight. There are
- also tabs for ascent, descent and landing along with the
- original tabular view of the data.
- </para>
-</listitem>
- <listitem>
-<para>
- Monitor multiple flights simultaneously. If you have more than
- one TeleDongle, you can monitor a flight with each one on the
- same computer.
- </para>
-</listitem>
- <listitem>
-<para>
- Automatic flight monitoring at startup. Plug TeleDongle into the
- machine before starting AltosUI and it will automatically
- connect to it and prepare to monitor a flight.
- </para>
-</listitem>
- <listitem>
-<para>
- Exports Google Earth flight tracks. Using the Keyhole Markup
- Language (.kml) file format, this provides a 3D view of your
- rocket flight through the Google Earth program.
- </para>
-</listitem>
- </itemizedlist>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>18 January 2011</date>
+<copyright>
+ <year>2011</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>19 March 2011</date>
+<copyright>
+ <year>2011</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 0.9.2
+:toc!:
+:doctype: article
+
+ Version 0.9.2 is an AltosUI bug-fix release, with no firmware
+ changes.
+
+ == AltosUI
+
+ AltosUI fixes:
+
+ * Fix plotting problems due to missing file in the Mac
+ OS install image.
+
+ * Always read whole eeprom blocks, mark empty records
+ invalid, display parsing errors to user.
+
+ * Add software version to Configure AltosUI dialog
+++ /dev/null
-<?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 0.9.2 is an AltosUI bug-fix release, with no firmware changes.
- </para>
- <itemizedlist>
- <listitem>
-<para>
- Fix plotting problems due to missing file in the Mac OS install image.
-</para>
- </listitem>
- <listitem>
-<para>
- Always read whole eeprom blocks, mark empty records invalid, display parsing errors to user.
-</para>
- </listitem>
- <listitem>
- <para>
- Add software version to Configure AltosUI dialog
-</para>
- </listitem>
- </itemizedlist>
-</article>
--- /dev/null
+= Release Notes for Version 0.9
+:toc!:
+:doctype: article
+
+ Version 0.9 adds a few new firmware features and accompanying
+ AltosUI changes, along with new hardware support.
+
+ == AltOS
+
+ * Support for TeleMetrum v1.1 hardware. Sources for the flash
+ memory part used in v1.0 dried up, so v1.1 uses a different
+ part which required a new driver and support for explicit
+ flight log erasing.
+
+ * Multiple flight log support. This stores more than one
+ flight log in the on-board flash memory. It also requires
+ the user to explicitly erase flights so that you won't lose
+ flight logs just because you fly the same board twice in one
+ day.
+
+ * Telemetry support for devices with serial number >=
+ 256. Previous versions used a telemetry packet format that
+ provided only 8 bits for the device serial number. This
+ change requires that both ends of the telemetry link be
+ running the 0.9 firmware or they will not communicate.
+
+ == AltosUI Application
+
+ * Support for telemetry format changes.
+
+ * Support for multiple flight logs.
+++ /dev/null
-<?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 0.9 adds a few new firmware features and accompanying
- AltosUI changes, along with new hardware support.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Support for TeleMetrum v1.1 hardware. Sources for the flash
- memory part used in v1.0 dried up, so v1.1 uses a different part
- which required a new driver and support for explicit flight log
- erasing.
-</para>
- </listitem>
- <listitem>
- <para>
- Multiple flight log support. This stores more than one flight
- log in the on-board flash memory. It also requires the user to
- explicitly erase flights so that you won't lose flight logs just
- because you fly the same board twice in one day.
-</para>
- </listitem>
- <listitem>
- <para>
- Telemetry support for devices with serial number >=
- 256. Previous versions used a telemetry packet format that
- provided only 8 bits for the device serial number. This change
- requires that both ends of the telemetry link be running the 0.9
- firmware or they will not communicate.
-</para>
- </listitem>
- </itemizedlist>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>24 August 2011</date>
+<copyright>
+ <year>2011</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.0.1
+:toc!:
+:doctype: article
+
+ Version 1.0.1 is a major release, adding support for the
+ TeleMini device and lots of new AltosUI features
+
+ == AltOS
+
+ AltOS New Features
+
+ * Add TeleMini v1.0 support.
+
+ * Support operation of TeleMetrum with the antenna pointing
+ aft. Previous firmware versions required the antenna to be
+ pointing upwards, now there is a configuration option
+ allowing the antenna to point aft, to aid installation in
+ some airframes.
+
+ * Ability to disable telemetry. For airframes where an antenna
+ just isn't possible, or where radio transmissions might
+ cause trouble with other electronics, there's a
+ configuration option to disable all telemetry. Note that the
+ board will still enable the radio link in idle mode.
+
+ * Arbitrary frequency selection. The radios in Altus Metrum
+ devices can be programmed to a wide range of frequencies, so
+ instead of limiting devices to 10 pre-selected 'channels',
+ the new firmware allows the user to choose any frequency in
+ the 70cm band. Note that the RF matching circuit on the
+ boards is tuned for around 435MHz, so frequencies far from
+ that may reduce the available range.
+
+
+ AltOS Fixes
+
+ * Change telemetry to be encoded in multiple 32-byte
+ packets. This enables support for TeleMini and other devices
+ without requiring further updates to the TeleDongle
+ firmware.
+
+ * Kalman-filter based flight-tracking. The model based sensor
+ fusion approach of a Kalman filter means that AltOS now
+ computes apogee much more accurately than before, generally
+ within a fraction of a second. In addition, this approach
+ allows the baro-only TeleMini device to correctly identify
+ Mach transitions, avoiding the error-prone selection of a
+ Mach delay.
+
+
+ == AltosUI Application
+
+ AltosUI New Features
+
+ * Add main/apogee voltage graphs to the data
+ plot. This provides a visual indication if the
+ igniters fail before being fired.
+
+ * Scan for altimeter devices by watching the defined
+ telemetry frequencies. This avoids the problem of
+ remembering what frequency a device was configured
+ to use, which is especially important with TeleMini
+ which does not include a USB connection.
+
+ * Monitor altimeter state in "Idle" mode. This
+ provides much of the information presented in the
+ "Pad" dialog from the Monitor Flight command,
+ monitoring the igniters, battery and GPS status
+ withing requiring the flight computer to be armed
+ and ready for flight.
+
+
+ * Pre-load map images from home. For those launch
+ sites which don't provide free Wi-Fi, this allows
+ you to download the necessary satellite images
+ given the location of the launch site. A list of
+ known launch sites is maintained at altusmetrum.org
+ which AltosUI downloads to populate a menu; if
+ you've got a launch site not on that list, please
+ send the name of it, latitude and longitude along
+ with a link to the web site of the controlling club
+ to the altusmetrum mailing list.
+
+ * Flight statistics are now displayed in the Graph
+ data window. These include max height/speed/accel,
+ average descent rates and a few other bits of
+ information. The Graph Data window can now be
+ reached from the 'Landed' tab in the Monitor Flight
+ window so you can immediately see the results of a
+ flight.
+
+ AltosUI Changes
+
+ * Wait for altimeter when using packet mode. Instead
+ of quicly timing out when trying to initialize a
+ packet mode configuration connection, AltosUI now
+ waits indefinitely for the remote device to appear,
+ providing a cancel button should the user get
+ bored. This is necessary as the TeleMini can only be
+ placed in "Idle" mode if AltosUI is polling it.
+++ /dev/null
-<?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.0.1 is a major release, adding support for the TeleMini
- device and lots of new AltosUI features
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
-<para>
- Add TeleMini v1.0 support. Firmware images for TeleMini are
- included in AltOS releases.
- </para>
-</listitem>
- <listitem>
-<para>
- Change telemetry to be encoded in multiple 32-byte packets. This
- enables support for TeleMini and other devices without requiring
- further updates to the TeleDongle firmware.
- </para>
-</listitem>
- <listitem>
-<para>
- Support operation of TeleMetrum with the antenna pointing
- aft. Previous firmware versions required the antenna to be
- pointing upwards, now there is a configuration option allowing
- the antenna to point aft, to aid installation in some airframes.
- </para>
-</listitem>
- <listitem>
-<para>
- Ability to disable telemetry. For airframes where an antenna
- just isn't possible, or where radio transmissions might cause
- trouble with other electronics, there's a configuration option
- to disable all telemetry. Note that the board will still
- enable the radio link in idle mode.
- </para>
-</listitem>
- <listitem>
-<para>
- Arbitrary frequency selection. The radios in Altus Metrum
- devices can be programmed to a wide range of frequencies, so
- instead of limiting devices to 10 pre-selected 'channels', the
- new firmware allows the user to choose any frequency in the
- 70cm band. Note that the RF matching circuit on the boards is
- tuned for around 435MHz, so frequencies far from that may
- reduce the available range.
- </para>
-</listitem>
- <listitem>
-<para>
- Kalman-filter based flight-tracking. The model based sensor
- fusion approach of a Kalman filter means that AltOS now
- computes apogee much more accurately than before, generally
- within a fraction of a second. In addition, this approach
- allows the baro-only TeleMini device to correctly identify
- Mach transitions, avoiding the error-prone selection of a Mach
- delay.
- </para>
-</listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Changes
- <itemizedlist>
- <listitem>
-<para>
- Wait for altimeter when using packet mode. Instead of quicly
- timing out when trying to initialize a packet mode
- configuration connection, AltosUI now waits indefinitely for
- the remote device to appear, providing a cancel button should
- the user get bored. This is necessary as the TeleMini can only
- be placed in "Idle" mode if AltosUI is polling it.
- </para>
-</listitem>
- <listitem>
-<para>
- Add main/apogee voltage graphs to the data plot. This provides
- a visual indication if the igniters fail before being fired.
- </para>
-</listitem>
- <listitem>
-<para>
- Scan for altimeter devices by watching the defined telemetry
- frequencies. This avoids the problem of remembering what
- frequency a device was configured to use, which is especially
- important with TeleMini which does not include a USB connection.
- </para>
-</listitem>
- <listitem>
-<para>
- Monitor altimeter state in "Idle" mode. This provides much of
- the information presented in the "Pad" dialog from the Monitor
- Flight command, monitoring the igniters, battery and GPS
- status withing requiring the flight computer to be armed and
- ready for flight.
- </para>
-</listitem>
- <listitem>
-<para>
- Pre-load map images from home. For those launch sites which
- don't provide free Wi-Fi, this allows you to download the
- necessary satellite images given the location of the launch
- site. A list of known launch sites is maintained at
- altusmetrum.org which AltosUI downloads to populate a menu; if
- you've got a launch site not on that list, please send the
- name of it, latitude and longitude along with a link to the
- web site of the controlling club to the altusmetrum mailing list.
- </para>
-</listitem>
- <listitem>
-<para>
- Flight statistics are now displayed in the Graph data
- window. These include max height/speed/accel, average descent
- rates and a few other bits of information. The Graph Data
- window can now be reached from the 'Landed' tab in the Monitor
- Flight window so you can immediately see the results of a
- flight.
- </para>
-</listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>13 September 2012</date>
+<copyright>
+ <year>2013</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>16 September 2012</date>
+<copyright>
+ <year>2012</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.1
+:toc!:
+:doctype: article
+
+ Version 1.1.1 is a bug-fix release. It fixes a couple of bugs
+ in AltosUI and one firmware bug that affects TeleMetrum
+ version 1.0 boards. Thanks to Bob Brown for help diagnosing
+ the Google Earth file export issue, and for suggesting the
+ addition of the Ground Distance value in the Descent tab.
+
+ == AltOS
+
+ AltOS fixes:
+
+ * TeleMetrum v1.0 boards use the AT45DB081D flash
+ memory part to store flight data, which is different
+ from later TeleMetrum boards. The AltOS v1.1 driver
+ for this chip couldn't erase memory, leaving it
+ impossible to delete flight data or update
+ configuration values. This bug doesn't affect newer
+ TeleMetrum boards, and it doesn't affect the safety
+ of rockets flying version 1.1 firmware.
+
+ == AltosUI
+
+ AltosUI new features:
+
+ * The “Descent” tab displays the range to the rocket,
+ which is a combination of the over-the-ground
+ distance to the rockets current latitude/longitude
+ and the height of the rocket. As such, it's useful
+ for knowing how far away the rocket is, but
+ difficult to use when estimating where the rocket
+ might eventually land. A new “Ground Distance” field
+ has been added which displays the distance to a spot
+ right underneath the rocket.
+
+ AltosUI fixes:
+
+ * Creating a Google Earth file (KML) from on-board
+ flight data (EEPROM) would generate an empty
+ file. The code responsible for reading the EEPROM
+ file wasn't ever setting the GPS valid bits, and so
+ the KML export code thought there was no GPS data in
+ the file.
+
+ * The “Landed” tab was displaying all values in metric
+ units, even when AltosUI was configured to display
+ imperial units. Somehow I just missed this tab when
+ doing the units stuff.
+
+ * Sensor data wasn't being displayed for TeleMini
+ flight computers in Monitor Idle mode, including
+ things like battery voltage. The code that picked
+ which kinds of data to fetch from the flight
+ computer was missing a check for TeleMini when
+ deciding whether to fetch the analog sensor data.
+++ /dev/null
-<?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.1.1 is a bug-fix release. It fixes a couple of bugs in
- AltosUI and one firmware bug that affects TeleMetrum version 1.0
- boards. Thanks to Bob Brown for help diagnosing the Google Earth
- file export issue, and for suggesting the addition of the Ground
- Distance value in the Descent tab.
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
-<para>
- TeleMetrum v1.0 boards use the AT45DB081D flash memory part to
- store flight data, which is different from later TeleMetrum
- boards. The AltOS v1.1 driver for this chip couldn't erase
- memory, leaving it impossible to delete flight data or update
- configuration values. This bug doesn't affect newer TeleMetrum
- boards, and it doesn't affect the safety of rockets flying
- version 1.1 firmware.
- </para>
-</listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Changes
- <itemizedlist>
- <listitem>
-<para>
- Creating a Google Earth file (KML) from on-board flight data
- (EEPROM) would generate an empty file. The code responsible
- for reading the EEPROM file wasn't ever setting the GPS valid
- bits, and so the KML export code thought there was no GPS data
- in the file.
- </para>
-</listitem>
- <listitem>
-<para>
- The “Landed” tab was displaying all values in metric units,
- even when AltosUI was configured to display imperial
- units. Somehow I just missed this tab when doing the units stuff.
- </para>
-</listitem>
- <listitem>
-<para>
- The “Descent” tab displays the range to the rocket, which is a
- combination of the over-the-ground distance to the rockets
- current latitude/longitude and the height of the rocket. As
- such, it's useful for knowing how far away the rocket is, but
- difficult to use when estimating where the rocket might
- eventually land. A new “Ground Distance” field has been added
- which displays the distance to a spot right underneath the
- rocket.
- </para>
-</listitem>
- <listitem>
-<para>
- Sensor data wasn't being displayed for TeleMini flight
- computers in Monitor Idle mode, including things like battery
- voltage. The code that picked which kinds of data to fetch
- from the flight computer was missing a check for TeleMini when
- deciding whether to fetch the analog sensor data.
- </para>
-</listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+= Release Notes for Version 1.1
+:toc!:
+:doctype: article
+
+ Version 1.1 is a minor release. It provides a few new features
+ in AltosUI and the AltOS firmware and fixes bugs.
+
+ == AltOS
+
+ AltOS Firmware New Features:
+
+ * Add apogee-lockout value. Overrides the apogee
+ detection logic to prevent incorrect apogee charge
+ firing.
+
+ * Force the radio frequency to 434.550MHz when the
+ debug clock pin is connected to ground at boot
+ time. This provides a way to talk to a TeleMini
+ which is configured to some unknown frequency.
+
+ * Provide RSSI values for Monitor Idle mode. This
+ makes it easy to check radio range without needing
+ to go to flight mode.
+
+ AltOS Fixes:
+
+ * Fix a bug where the data reported in telemetry
+ packets was from 320ms ago.
+
+ * Fix a bug which caused the old received telemetry
+ packets to be retransmitted over the USB link when
+ the radio was turned off and back on.
+
+ == AltosUI
+
+ AltosUI New Features:
+
+ * Make the look-n-feel configurable, providing a choice from
+ the available options.
+
+ * Add an 'Age' element to mark how long since a
+ telemetry packet has been received. Useful to
+ quickly gauge whether communications with the rocket
+ are still active.
+
+ * Add 'Configure Ground Station' dialog to set the
+ radio frequency used by a particular TeleDongle
+ without having to go through the flight monitor UI.
+
+ * Add configuration for the new apogee-lockout
+ value. A menu provides a list of reasonable values,
+ or the value can be set by hand.
+
+ * Add Imperial units mode to present data in feet
+ instead of meters.
+
+ AltosUI Fixes:
+
+ * Fix a bug that caused GPS ready to happen too
+ quickly. The software was using every telemetry
+ packet to signal new GPS data, which caused GPS
+ ready to be signalled after 10 packets instead of 10
+ GPS updates.
+
+ * Fix Google Earth data export to work with recent
+ versions. The google earth file loading code got a
+ lot pickier, requiring some minor white space
+ changes in the export code.
+
+ * Changed how flight data are downloaded. Now there's
+ an initial dialog asking which flights to download,
+ and after that finishes, a second dialog comes up
+ asking which flights to delete.
+
+ * Re-compute time spent in each state for the flight
+ graph; this figures out the actual boost and landing
+ times instead of using the conservative values
+ provide by the flight electronics. This improves the
+ accuracy of the boost acceleration and main descent
+ rate computations.
+
+ * Make AltosUI run on Mac OS Lion. The default Java
+ heap space was dramatically reduced for this release
+ causing much of the UI to fail randomly. This most
+ often affected the satellite mapping download and
+ displays.
+
+ * Change how data are displayed in the 'table' tab of
+ the flight monitoring window. This eliminates
+ entries duplicated from the header and adds both
+ current altitude and pad altitude, which are useful
+ in 'Monitor Idle' mode.
+++ /dev/null
-<?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.1 is a minor release. It provides a few new features in AltosUI
- and the AltOS firmware and fixes bugs.
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
-<para>
- Add apogee-lockout value. Overrides the apogee detection logic to
- prevent incorrect apogee charge firing.
- </para>
-</listitem>
- <listitem>
-<para>
- Fix a bug where the data reported in telemetry packets was
- from 320ms ago.
- </para>
-</listitem>
- <listitem>
-<para>
- Force the radio frequency to 434.550MHz when the debug clock
- pin is connected to ground at boot time. This provides a way
- to talk to a TeleMini which is configured to some unknown frequency.
- </para>
-</listitem>
- <listitem>
-<para>
- Provide RSSI values for Monitor Idle mode. This makes it easy to check radio
- range without needing to go to flight mode.
- </para>
-</listitem>
- <listitem>
-<para>
- Fix a bug which caused the old received telemetry packets to
- be retransmitted over the USB link when the radio was turned
- off and back on.
- </para>
-</listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Changes
- <itemizedlist>
- <listitem>
-<para>
- Fix a bug that caused GPS ready to happen too quickly. The
- software was using every telemetry packet to signal new GPS
- data, which caused GPS ready to be signalled after 10 packets
- instead of 10 GPS updates.
- </para>
-</listitem>
- <listitem>
-<para>
- Fix Google Earth data export to work with recent versions. The
- google earth file loading code got a lot pickier, requiring
- some minor white space changes in the export code.
- </para>
-</listitem>
- <listitem>
-<para>
- Make the look-n-feel configurable, providing a choice from
- the available options.
- </para>
-</listitem>
- <listitem>
-<para>
- Add an 'Age' element to mark how long since a telemetry packet
- has been received. Useful to quickly gauge whether
- communications with the rocket are still active.
- </para>
-</listitem>
- <listitem>
-<para>
- Add 'Configure Ground Station' dialog to set the radio
- frequency used by a particular TeleDongle without having to go
- through the flight monitor UI.
- </para>
-</listitem>
- <listitem>
-<para>
- Add configuration for the new apogee-lockout value. A menu provides a list of
- reasonable values, or the value can be set by hand.
- </para>
-</listitem>
- <listitem>
-<para>
- Changed how flight data are downloaded. Now there's an initial
- dialog asking which flights to download, and after that
- finishes, a second dialog comes up asking which flights to delete.
- </para>
-</listitem>
- <listitem>
-<para>
- Re-compute time spent in each state for the flight graph; this
- figures out the actual boost and landing times instead of
- using the conservative values provide by the flight
- electronics. This improves the accuracy of the boost
- acceleration and main descent rate computations.
- </para>
-</listitem>
- <listitem>
-<para>
- Make AltosUI run on Mac OS Lion. The default Java heap space
- was dramatically reduced for this release causing much of the
- UI to fail randomly. This most often affected the satellite
- mapping download and displays.
- </para>
-</listitem>
- <listitem>
-<para>
- Change how data are displayed in the 'table' tab of the flight
- monitoring window. This eliminates entries duplicated from the
- header and adds both current altitude and pad altitude, which
- are useful in 'Monitor Idle' mode.
- </para>
-</listitem>
- <listitem>
-<para>
- Add Imperial units mode to present data in feet instead of
- meters.
- </para>
-</listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>18 April 2013</date>
+<copyright>
+ <year>2013</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>21 May 2013</date>
+<copyright>
+ <year>2013</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.2.1
+:toc!:
+:doctype: article
+
+ 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.
+
+ == AltOS
+
+ AltOS new features:
+
+ * Add support for TeleBT
+
+ AltOS fixes:
+
+ * In TeleMini recovery mode (when booted with the
+ outer two debug pins connected together), the radio
+ parameters are also set back to defaults
+ (434.550MHz, N0CALL, factory radio cal).
+
+ * Correct Kalman filter model error covariance
+ matrix. The values used previously assumed
+ continuous measurements instead of discrete
+ measurements.
+
+ * Fix some bugs in the USB driver for TeleMetrum and
+ TeleDongle that affected Windows users.
+
+ * Adjusted the automatic gain control parameters that
+ affect receive performance for TeleDongle. Field
+ tests indicate that this may improve receive
+ performance somewhat.
+
+ == AltosUI Application
+
+ AltosUI application new features:
+
+ * Make the initial position of the AltosUI top level
+ window configurable. Along with this change, the
+ other windows will pop up at 'sensible' places now,
+ instead of on top of one another.
+
+ * Add GPS data and a map to the graph window. This
+ lets you see a complete summary of the flight
+ without needing to 'replay' the whole thing.
+
+ AltosUI application fixes:
+
+ * Handle missing GPS lock in 'Descent'
+ tab. Previously, if the GPS position of the pad was
+ unknown, an exception would be raised, breaking the
+ Descent tab contents.
+
+ * Improve the graph, adding tool-tips to show values
+ near the cursor and making the displayed set of
+ values configurable, adding all of the flight data
+ as options while leaving the default settings alone
+ so that the graph starts by showing height, speed
+ and acceleration.
+
+ * Add callsign to Monitor idle window and connecting
+ dialogs. This makes it clear which callsign is being
+ used so that the operator will be aware that it must
+ match the flight computer value or no communication
+ will work.
+
+ * When downloading flight data, display the block
+ number so that the user has some sense of
+ progress. Unfortunately, we don't know how many
+ blocks will need to be downloaded, but at least it
+ isn't just sitting there doing nothing for a long
+ time.
+
+ == AltosDroid
+
+ * First version of this application
+++ /dev/null
-<?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.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.
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
-<para>
- Add support for TeleBT
- </para>
-</listitem>
- <listitem>
-<para>
- In TeleMini recovery mode (when booted with the outer two
- debug pins connected together), the radio parameters are also
- set back to defaults (434.550MHz, N0CALL, factory radio cal).
- </para>
-</listitem>
- <listitem>
-<para>
- Add support for reflashing the SkyTraq GPS chips. This
- requires special host-side code which currently only exists
- for Linux.
- </para>
-</listitem>
- <listitem>
-<para>
- Correct Kalman filter model error covariance matrix. The
- values used previously assumed continuous measurements instead
- of discrete measurements.
- </para>
-</listitem>
- <listitem>
-<para>
- Fix some bugs in the USB driver for TeleMetrum and TeleDongle
- that affected Windows users.
- </para>
-</listitem>
- <listitem>
-<para>
- Adjusted the automatic gain control parameters that affect
- receive performance for TeleDongle. Field tests indicate that this
- may improve receive performance somewhat.
- </para>
-</listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Changes
- <itemizedlist>
- <listitem>
-<para>
- Handle missing GPS lock in 'Descent' tab. Previously, if the
- GPS position of the pad was unknown, an exception would be
- raised, breaking the Descent tab contents.
- </para>
-</listitem>
- <listitem>
-<para>
- Improve the graph, adding tool-tips to show values near the
- cursor and making the displayed set of values configurable,
- adding all of the flight data as options while leaving the
- default settings alone so that the graph starts by showing
- height, speed and acceleration.
- </para>
-</listitem>
- <listitem>
-<para>
- Make the initial position of the AltosUI top level window
- configurable. Along with this change, the other windows will
- pop up at 'sensible' places now, instead of on top of one
- another.
- </para>
-</listitem>
- <listitem>
-<para>
- Add callsign to Monitor idle window and connecting
- dialogs. This makes it clear which callsign is being used so
- that the operator will be aware that it must match the flight
- computer value or no communication will work.
- </para>
-</listitem>
- <listitem>
-<para>
- When downloading flight data, display the block number so that
- the user has some sense of progress. Unfortunately, we don't
- know how many blocks will need to be downloaded, but at least
- it isn't just sitting there doing nothing for a long time.
- </para>
-</listitem>
- <listitem>
-<para>
- Add GPS data and a map to the graph window. This lets you see
- a complete summary of the flight without needing to 'replay'
- the whole thing.
- </para>
-</listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+= Release Notes for Version 1.2
+:toc!:
+:doctype: article
+
+ Version 1.2 is a major release. It adds support for MicroPeak
+ and the MicroPeak USB adapter.
+
+ == AltOS
+
+ AltOS New Features:
+
+ * Add MicroPeak support. This includes support for the
+ ATtiny85 processor and adaptations to the core code
+ to allow for devices too small to run the
+ multi-tasking scheduler.
+
+ == AltosUI and MicroPeak Application
+
+ New Features:
+
+ * Added MicroPeak application
+
+ AltosUI and MicroPeak fixes:
+
+ * Distribute Mac OS X packages in disk image ('.dmg')
+ format to greatly simplify installation.
+
+ * Provide version numbers for the shared Java
+ libraries to ensure that upgrades work properly, and
+ to allow for multiple Altus Metrum software packages
+ to be installed in the same directory at the same
+ time.
+++ /dev/null
-<?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.2 is a major release. It adds support for MicroPeak and
- the MicroPeak USB adapter.
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
-<para>
- Add MicroPeak support. This includes support for the ATtiny85
- processor and adaptations to the core code to allow for
- devices too small to run the multi-tasking scheduler.
- </para>
-</listitem>
- </itemizedlist>
- </para>
- <para>
- MicroPeak UI changes
- <itemizedlist>
- <listitem>
-<para>
- Added this new application
- </para>
-</listitem>
- </itemizedlist>
- </para>
- <para>
- Distribution Changes
- <itemizedlist>
- <listitem>
-<para>
- Distribute Mac OS X packages in disk image ('.dmg') format to
- greatly simplify installation.
- </para>
-</listitem>
- <listitem>
-<para>
- Provide version numbers for the shared Java libraries to
- ensure that upgrades work properly, and to allow for multiple
- Altus Metrum software packages to be installed in the same
- directory at the same time.
- </para>
-</listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>12 November 2013</date>
+<copyright>
+ <year>2013</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>21 January 2014</date>
+<copyright>
+ <year>2014</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.3.1
+:toc!:
+:doctype: article
+
+ Version 1.3.1 is a minor release. It improves support for
+ TeleMega, TeleMetrum v2.0, TeleMini v2.0 and EasyMini.
+
+ == AltOS
+
+ AltOS new features:
+
+ * Improved APRS mode. Now uses compressed position
+ format for smaller data size, improved precision and
+ to include altitude data as well as latitude and
+ longitude. Also added battery and pyro voltage
+ reports in the APRS comment field so you can confirm
+ that the unit is ready for launch.
+
+ AltOS fixes:
+
+ * Improve sensor boot code. If sensors fail to
+ self-test, the device will still boot up and check
+ for pad/idle modes. If in idle mode, the device will
+ warn the user with a distinct beep, if in Pad mode,
+ the unit will operate as best it can. Also, the
+ Z-axis accelerometer now uses the factory
+ calibration values instead of re-calibrating on the
+ pad each time. This avoids accidental boost detect
+ when moving the device around while in Pad mode.
+
+ * Fix antenna-down mode accelerometer
+ configuration. Antenna down mode wasn't working
+ because the accelerometer calibration values were
+ getting re-computed incorrectly in inverted mode.
+
+ == AltosUI Application
+
+ AltosUI new features:
+
+ * Display additional TeleMega sensor values in real
+ units. Make all of these values available for
+ plotting. Display TeleMega orientation value in the
+ Ascent and Table tabs.
+
+
+ * Support additional TeleMega pyro channels in the
+ Fire Igniter dialog. This lets you do remote testing
+ of all of the channels, rather than just Apogee and
+ Main.
+
+ AltosUI fixes:
+
+ * Limit data rate when downloading satellite images
+ from Google to make sure we stay within their limits
+ so that all of the map tiles download successfully.
+++ /dev/null
-<?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.3.1 is a minor release. It improves support for TeleMega,
- TeleMetrum v2.0, TeleMini v2.0 and EasyMini.
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
- <para>
- Improve sensor boot code. If sensors fail to self-test, the
- device will still boot up and check for pad/idle modes. If
- in idle mode, the device will warn the user with a distinct
- beep, if in Pad mode, the unit will operate as best it
- can. Also, the Z-axis accelerometer now uses the factory
- calibration values instead of re-calibrating on the pad each
- time. This avoids accidental boost detect when moving the
- device around while in Pad mode.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix antenna-down mode accelerometer configuration. Antenna
- down mode wasn't working because the accelerometer
- calibration values were getting re-computed incorrectly in
- inverted mode.
- </para>
- </listitem>
- <listitem>
- <para>
- Improved APRS mode. Now uses compressed position format for
- smaller data size, improved precision and to include
- altitude data as well as latitude and longitude. Also added
- battery and pyro voltage reports in the APRS comment field
- so you can confirm that the unit is ready for launch.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI changes
- <itemizedlist>
- <listitem>
- <para>
- Display additional TeleMega sensor values in real
- units. Make all of these values available for
- plotting. Display TeleMega orientation value in the Ascent
- and Table tabs.
- </para>
- </listitem>
- <listitem>
- <para>
- Support additional TeleMega pyro channels in the Fire
- Igniter dialog. This lets you do remote testing of all of
- the channels, rather than just Apogee and Main.
- </para>
- </listitem>
- <listitem>
- <para>
- Limit data rate when downloading satellite images from
- Google to make sure we stay within their limits so that all
- of the map tiles download successfully.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>24 January 2014</date>
+<copyright>
+ <year>2014</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.3.2
+:toc!:
+:doctype: article
+
+ Version 1.3.2 is a minor release. It includes small bug fixes for
+ the TeleMega flight software and AltosUI ground station
+
+ == AltOS
+
+ AltOS fixes:
+
+ * On TeleMega, limit number of logged GPS status
+ information to 12 satellites. That's all there is
+ room for in the log structure.
+
+ * Improve APRS behavior. Remembers last known GPS
+ position and keeps sending that if we lose GPS
+ lock. Marks locked/unlocked by sending L/U in the
+ APRS comment field along with the number of sats in
+ view and voltages.
+
+ == AltosUI Application
+
+ AltosUI fixes:
+
+ * If the TeleMega flight firmware reports that it has
+ logged information about more than 12 satellites,
+ don't believe it as the log only holds 12 satellite
+ records.
+
+ * Track the maximum height as computed from GPS
+ altitude data and report that in the flight summary
+ data.
+
+ * Use letters (A, B, C, D) for alternate pyro channel
+ names instead of numbers (0, 1, 2, 3) in the Fire
+ Igniter dialog.
+++ /dev/null
-<?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.3.2 is a minor release. It includes small bug fixes for
- the TeleMega flight software and AltosUI ground station
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
- <para>
- On TeleMega, limit number of logged GPS status information
- to 12 satellites. That's all there is room for in the log
- structure.
- </para>
- </listitem>
- <listitem>
- <para>
- Improve APRS behavior. Remembers last known GPS position and
- keeps sending that if we lose GPS lock. Marks
- locked/unlocked by sending L/U in the APRS comment field
- along with the number of sats in view and voltages.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI changes
- <itemizedlist>
- <listitem>
- <para>
- If the TeleMega flight firmware reports that it has logged
- information about more than 12 satellites, don't believe it
- as the log only holds 12 satellite records.
- </para>
- </listitem>
- <listitem>
- <para>
- Track the maximum height as computed from GPS altitude
- data and report that in the flight summary data.
- </para>
- </listitem>
- <listitem>
- <para>
- Use letters (A, B, C, D) for alternate pyro channel names
- instead of numbers (0, 1, 2, 3) in the Fire Igniter dialog.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+= Release Notes for Version 1.3
+:toc!:
+:doctype: article
+
+ Version 1.3 is a major release. It adds support for TeleMega,
+ TeleMetrum v2.0, TeleMini v2.0 and EasyMini.
+
+ == AltOS
+
+ AltOS new features:
+
+ * Add STM32L processor support. This includes
+ enhancements to the scheduler to support products
+ with many threads.
+
+ * Add NXP LPC11U14 processor support.
+
+
+ * Support additional pyro channels. These are
+ configurable through the UI to handle air starts,
+ staging, additional recovery events and external
+ devices such as cameras.
+
+
+ * Add 3-axis gyro support for orientation
+ tracking. This integrates the gyros to compute the
+ angle from vertical during flight, allowing the
+ additional pyro events to be controlled by this
+ value.
+
+
+ * Many more device drivers, including u-Blox Max 7Q
+ GPS, Freescale MMA6555 digital single-axis
+ accelerometer, Invensense MPU6000 3-axis
+ accelerometer + 3 axis gyro, Honeywell HMC5883
+ 3-axis magnetic sensor and the TI CC1120 and CC115L
+ digital FM transceivers
+
+ == AltosUI Application
+
+ AltosUI new features:
+
+ * Support TeleMega, TeleMetrum v2.0, TeleMini v2.0 and
+ EasyMini telemetry and log formats.
+
+
+ AltosUI fixes:
+
+ * Use preferred units for main deployment height
+ configuration, instead of always doing configuration in
+ meters.
+ == MicroPeak Application
+
+ * Add 'Download' button to menu bar.
+
+ * Save the last log directory and offer that as the
+ default for new downloads
+++ /dev/null
-<?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.3 is a major release. It adds support for TeleMega,
- TeleMetrum v2.0, TeleMini v2.0 and EasyMini.
- </para>
- <para>
- AltOS Firmware Changes
- <itemizedlist>
- <listitem>
- <para>
- Add STM32L processor support. This includes enhancements to
- the scheduler to support products with many threads.
- </para>
- </listitem>
- <listitem>
- <para>
- Add NXP LPC11U14 processor support.
- </para>
- </listitem>
- <listitem>
- <para>
- Support additional pyro channels. These are configurable
- through the UI to handle air starts, staging, additional
- recovery events and external devices such as cameras.
- </para>
- </listitem>
- <listitem>
- <para>
- Add 3-axis gyro support for orientation tracking. This
- integrates the gyros to compute the angle from vertical during
- flight, allowing the additional pyro events to be controlled
- by this value.
- </para>
- </listitem>
- <listitem>
- <para>
- Many more device drivers, including u-Blox Max 7Q GPS,
- Freescale MMA6555 digital single-axis accelerometer,
- Invensense MPU6000 3-axis accelerometer + 3 axis gyro,
- Honeywell HMC5883 3-axis magnetic sensor and the TI CC1120 and
- CC115L digital FM transceivers
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI changes
- <itemizedlist>
- <listitem>
- <para>
- Support TeleMega, TeleMetrum v2.0, TeleMini v2.0 and EasyMini telemetry and log formats.
- </para>
- </listitem>
- <listitem>
- <para>
- Use preferred units for main deployment height configuration,
- instead of always doing configuration in meters.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- MicroPeak UI changes
- <itemizedlist>
- <listitem>
- <para>
- Add 'Download' button to menu bar.
- </para>
- </listitem>
- <listitem>
- <para>
- Save the last log directory and offer that as the default for new downloads
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>15 June 2014</date>
+<copyright>
+ <year>2014</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>20 June 2014</date>
+<copyright>
+ <year>2014</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.4.1
+:toc!:
+:doctype: article
+
+ Version 1.4.1 is a minor release. It fixes install issues on
+ Windows and provides the missing TeleMetrum V2.0 firmware. There
+ aren't any changes to the firmware or host applications at
+ all. All Windows users will want to upgrade to get the signed
+ driver, but Mac and Linux users who do not need the TeleMetrum
+ V2.0 firmware image will not need to upgrade.
+
+ == AltosUI and TeleGPS Applications:
+
+ Windows Install Fixes
+
+ * Provide signed Windows driver files. This should avoid any need to
+ disable driver signature checking on Windows 7 or 8.
+
+ * Fix Java version detection and download. Previously, the
+ installer would only look for Java 6 or 7 and insist on
+ downloading its own Java bits if there was something else
+ installed. Furthermore, the 64-bit Java link provided didn't
+ work for anyone other than Keith, making it impossible to
+ install AltOS on any machine with Java SE 8 installed.
+
+ Other Fixes
+
+ * Include 1.4 firmware for TeleMetrum V2.0. None of the
+ installers shipped this file. Now it's included in the AltOS
+ packages for Linux, Mac and Windows.
+
+ * Include Google Application Key for map downloading. The 1.4
+ release didn't have this key in the released version of the
+ software, making map downloading fail for most people.
+++ /dev/null
-<?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.4.1 is a minor release. It fixes install issues on
- Windows and provides the missing TeleMetrum V2.0 firmware. There
- aren't any changes to the firmware or host applications at
- all. All Windows users will want to upgrade to get the signed
- driver, but Mac and Linux users who do not need the TeleMetrum
- V2.0 firmware image will not need to upgrade.
- </para>
- <para>
- Windows Install Fixes
- <itemizedlist>
- <listitem>
- <para>
- Provide signed Windows driver files. This should avoid any need to
- disable driver signature checking on Windows 7 or 8.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix Java version detection and download. Previously, the
- installer would only look for Java 6 or 7 and insist on
- downloading its own Java bits if there was something else
- installed. Furthermore, the 64-bit Java link provided didn't
- work for anyone other than Keith, making it impossible to
- install AltOS on any machine with Java SE 8 installed.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Other Fixes
- <itemizedlist>
- <listitem>
- <para>
- Include 1.4 firmware for TeleMetrum V2.0. None of the
- installers shipped this file. Now it's included in the AltOS
- packages for Linux, Mac and Windows.
- </para>
- </listitem>
- <listitem>
- <para>
- Include Google Application Key for map downloading. The 1.4
- release didn't have this key in the released version of the
- software, making map downloading fail for most people.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>17 August 2014</date>
+<copyright>
+ <year>2014</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.4.2
+:toc!:
+:doctype: article
+
+ Version 1.4.2 is a minor release. It fixes Java-related install issues on
+ Windows
+
+ == AltosUI and TeleGPS Applications
+
+ Windows Install Fixes
+
+ * Checks for Java installation data in more registry locations.
+
+ * Allows user to bypass Java installation in case the
+ detection fails.
--- /dev/null
+= Release Notes for Version 1.4
+:toc!:
+:doctype: article
+
+ Version 1.4 is a major release. It includes support for our new
+ TeleGPS product, new features and bug fixes in in the flight
+ software for all our boards and the AltosUI ground station
+
+ == AltOS
+
+ AltOS new features:
+
+ * Add support for TeleGPS boards.
+
+ * Make the beeper tone configurable, making it
+ possible to distinguish between two Altus Metrum
+ products in the same ebay.
+
+ * Make the firing time for extra pyro channels
+ configurable, allowing longer (or shorter) than the
+ default 50ms. Only relevant for TeleMega at this
+ time.
+
+ AltOS fixes:
+
+ * Replace the 'dit dit dit' tones at startup with the
+ current battery voltage, measured in tenths of a
+ volt. This lets you check the battery voltage
+ without needing telemetry, which is especially
+ useful on EasyMini.
+
+ * Change state beeping to "Farnsworth spacing", which
+ means they're quite a bit faster than before, and so
+ they take less time to send.
+
+ * Fix bug preventing the selection of the 'Flight
+ State After' mode in pyro configuration.
+
+ * Fix bug where erasing flights would reset the flight
+ number to 2 on TeleMega and TeleMetrum v2.
+
+ * Fix u-Blox GPS driver to mark course and speed data
+ as being present.
+
+ == AltosUI Application
+
+ AltosUI new features:
+
+ * Add zooming and new content types (terrain and road
+ maps) to map view. Change map storage format from
+ PNG to Jpeg, which saves a huge amount of disk
+ space. You will need to re-download all of your
+ pre-loaded map images.
+
+ * Add a distance measuring device to the maps
+ view. Select this by using any button other than the
+ left one, or by pressing shift or control on the
+ keyboard while using the left button.
+
+ * Add new 'Ignitor' tab to the flight monitor display
+ for TeleMega's extra ignitors.
+
+ * Add additional ignitor firing marks and voltages to
+ the graph so you can see when the ignitors fired,
+ along with the ignitor voltages.
+
+ * Add GPS course, ground speed and climb rate as
+ optional graph elements.
+
+ AltosUI fixes:
+
+ * When flashing new firmware, re-try opening the
+ device as sometimes it takes a while for the
+ underlying operating system to recognize that the
+ device has rebooted in preparation for the flashing
+ operation.
+
+ * Hide Tilt Angle in ascent tab for devices that don't
+ have a gyro.
+
+ * Increase the width of data lines in the graphs to
+ make them easier to read.
+
+ * Filter out speed and acceleration spikes caused by
+ ejection charge firing when computing the maximum
+ values. This provides a more accurate reading of
+ those maximums.
+
+ * Fix EasyMini voltage displays. Early EasyMini
+ prototypes used a 3.0V regulator, and AltosUI still
+ used that value as the basis of the
+ computation. Production EasyMini boards have always
+ shipped with a 3.3V regulator. Also, purple EasyMini
+ boards sensed the battery voltage past the blocking
+ diode, resulting in a drop of about 150mV from the
+ true battery voltage. Compensate for that when
+ displaying the value.
+
+ * Display error message when trying to configure
+ maximum flight log size while the flight computer
+ still has flight data stored.
+
+ * Handle TeleMetrum and TeleMini eeprom files
+ generated with pre-1.0 firmware. Those ancient
+ versions didn't report the log format, so just use
+ the product name instead.
+
+ == TeleGPS Application
+
+ * New application designed for use with TeleGPS boards.
+
+ * Shares code with AltosUI, mostly just trimmed down
+ to focus on TeleGPS-related functions.
+
+ == Documentation
+
+ Documentation changes:
+
+ * Re-create the drill template images; they should
+ print correctly from Firefox at least. Ship these as
+ individual PDF files so they're easy to print.
+
+ * Add a description of the 'Apogee Lockout' setting,
+ which prevents the apogee charge from firing for a
+ configurable amount of time after boost.
+++ /dev/null
-<?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.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
- </para>
- <para>
- AltOS New Features
- <itemizedlist>
- <listitem>
- <para>
- Add support for TeleGPS boards.
- </para>
- </listitem>
- <listitem>
- <para>
- Replace the 'dit dit dit' tones at startup with the current
- battery voltage, measured in tenths of a volt. This lets you
- check the battery voltage without needing telemetry, which
- is especially useful on EasyMini.
- </para>
- </listitem>
- <listitem>
- <para>
- Change state beeping to "Farnsworth spacing", which means
- they're quite a bit faster than before, and so they take
- less time to send.
- </para>
- </listitem>
- <listitem>
- <para>
- Make the beeper tone configurable, making it possible to
- distinguish between two Altus Metrum products in the same ebay.
- </para>
- </listitem>
- <listitem>
- <para>
- Make the firing time for extra pyro channels configurable,
- allowing longer (or shorter) than the default 50ms. Only relevant
- for TeleMega at this time.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltOS Fixes
- <itemizedlist>
- <listitem>
- <para>
- Fix bug preventing the selection of the 'Flight State After'
- mode in pyro configuration.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix bug where erasing flights would reset the flight number
- to 2 on TeleMega and TeleMetrum v2.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix u-Blox GPS driver to mark course and speed data as being
- present.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI New Features
- <itemizedlist>
- <listitem>
- <para>
- Add zooming and new content types (terrain and road maps) to
- map view. Change map storage format from PNG to Jpeg, which
- saves a huge amount of disk space. You will need to
- re-download all of your pre-loaded map images.
- </para>
- </listitem>
- <listitem>
- <para>
- Add a distance measuring device to the maps view. Select
- this by using any button other than the left one, or by
- pressing shift or control on the keyboard while using the
- left button.
- </para>
- </listitem>
- <listitem>
- <para>
- Add new 'Ignitor' tab to the flight monitor display for
- TeleMega's extra ignitors.
- </para>
- </listitem>
- <listitem>
- <para>
- Increase the width of data lines in the graphs to make them
- easier to read.
- </para>
- </listitem>
- <listitem>
- <para>
- Add additional ignitor firing marks and voltages to the
- graph so you can see when the ignitors fired, along with
- the ignitor voltages.
- </para>
- </listitem>
- <listitem>
- <para>
- Add GPS course, ground speed and climb rate as optional
- graph elements.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Fixes
- <itemizedlist>
- <listitem>
- <para>
- When flashing new firmware, re-try opening the device as
- sometimes it takes a while for the underlying operating
- system to recognize that the device has rebooted in
- preparation for the flashing operation.
- </para>
- </listitem>
- <listitem>
- <para>
- Hide Tilt Angle in ascent tab for devices that don't have a gyro.
- </para>
- </listitem>
- <listitem>
- <para>
- Filter out speed and acceleration spikes caused by ejection
- charge firing when computing the maximum values. This
- provides a more accurate reading of those maximums.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix EasyMini voltage displays. Early EasyMini prototypes
- used a 3.0V regulator, and AltosUI still used that value as
- the basis of the computation. Production EasyMini boards
- have always shipped with a 3.3V regulator. Also, purple
- EasyMini boards sensed the battery voltage past the blocking
- diode, resulting in a drop of about 150mV from the true
- battery voltage. Compensate for that when displaying the
- value.
- </para>
- </listitem>
- <listitem>
- <para>
- Display error message when trying to configure maximum
- flight log size while the flight computer still has flight
- data stored.
- </para>
- </listitem>
- <listitem>
- <para>
- Handle TeleMetrum and TeleMini eeprom files generated with
- pre-1.0 firmware. Those ancient versions didn't report the
- log format, so just use the product name instead.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- TeleGPS Application
- <itemizedlist>
- <listitem>
- <para>
- New application designed for use with TeleGPS boards.
- </para>
- </listitem>
- <listitem>
- <para>
- Shares code with AltosUI, mostly just trimmed down to focus
- on TeleGPS-related functions.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Documentation changes
- <itemizedlist>
- <listitem>
- <para>
- Re-create the drill template images; they should print
- correctly from Firefox at least. Ship these as individual
- PDF files so they're easy to print.
- </para>
- </listitem>
- <listitem>
- <para>
- Add a description of the 'Apogee Lockout' setting, which
- prevents the apogee charge from firing for a configurable
- amount of time after boost.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>6 September 2014</date>
+<copyright>
+ <year>2014</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.5
+:toc!:
+
+ Version 1.5 is a major release. It includes support for our new
+ EasyMega product, new features and bug fixes in in the flight
+ software for all our boards and the AltosUI ground station
+
+ == AltOS
+
+ AltOS New Features
+
+ * Add support for EasyMega boards.
+
+ * Make the APRS SSID be configurable. This lets you track
+ different rockets on the same receiver without getting
+ things mixed up.
+
+ * Report extra pyro channel continuity state on EasyMega and
+ TeleMega via the beeper. This lets you easily verify flight
+ readiness on these boards after powering up the electronics
+ on the rail.
+
+ * Add lower telemetry data rates (2400 and 9600 bps) to
+ increase telemetry radio range. This reduces the amount of
+ data received as well as increasing battery consumption in
+ the transmitter.
+
+ * Change TeleGPS to have only a single log, and append new
+ data to it rather than using seperate per-flight logs. This
+ avoids accidentally filling up log storage by turning
+ TeleGPS on/off several times.
+
+ AltOS Fixes
+
+ * Increase the maximum range for altitude values from +/-32767m
+ to +/-2147483647m, allowing the flight computers to function
+ correctly above the 32km level.
+
+ * Continuously test pyro firing conditions during delay stage,
+ inhibiting the pyro channel if the test fails. This prevents
+ firing pyro charges where the conditions were good before
+ the delay, but become bad before the delay expires.
+
+ * Allow negative numbers in pyro configuration values. This
+ lets you specify things like descending speed or
+ deceleration.
+
+ == AltosUI and TeleGPS Applications
+
+ AltosUI and TeleGPS New Features
+
+ * Support telemetry baud rate selection. Adds menus to
+ the flight monitoring and configuration for baud rate
+ selection.
+
+ * Support APRS SSID configuration.
+
+ * Integrate with file managers. This provides icons for all of
+ our file types and associates our application with the files
+ so that using a file manager to open a AltOS data file
+ results in launching our application.
+
+ AltosUI Fixes
+
+ * Make the 'Graph' button on the landed tab work again.
+
+ * Make tests for Java on Windows a bit smarter, and also
+ provide the user with the option to skip installing Java for
+ cases where we just can't figure out what version is installed.
+++ /dev/null
-<?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.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
- </para>
- <para>
- AltOS New Features
- <itemizedlist>
- <listitem>
- <para>
- Add support for EasyMega boards.
- </para>
- </listitem>
- <listitem>
- <para>
- Make the APRS SSID be configurable. This lets you track
- different rockets on the same receiver without getting
- things mixed up.
- </para>
- </listitem>
- <listitem>
- <para>
- Report extra pyro channel continuity state on EasyMega and
- TeleMega via the beeper. This lets you easily verify flight
- readiness on these boards after powering up the electronics
- on the rail.
- </para>
- </listitem>
- <listitem>
- <para>
- Add lower telemetry data rates (2400 and 9600 bps) to
- increase telemetry radio range. This reduces the amount of
- data received as well as increasing battery consumption in
- the transmitter.
- </para>
- </listitem>
- <listitem>
- <para>
- Change TeleGPS to have only a single log, and append new
- data to it rather than using seperate per-flight logs. This
- avoids accidentally filling up log storage by turning
- TeleGPS on/off several times.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltOS Fixes
- <itemizedlist>
- <listitem>
- <para>
- Increase the maximum range for altitude values from +/-32767m
- to +/-2147483647m, allowing the flight computers to function
- correctly above the 32km level.
- </para>
- </listitem>
- <listitem>
- <para>
- Continuously test pyro firing conditions during delay stage,
- inhibiting the pyro channel if the test fails. This prevents
- firing pyro charges where the conditions were good before
- the delay, but become bad before the delay expires.
- </para>
- </listitem>
- <listitem>
- <para>
- Allow negative numbers in pyro configuration values. This
- lets you specify things like descending speed or
- deceleration.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI and TeleGPS New Features
- <itemizedlist>
- <listitem>
- <para>
- Support telemetry baud rate selection. Adds menus to
- the flight monitoring and configuration for baud rate
- selection.
- </para>
- </listitem>
- <listitem>
- <para>
- Support APRS SSID configuration.
- </para>
- </listitem>
- <listitem>
- <para>
- Integrate with file managers. This provides icons for all of
- our file types and associates our application with the files
- so that using a file manager to open a AltOS data file
- results in launching our application.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Fixes
- <itemizedlist>
- <listitem>
- <para>
- Make the 'Graph' button on the landed tab work again.
- </para>
- </listitem>
- <listitem>
- <para>
- Make tests for Java on Windows a bit smarter, and also
- provide the user with the option to skip installing Java for
- cases where we just can't figure out what version is installed.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>8 January 2015</date>
+<copyright>
+ <year>2015</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<date>15 July 2015</date>
+<copyright>
+ <year>2015</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+= Release Notes for Version 1.6.1
+:toc!:
+:doctype: article
+
+ Version 1.6.1 includes support for our updated TeleBT v3.0
+ product and bug fixes in in the flight software for all our boards
+ and ground station interfaces.
+
+ == AltOS
+
+ AltOS New Features:
+
+ * Add support for TeleBT v3.0 boards.
+
+ * Add support for uncompressed APRS data, providing support
+ for older APRS receivers. Uncompressed APRS data is less
+ precise, takes more bandwidth and doesn't have integrated
+ altitude data.
+
+ AltOS Fixes:
+
+ * Make TeleDongle and TeleBT more tolerant of data rate
+ variations from transmitting devices.
+
+ == AltosUI and TeleGPS Applications
+
+ AltosUI and TeleGPS New Features:
+
+ * Add map to Monitor Idle display. It's nice to be able to
+ verify that maps are working, instead of needing to use
+ Monitor Flight.
+
+ AltosUI and TeleGPS Fixes:
+
+ * Fix frequency configuration to round values instead of
+ truncate them, avoiding a common 1kHz error in the setting.
+
+ * Turn the Windows stub into a more useful program that can
+ launch the application with parameters so that file manager
+ icons work more reliably.
+
+ * Force KML export to use a C locale so that numbers are
+ formatted with '.' instead of ',' for a decimal separator in
+ non-US locales.
+
+ * Preload map tiles based on distance rather than number of
+ tiles; this means you get the same resolution covering the
+ entire area, rather than having high resolution near the
+ center and low resolution further away.
+
+ * Allow configuration of frequency and callsign in Monitor
+ Idle mode.
+
+ * Fix layout weirdness when resizing windows on
+ Windows. Windows shouldn't have giant blank spaces around
+ the useful content anymore.
+
+ * Fix layout weirdness when resizing windows on
+ Windows. Windows shouldn't have giant blank spaces around
+ the useful content anymore.
+
+ * Use a longer filter for descent speed values. This should
+ provide something more useful on the display, although it
+ will take longer to respond to changes now.
+
+ * Make Replay Flight run in realtime again. It had been set to
+ run at 10x speed by mistake.
+
+ == AltosDroid
+
+ AltosDroid New Features:
+
+ * Add offline map support using mapping code from AltosUI.
+
+ * Support TeleDongle (and TeleBT via USB) on devices
+ supporting USB On-The-Go.
+
+ * Display additional TeleMega pyro channel status in Pad tab.
+
+ * Switch between metric and imperial units.
+
+ * Monitor TeleBT battery voltage.
+
+ * Track multiple devices at the same time, selecting between
+ them with a menu or using the map.
+
+ * Add hybrid, satellite and terrain map types.
+
+ AltosDroid Fixes:
+
+ * Use standard Android display conventions so that a menu
+ button is available in the application title bar.
+
+ * Adjust layout to work on large and small screens; shrinking
+ the go/no-go lights in smaller environments to try and make
+ everything visible.
+
+ * Make voice announcements depend on current tab.
+
+ * Compute adjustment to current travel direction while in
+ motion towards rocket.
+++ /dev/null
-<?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>
--- /dev/null
+= Release Notes for Version 1.6
+:toc!:
+:doctype: article
+
+ Version 1.6 includes support for our updated TeleDongle v3.0
+ product and bug fixes in in the flight software for all our boards
+ and ground station interfaces.
+
+ == AltOS
+
+ AltOS New Features
+
+ * Add support for TeleDongle v3.0 boards.
+
+ AltOS Fixes
+
+ * Don't beep out the continuity twice by accident in idle mode.
+ If the battery voltage report takes longer than the initialiation
+ sequence, the igniter continuity would get reported twice.
+
+ * Record all 32 bits of gyro calibration data in TeleMega and
+ EasyMega log files. This fixes computation of the gyro rates
+ in AltosUI.
+
+ * Change TeleDongle LED usage. Green LED flashes when valid
+ packet is received. Red LED flashes when invalid packet is
+ received.
+
+ * Replace LPC11U14 SPI driver with non-interrupt version. The
+ interrupt code would occasionally wedge on long transfers
+ if interrupts were blocked for too long. This affects all
+ released TeleGPS products; if you have a TeleGPS device,
+ you'll want to reflash the firmware.
+
+ == AltosUI and TeleGPS Applications
+
+ AltosUI and TeleGPS New Features
+
+ * Compute tilt angle from TeleMega and EasyMega log
+ files. This duplicates the quaternion-based angle tracking
+ code from the flight firmware inside the ground station
+ software so that post-flight analysis can include evaluation
+ of the tilt angle.
+
+ * Shows the tool button window when starting with a data file
+ specified. This means that opening a data file from the file
+ manager will now bring up the main window to let you operate
+ the whole application.
+
+ AltosUI Fixes
+
+ * Show the 'Connecting' dialog when using Monitor Idle. Lets
+ you cancel the Monitor Idle startup when connecting over the
+ radio link.
+
+ * Make 'Monitor Idle' work for TeleGPS devices when connected
+ over USB. It's nice for testing without needing to broadcast
+ over the radio.
+
+ * Use different Windows API to discover USB devices. This
+ works better on my Windows 7 box, and will be used if the
+ older API fails to provide the necessary information.
+
+ * Look in more places in the registry to try and identify the
+ installed Java version on Windows. If you install the
+ default 32-bit version of Windows on a 64-bit OS, the Java
+ registry information is hiding \SOFTWARE\Wow6432Node for
+ some reason.
+
+ * Fix file association on Windows by searching for the
+ javaw.exe program instead of assuming it is in
+ %SYSTEMROOT%. This makes double-clicking on Altus Metrum
+ data files in the file manager work correctly.
+
+ * When replaying a file, put 'done' in the Age field when we
+ reach the end of the file, instead of continuing to count forever.
+
+ * In the Scan Channels code, wait for five seconds if we see
+ any packet. This is needed because AltOS now sends the
+ callsign, serial number and flight number only once every
+ five seconds these days.
+
+ * In the Scan Channels code, reset pending flight state
+ information each time we change channels. This avoids having
+ flight computers appear on multiple frequencies by accident.
+++ /dev/null
-<?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 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.
- </para>
- <para>
- AltOS New Features
- <itemizedlist>
- <listitem>
- <para>
- Add support for TeleDongle v3.0 boards.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltOS Fixes
- <itemizedlist>
- <listitem>
- <para>
- Don't beep out the continuity twice by accident in idle mode.
- If the battery voltage report takes longer than the initialiation
- sequence, the igniter continuity would get reported twice.
- </para>
- </listitem>
- <listitem>
- <para>
- Record all 32 bits of gyro calibration data in TeleMega and
- EasyMega log files. This fixes computation of the gyro rates
- in AltosUI.
- </para>
- </listitem>
- <listitem>
- <para>
- Change TeleDongle LED usage. Green LED flashes when valid
- packet is received. Red LED flashes when invalid packet is
- received.
- </para>
- </listitem>
- <listitem>
- <para>
- Replace LPC11U14 SPI driver with non-interrupt version. The
- interrupt code would occasionally wedge on long transfers
- if interrupts were blocked for too long. This affects all
- released TeleGPS products; if you have a TeleGPS device,
- you'll want to reflash the firmware.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI and TeleGPS New Features
- <itemizedlist>
- <listitem>
- <para>
- Compute tilt angle from TeleMega and EasyMega log
- files. This duplicates the quaternion-based angle tracking
- code from the flight firmware inside the ground station
- software so that post-flight analysis can include evaluation
- of the tilt angle.
- </para>
- </listitem>
- <listitem>
- <para>
- Shows the tool button window when starting with a data file
- specified. This means that opening a data file from the file
- manager will now bring up the main window to let you operate
- the whole application.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- AltosUI Fixes
- <itemizedlist>
- <listitem>
- <para>
- Show the 'Connecting' dialog when using Monitor Idle. Lets
- you cancel the Monitor Idle startup when connecting over the
- radio link.
- </para>
- </listitem>
- <listitem>
- <para>
- Make 'Monitor Idle' work for TeleGPS devices when connected
- over USB. It's nice for testing without needing to broadcast
- over the radio.
- </para>
- </listitem>
- <listitem>
- <para>
- Use different Windows API to discover USB devices. This
- works better on my Windows 7 box, and will be used if the
- older API fails to provide the necessary information.
- </para>
- </listitem>
- <listitem>
- <para>
- Look in more places in the registry to try and identify the
- installed Java version on Windows. If you install the
- default 32-bit version of Windows on a 64-bit OS, the Java
- registry information is hiding \SOFTWARE\Wow6432Node for
- some reason.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix file association on Windows by searching for the
- javaw.exe program instead of assuming it is in
- %SYSTEMROOT%. This makes double-clicking on Altus Metrum
- data files in the file manager work correctly.
- </para>
- </listitem>
- <listitem>
- <para>
- When replaying a file, put 'done' in the Age field when we
- reach the end of the file, instead of continuing to count forever.
- </para>
- </listitem>
- <listitem>
- <para>
- In the Scan Channels code, wait for five seconds if we see
- any packet. This is needed because AltOS now sends the
- callsign, serial number and flight number only once every
- five seconds these days.
- </para>
- </listitem>
- <listitem>
- <para>
- In the Scan Channels code, reset pending flight state
- information each time we change channels. This avoids having
- flight computers appear on multiple frequencies by accident.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-</article>
--- /dev/null
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<copyright>
+ <year>2015</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../themes/background.png" width="6.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</legalnotice>
--- /dev/null
+[appendix]
+== Release Notes
+
+ :leveloffset: 2
+ include::release-notes-1.6.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.6.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.5.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.4.2.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.4.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.4.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.3.2.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.3.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.3.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.2.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.2.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.1.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.0.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-0.9.2.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-0.9.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-0.8.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-0.7.1.raw[]
+
+ :leveloffset: 0
shown in the following table.
.Altus Metrum APRS Comments
- [options="header",cols="1,1,1"]
+ [options="header",cols="1,1,3"]
|====
|Field |Example |Description
--- /dev/null
+== TeleGPS Application
+
+ The TeleGPS application provides a graphical user interface for
+ interacting with the Altus Metrum product family. TeleGPS can
+ monitor telemetry data, configure devices and many other
+ tasks. The primary interface window is for displaying data
+ received over the telemetry link. There are additional
+ tasks available from the main window menu bar.
+
+ === Telemetry Monitoring
+
+ This is the window brought up when you start the
+ application. If you have a TeleDongle device connected
+ to the computer, it will automatically be selected for
+ telemetry monitoring
+
+ All telemetry data received are automatically recorded
+ in suitable log files. The name of the files includes
+ the current date and TeleGPS serial and flight
+ numbers.
+
+ The radio frequency being monitored by the TeleDongle
+ device is displayed at the top of the window. You can
+ configure the frequency by clicking on the frequency
+ box and selecting the desired frequency. The TeleGPS
+ application remembers the last frequency selected for
+ each TeleDongle and selects that automatically the
+ next time you use that device.
+
+ Below the TeleDongle frequency selector, the window
+ contains a few significant pieces of information about
+ the altimeter providing the telemetry data stream:
+
+ * The configured call-sign
+
+ * The device serial number
+
+ * The flight number. TeleGPS remembers how many times
+ it has flown.
+
+ * The Received Signal Strength Indicator value. This
+ lets you know how strong a signal TeleDongle is
+ receiving. The radio inside TeleDongle operates down
+ to about -100dBm; weaker signals may not be
+ receivable. The packet link uses error detection and
+ correction techniques which prevent incorrect data
+ from being reported.
+
+ * The age of the displayed data, in seconds since the
+ last successfully received telemetry packet. In
+ normal operation this will stay in the low single
+ digits. If the number starts counting up, then you
+ are no longer receiving data over the radio link
+ from the flight computer.
+
+ Finally, the largest portion of the window contains a set of
+ tabs, each of which contain some information about the TeleGPS
+ board. The final 'table' tab displays many of the raw telemetry
+ values in one place in a spreadsheet-like format.
+
+ ==== Map
+
+ The Map tab shows the TeleGPS track over time
+ on top of map data making it easy to locate
+ the device.
+
+ .TeleGPS Map View
+ image::telegps-map.png[width="5.5in"]
+
+ The map's default scale is approximately 3m
+ (10ft) per pixel. The map can be dragged using
+ the left mouse button. The map will attempt to
+ keep the rocket roughly centered while data is
+ being received.
+
+ You can adjust the style of map and the zoom
+ level with buttons on the right side of the
+ map window. You can draw a line on the map by
+ moving the mouse over the map with a button
+ other than the left one pressed, or by
+ pressing the left button while also holding
+ down the shift key. The length of the line in
+ real-world units will be shown at the start of
+ the line.
+
+ Images are fetched automatically via the
+ Google Maps Static API, and cached on disk for
+ reuse. If map images cannot be downloaded, the
+ rocket's path will be traced on a dark gray
+ background instead.
+
+ You can pre-load images for your favorite
+ launch sites before you leave home; check out
+ the 'Preload Maps' section below.
+
+ ==== Location
+
+ The Location tab shows the raw GPS data
+ received from TeleGPS.
+
+ .TeleGPS Location View
+ image::telegps-location.png[width="5.5in"]
+
+ ==== Status
+
+ The Status tab shows data relative to the
+ location of TeleGPS when the application first
+ received telemetry from it.
+
+ .TeleGPS Status View
+ image::telegps-status.png[width="5.5in"]
+
+ ==== Table
+
+ The Table tab shows detailed information about
+ the GPS receiver
+
+ .TeleGPS Information Table
+ image::telegps-table.png[width="5.5in"]
+
+ === TeleGPS Menus
+
+ TeleGPS has three or four menus at the top of
+ the window:
+
+ File::
+
+ New Window, Graph Data, Export Data, Load Maps,
+ Preferences, Close and Exit
+
+ Monitor::
+
+ Connect Device, Disconnect and Scan Channels
+
+ Device::
+
+ Download Data, Configure Device and Flash Device
+
+ Frequency::
+
+ This shows the current monitoring frequency with a
+ drop-down menu listing other configured
+ frequencies. You can change the set of frequencies
+ shown here from the Preferences dialog. This menu is
+ only shown when the TeleGPS application is connected
+ to a TeleDongle or TeleBT device.
+
+
+ ==== New Window
+
+ This creates another telemetry monitoring window, in case
+ you have multiple TeleDongle devices connected to the
+ computer.
+
+ === Graph Data
+
+ The Graph tab shows a plot of the the GPS data
+ collected. The X axis is time in seconds; there are a
+ variety of Y axes available for different kinds of
+ data. This window also allows you to see some
+ statistics computed from the data, and an overall map
+ of the entire data record.
+
+ ==== Data Graph
+
+ .TeleGPS Graph
+ image::telegps-graph-graph.png[width="5.5in"]
+
+ ==== Graph Configuration
+
+ .TeleGPS Graph Configuration
+ image::telegps-graph-configure.png[width="5.5in"]
+
+ This selects which graph elements to show, and, at the
+ bottom, lets you switch between metric and imperial
+ units
+
+ ==== Statistics
+
+ .TeleGPS Statistics
+ image::telegps-graph-stats.png[width="5.5in"]
+
+ Shows overall data computed from the flight.
+
+ ==== Map
+
+ .TeleGPS Map
+ image::telegps-graph-map.png[width="6in"]
+
+ Shows a map of the area overlaid with the GPS track. As with
+ the telemetry monitoring window, you can select the style
+ of map and zoom level using buttons along the side;
+ you can scroll the map by dragging within the map pressing
+ the left button and you can draw a line to measure
+ distances using either the left button with the shift key,
+ or any other button.
+
+ === Export Data
+
+ This tool takes the raw data files and makes them
+ available for external analysis. When you select this
+ button, you are prompted to select a data file, which
+ can be either a .eeprom or .telem. The .eeprom files
+ contain higher resolution and more continuous data,
+ while .telem files contain receiver signal strength
+ information. Next, a second dialog appears which is
+ used to select where to write the resulting file. It
+ has a selector to choose between CSV and KML file
+ formats.
+
+ ==== Comma Separated Value Format
+
+ This is a text file containing the data in a
+ form suitable for import into a spreadsheet or
+ other external data analysis tool. The first
+ few lines of the file contain the version and
+ configuration information from TeleGPS, then
+ there is a single header line which labels all
+ of the fields. All of these lines start with a
+ '#' character which many tools can be
+ configured to skip over.
+
+ The remaining lines of the file contain the
+ data, with each field separated by a comma and
+ at least one space. All of the sensor values
+ are converted to standard units, with the
+ barometric data reported in both pressure,
+ altitude and height above pad units.
+
+ ==== Keyhole Markup Language (for Google Earth)
+
+ This is the format used by Google Earth to provide an overlay
+ within that application. With this, you can use Google Earth to
+ see the whole path in 3D.
+
+ === Load Maps
+
+ .Load Maps Window
+ image::load-maps.png[width="5.2in"]
+
+ Before using TeleGPS, you can use Load Maps to load
+ map data in case you don't have access to the internet
+ while receiving telemetry.
+
+ There's a drop-down menu of rocket launch sites we
+ know about; if your favorites aren't there, please let
+ us know the lat/lon and name of the site. The contents
+ of this list are actually downloaded from our server
+ at run-time, so as new sites are sent in, they'll get
+ automatically added to this list. If the launch site
+ isn't in the list, you can manually enter the lat/lon
+ values
+
+ There are four different kinds of maps you can view;
+ you can select which to download by selecting as many
+ as you like from the available types:
+
+ Hybrid::
+ A combination of satellite imagery and road data. This
+ is the default view.
+
+ Satellite::
+ Just the satellite imagery without any annotation.
+
+ Roadmap::
+ Roads, political boundaries and a few geographic
+ features.
+
+ Terrain::
+ Contour intervals and shading that show hills and
+ valleys.
+
+ 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. Larger zoom levels show more detail, smaller
+ zoom levels less.
+
+ 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.
+
+ Clicking the 'Load Map' button will fetch images from
+ Google Maps; note that Google limits how many images
+ you can fetch at once, so if you load more than one
+ launch site, you may get some gray areas in the map
+ which indicate that Google is tired of sending data to
+ you. Try again later.
+
+ === Preferences
+
+ .TeleGPS Preferences Window
+ image::telegps-preferences.png[width="2.4in"]
+
+ AltosUI provides voice announcements during
+ flight so that you can keep your eyes on the
+ sky and still get information about the
+ current flight status. However, sometimes you
+ don't want to hear them.
+
+ Enable::
+ Turns all voice announcements on and off
+
+ Test Voice::
+ Plays a short message allowing you to verify
+ that the audio system is working and the volume settings
+ are reasonable
+
+ ==== Log Directory
+
+ AltosUI logs all telemetry data and saves all
+ TeleMetrum flash data to this directory. This
+ directory is also used as the staring point
+ when selecting data files for display or
+ export.
+
+ Click on the directory name to bring up a
+ directory choosing dialog, select a new
+ directory and click 'Select Directory' to
+ change where AltosUI reads and writes data
+ files.
+
+ ==== Callsign
+
+ This value is transmitted in each command
+ packet sent from TeleDongle and received from
+ an altimeter. It is not used in telemetry
+ mode, as the callsign configured in the
+ altimeter board is included in all telemetry
+ packets. Configure this with the AltosUI
+ operators call sign as needed to comply with
+ your local radio regulations.
+
+ Note that to successfully command a flight
+ computer over the radio (to configure the
+ altimeter, monitor idle, or fire pyro
+ charges), the callsign configured here must
+ exactly match the callsign configured in the
+ flight computer. This matching is case
+ sensitive.
+
+ ==== Imperial Units
+
+ This switches between metric units (meters)
+ and imperial units (feet and miles). This
+ affects the display of values use during
+ flight monitoring, configuration, data
+ graphing and all of the voice
+ announcements. It does not change the units
+ used when exporting to CSV files, those are
+ always produced in metric units.
+
+ ==== Font Size
+
+ Selects the set of fonts used in the flight
+ monitor window. Choose between the small,
+ medium and large sets.
+
+ ==== Serial Debug
+
+ This causes all communication with a connected
+ device to be dumped to the console from which
+ AltosUI was started. If you've started it from
+ an icon or menu entry, the output will simply
+ be discarded. This mode can be useful to debug
+ various serial communication issues.
+
+ ==== Manage Frequencies
+
+ This brings up a dialog where you can
+ configure the set of frequencies shown in the
+ various frequency menus. You can add as many
+ as you like, or even reconfigure the default
+ set. Changing this list does not affect the
+ frequency settings of any devices, it only
+ changes the set of frequencies shown in the
+ menus.
+
+ === Close
+
+ This closes the current window, leaving any other windows
+ open and the application running.
+
+ === Exit
+
+ This closes all TeleGPS windows and terminates the
+ application.
+
+ === Connect Device
+
+ Selecting this item brings up a dialog box listing all
+ of the connected TeleDongle devices. When you choose
+ one of these, AltosUI will display telemetry data as
+ received by the selected TeleDongle device.
+
+ .Device Selection Dialog
+ image::device-selection.png[width="3.1in"]
+
+ === Disconnect
+
+ Disconnects the currently connected TeleDongle or
+ TeleBT
+
+ === Scan Channels
+
+ .Radio Scanning Dialog
+ image::telegps-scan.png[width="3.1in"]
+
+ Scans the configured set of frequencies looking for
+ telemetry signals. A list of all of the discovered
+ signals is show; selecting one of those and clicking
+ on 'Monitor' will select that frequency in the
+ associated TeleGPS application window.
+
+ === Download Data
+
+ TeleGPS records data to its internal flash memory.
+ On-board data is recorded at the same rate as
+ telemetry but is not subject to radio drop-outs. As
+ such, it generally provides a more complete and
+ precise record. The 'Download Data' menu entry allows
+ you to read the flash memory and write it to disk.
+
+ Select the 'Download Data' menu entry to bring up a
+ list of connected TeleGPS devices. After the device
+ has been selected, a dialog showing the data stored in
+ the device will be shown allowing you to select which
+ entries to download and which to delete. You must
+ erase flights in order for the space they consume to
+ be reused by another track. This prevents accidentally
+ losing data if you neglect to download data before
+ starting TeleGPS again. Note that if there is no more
+ space available in the device, then no data will be
+ recorded.
+
+ The file name for each data log is computed
+ automatically from the recorded date, altimeter serial
+ number and flight number information.
+
+ === Configure Device
+
+ .TeleGPS Configuration Dialog
+ image::telegps-configure.png[width="3.6in"]
+
+ Select this button and then select any connected TeleGPS
+ device from the list provided.
+
+ The first few lines of the dialog provide information
+ about the connected device, including the product
+ name, software version and hardware serial
+ number. Below that are the individual configuration
+ entries.
+
+ At the bottom of the dialog, there are four buttons:
+
+ Save::
+ This writes any changes to the configuration parameter
+ block in flash memory. If you don't press this button,
+ any changes you make will be lost.
+
+ Reset::
+ This resets the dialog to the most recently saved
+ values, erasing any changes you have made.
+
+ Reboot::
+
+ This reboots the device. Use this to switch from idle
+ to pad mode by rebooting once the rocket is oriented
+ for flight, or to confirm changes you think you saved
+ are really saved.
+
+ Close::
+
+ This closes the dialog. Any unsaved changes will be
+ lost.
+
+ The rest of the dialog contains the parameters to be configured.
+
+ The rest of the dialog contains the parameters to be configured.
+
+ ==== Frequency
+
+ This configures which of the frequencies to use for
+ both telemetry and packet command mode. Note that if
+ you set this value via packet command mode, the
+ TeleDongle frequency will also be automatically
+ reconfigured to match so that communication will
+ continue afterwards.
+
+ ==== RF Calibration
+
+ The radios in every Altus Metrum device are calibrated
+ at the factory to ensure that they transmit and
+ receive on the specified frequency. If you need to
+ you can adjust the calibration by changing this value.
+ Do not do this without understanding what the value
+ means, read the appendix on calibration and/or the
+ source code for more information. To change a
+ TeleDongle's calibration, you must reprogram the unit
+ completely.
+
+ ==== Telemetry/RDF/APRS Enable
+
+ Enables the radio for transmission during
+ flight. When disabled, the radio will not
+ transmit anything during flight at all.
+
+ ==== Telemetry baud rate
+
+ This sets the modulation bit rate for data
+ transmission for both telemetry and packet
+ link mode. Lower bit rates will increase range
+ while reducing the amount of data that can be
+ sent and increasing battery consumption. All
+ telemetry is done using a rate 1/2 constraint
+ 4 convolution code, so the actual data
+ transmission rate is 1/2 of the modulation bit
+ rate specified here.
+
+ ==== APRS Interval
+
+ How often to transmit GPS information via APRS
+ (in seconds). When set to zero, APRS
+ transmission is disabled. This option is
+ available on TeleMetrum v2 and TeleMega
+ boards. TeleMetrum v1 boards cannot transmit
+ APRS packets. Note that a single APRS packet
+ takes nearly a full second to transmit, so
+ enabling this option will prevent sending any
+ other telemetry during that time.
+
+ ==== APRS SSID
+
+ Which SSID to report in APRS packets. By
+ default, this is set to the last digit of the
+ serial number, but can be configured to any
+ value from 0 to 9.
+
+ ==== Callsign
+
+ This sets the call sign included in each
+ telemetry packet. Set this as needed to
+ conform to your local radio regulations.
+
+ ==== Logging Trigger Motion
+
+ If TeleGPS moves less than this distance over
+ a long period of time, it will not log that
+ location, saving storage space.
+
+ ==== Position Reporting Interval
+
+ This sets how often TeleGPS reports position
+ information via telemetry and to the on-board
+ log. Reducing this value will save power and
+ logging memory consumption.
+
+ === Flash Device
+
+ This reprograms TeleGPS devices with new
+ firmware. Please read the directions for flashing
+ devices in the Updating Device Firmware chapter below.
--- /dev/null
+<subtitle>An Owner's Manual for the TeleGPS recording GPS tracker</subtitle>
+<author>
+ <firstname>Bdale</firstname>
+ <surname>Garbee</surname>
+ <email>bdale@gag.com</email>
+</author>
+<author>
+ <firstname>Keith</firstname>
+ <surname>Packard</surname>
+ <email>keithp@keithp.com</email>
+</author>
+<copyright>
+ <year>2015</year>
+ <holder>Bdale Garbee and Keith Packard</holder>
+</copyright>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="telegps-v1.0-top.jpg" width="4.0in"/>
+ </imageobject>
+</mediaobject>
+<legalnotice>
+ <para>
+ This document is released under the terms of the
+ <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons ShareAlike 3.0
+ </ulink>
+ license.
+ </para>
+</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>
+ Major release adding TeleDongle v3.0 support.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.5</revnumber>
+ <date>6 September 2014</date>
+ <revremark>
+ Major release adding EasyMega support.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.4.2</revnumber>
+ <date>17 August 2014</date>
+ <revremark>
+ Minor release fixing some Windows installation bugs.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.4.1</revnumber>
+ <date>20 June 2014</date>
+ <revremark>
+ Minor release fixing some installation bugs.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.4</revnumber>
+ <date>15 June 2014</date>
+ <revremark>
+ Initial version
+ </revremark>
+ </revision>
+</revhistory>
--- /dev/null
+== TeleGPS Quick Start Guide
+
+ TeleGPS is designed to be easy to use. Requiring no external
+ components, flying takes just a few steps.
+
+ First, download and install the software from
+ http://altusmetrum.org/AltOS. This will make sure that
+ you have the right device drivers installed.
+
+ Next, plug in the battery and USB cable and connect TeleGPS to
+ your computer. This will charge the battery and allow you to
+ configure the device.
+
+ Start the TeleGPS application and set the callsign and frequency
+ on your TeleGPS device; refer to the Configure TeleGPS section
+ in the TeleGPS Application chapter for instructions.
+
+ Unplug TeleGPS when the battery charger light goes green. This
+ will enable the radio and logging portions of the TeleGPS
+ firmware.
+
+ Connect TeleDongle to your computer and start TeleGPS or start
+ AltosDroid on your android device and connect to TeleBT. Set the
+ frequency to match the TeleGPS and you should be receiving telemetry.
--- /dev/null
+[appendix]
+== Release Notes
+
+ :leveloffset: 2
+ include::release-notes-1.6.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.6.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.5.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.4.2.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.4.1.raw[]
+
+ <<<<
+ :leveloffset: 2
+ include::release-notes-1.4.raw[]
--- /dev/null
+[appendix]
+== Technical Information
+
+ === GPS Receiver
+
+ TeleGPS uses the u-Blox Max-7Q GPS receiver.
+
+ === Micro-controller
+
+ TeleGPS uses an NXP LPC11U14 micro-controller. This
+ tiny CPU contains 32kB of flash for the application
+ and 4kB of RAM for temporary data storage.
+
+ === Lithium Polymer Battery
+
+ Shipping restrictions may prevent us from including a
+ battery battery with TeleGPS.
+
+ === Mechanical Considerations
+
+ TeleGPS is designed to be rugged enough for typical
+ rocketry applications. The 4 mounting holes on the
+ board are sized for use with 4-40 or M3 screws.
+
+ === On-board data storage
+
+ TeleGPS has 2MB of non-volatile storage, separate from
+ the code storage memory. The TeleGPS firmware uses
+ this to log information during flight.
--- /dev/null
+[appendix]
+== TeleGPS System Operation
+
+ === GFSK Telemetry
+
+ TeleGPS's native telemetry system doesn't use a
+ 'normal packet radio' mode like APRS because it's not
+ very efficient. The GFSK modulation we use is FSK
+ with the base-band pulses passed through a Gaussian
+ filter before they go into the modulator to limit the
+ transmitted bandwidth. When combined with forward
+ error correction and interleaving, this allows us to
+ have a very robust 19.2 kilobit data link with only
+ 10-40 milliwatts of transmit power, a whip antenna in
+ the rocket, and a hand-held Yagi on the ground. We've
+ had flights to above 21k feet AGL with great
+ reception, and calculations suggest we should be good
+ to well over 40k feet AGL with a 5-element yagi on the
+ ground with our 10mW units and over 100k feet AGL with
+ the 40mW devices.
+
+ === APRS
+
+ TeleGPS can send APRS if desired, and the interval
+ between APRS packets can be configured. As each APRS
+ packet takes a full second to transmit, we recommend
+ an interval of at least 5 seconds to avoid consuming
+ too much battery power or radio channel bandwidth. You
+ can configure the APRS interval; that
+ process is described in the Configure TeleGPS
+ section of the TeleGPS Application chapter.
+
+ AltOS uses the APRS compressed position report data
+ format, which provides for higher position precision
+ and shorter packets than the original APRS format. It
+ also includes altitude data, which is invaluable when
+ tracking rockets. We haven't found a receiver which
+ doesn't handle compressed positions, but it's just
+ possible that you have one, so if you have an older
+ device that can receive the raw packets but isn't
+ displaying position information, it's possible that
+ this is the cause.
+
+ The APRS packet format includes a comment field that
+ can have arbitrary text in it. AltOS uses this to send
+ status information about the flight computer. It sends
+ four fields as shown in the following table.
+
+ .TeleGPS APRS Comments
+ [options="header",cols="1,1,3"]
+ |====
+ |Field |Example |Description
+
+ |1
+ |L
+ |GPS Status U for unlocked, L for locked
+
+ |2
+ |6
+ |Number of Satellites in View
+
+ |3
+ |B4.0
+ |Altimeter Battery Voltage
+
+ |4
+ |1286
+ |Device Serial Number
+ |====
+
+ Here's an example of an APRS comment showing GPS lock with 6
+ satellites in view and a battery at 4.0V from device 1286.
+
+ ....
+ L6 B4.0 1286
+ ....
+
+ Make sure your battery is above 3.8V GPS is locked
+ with at least 5 or 6 satellites in view before
+ flying. If GPS is switching between L and U regularly,
+ then it doesn't have a good lock and you should wait
+ until it becomes stable.
+
+ If the GPS receiver loses lock, the APRS data
+ transmitted will contain the last position for which
+ GPS lock was available. You can tell that this has
+ happened by noticing that the GPS status character
+ switches from 'L' to 'U'. Before GPS has locked, APRS
+ will transmit zero for latitude, longitude and
+ altitude.
+
+ === Configurable Parameters
+
+ Configuring TeleGPS is very
+ simple; the few configurable parameters can all be set
+ using the TeleGPS application over USB. Read
+ the Configure TeleGPS section in the TeleGPS Software chapter below
+ for more information.
+
+ ==== Radio Frequency
+
+ Altus Metrum boards support radio frequencies in the 70cm
+ band. By default, the configuration interface provides a
+ list of 10 “standard” frequencies in 100kHz channels starting at
+ 434.550MHz. However, the firmware supports use of
+ any 50kHz multiple within the 70cm band. At any given
+ launch, we highly recommend coordinating when and by whom each
+ frequency will be used to avoid interference. And of course, both
+ TeleGPS and the receiver must be configured to the same
+ frequency to successfully communicate with each other.
+
+ ==== Callsign
+
+ This sets the callsign used for telemetry and APRS to
+ identify the device.
+
+ ==== Telemetry/RDF/APRS Enable
+
+ You can completely disable the radio, if necessary, leaving
+ TeleGPS only logging data to internal memory.
+
+ ==== APRS Interval
+
+ This selects how often APRS packets are transmitted. Set
+ this to zero to disable APRS without also disabling the
+ regular telemetry and RDF transmissions. As APRS takes a
+ full second to transmit a single position report, we
+ recommend sending packets no more than once every 5 seconds.
+
+ ==== Maximum Flight Log
+
+ Changing this value will set the maximum amount of flight
+ log storage that an individual flight will use. The
+ available storage is divided into as many flights of the
+ specified size as can fit in the available space. You can
+ download and erase individual flight logs. If you fill up
+ the available storage, future flights will not get logged
+ until you erase some of the stored ones.
+
+ ==== Logging Trigger Motion
+
+ If TeleGPS moves less than this distance over a long period
+ of time, it will not log that location, saving storage space.
+
+ ==== Position Reporting Interval
+
+ This sets how often TeleGPS reports position information via
+ telemetry and to the on-board log. Reducing this value will
+ save power and logging memory consumption.
--- /dev/null
+[appendix]
+== Updating Device Firmware
+
+ TeleGPS is programmed directly over its USB connectors.
+
+ You may wish to begin by ensuring you have current firmware images.
+ These are distributed as part of the TeleGPS software bundle that
+ also includes the TeleGPS ground station program. Newer ground
+ station versions typically work fine with older firmware versions,
+ so you don't need to update your devices just to try out new
+ software features. You can always download the most recent
+ version from http://www.altusmetrum.org/AltOS/
+
+ === Updating TeleGPS Firmware
+
+ . Attach a battery and power switch to the target
+ device. Power up the device.
+
+ . Using a Micro USB cable, connect the target device to
+ your computer's USB socket.
+
+ . Run TeleGPS, and select 'Flash Device' from the
+ Device menu.
+
+ . Select the target device in the Device Selection
+ dialog.
+
+ . Select the image you want to flash to the device,
+ which should have a name in the form
+ <product>-v<product-version>-<software-version>.ihx,
+ such as TeleGPS-v1.0-1.4.0.ihx.
+
+ . Make sure the configuration parameters are reasonable
+ looking. If the serial number and/or RF configuration
+ values aren't right, you'll need to change them.
+
+ . Hit the 'OK' button and the software should proceed
+ to flash the device with new firmware, showing a
+ progress bar.
+
+ . Verify that the device is working by using the
+ 'Configure Device item to check over the
+ configuration.
--- /dev/null
+== Using TeleGPS Hardware
+
+ === Hooking Up Lithium Polymer Batteries
+
+ TeleGPS has a two pin JST PH series connector to connect up
+ a single-cell Lithium Polymer cell (3.7V nominal). You can
+ purchase matching batteries from the Altus Metrum store, or
+ other vendors, or you can make your own. Pin 1 of the
+ connector is positive, pin 2 is negative. Spark Fun sells a
+ cable with the connector attached, which they call a
+ link:https://www.sparkfun.com/products/9914[JST Jumper 2 Wire Assembly]
+
+
+ [WARNING]
+ Many RC vendors also sell lithium polymer batteries with
+ this same connector. All that we have found use the opposite
+ polarity, and if you use them that way, you will damage or
+ destroy TeleGPS.
+
+ === On-board Data Recording
+
+ TeleGPS logs GPS data at a user-configurable
+ rate. Data are logged to a 2MB on-board flash memory
+ part, which can be partitioned into several
+ equal-sized blocks, one for each flight. 64kB of this
+ storage are reserved to hold configuration data,
+ leaving 1984kB for flight data.
+
+ The on-board flash is partitioned into separate flight
+ logs, each of a fixed maximum size. Increase the
+ maximum size of each log and you reduce the number of
+ flights that can be stored. Decrease the size and you
+ can store more flights.
+
+ To compute the amount of space needed for a single
+ log, you can divide the expected time (in seconds) by
+ the sample period (by default, 1 second per sample)
+ and then multiply the result by 32 bytes per
+ sample. For instance, a sample period of 1 second and
+ a flight lasting one hour will take 32 * 3600 = 115200
+ bytes. TeleGPS does try to reduce log space used by
+ not recording position information when it isn't
+ moving, so actual space consumed may be less than
+ this.
+
+ The default size allows for four flights of 496kB
+ each, which provides over four hours of logging at 1
+ sample per second.
+
+ TeleGPS will not overwrite existing flight data, so be
+ sure to download flight data and erase it from the
+ onboard flash before it fills up. TeleGPS will still
+ report telemetry even if memory is full, so the only
+ thing you will lose is the on-board data log.
+
+ === Installation
+
+ The battery connectors are a standard 2-pin JST
+ connector and match batteries sold by Spark Fun. These
+ batteries are single-cell Lithium Polymer batteries
+ that nominally provide 3.7 volts. Other vendors sell
+ similar batteries for RC aircraft using mating
+ connectors, however the polarity for those is
+ generally reversed from the batteries used by Altus
+ Metrum products. In particular, the Tenergy batteries
+ supplied for use in Featherweight flight computers are
+ not compatible with Altus Metrum flight computers or
+ battery chargers.
+
+ [WARNING]
+ Check polarity and voltage before connecting any
+ battery not purchased from Altus Metrum or Spark
+ Fun.
+
+ TeleGPS uses an integrate GPS patch antenna and won't
+ receive GPS signals if installed inside a metal or
+ carbon fiber compartment. Test GPS reception and
+ telemetry transmission with the system installed and
+ all other electronics powered up to verify signal
+ reception and make sure there isn't any interference
+ from other systems.
--- /dev/null
+= TeleGPS Owner's Manual
+:doctype: book
+:numbered:
+
+ include::dedication.raw[]
+
+ include::telegps-quick-start.raw[]
+
+ include::telegps-using.raw[]
+
+ include::telegps-application.raw[]
+
+ include::telegps-system-operation.raw[]
+
+ include::handling.raw[]
+
+ include::telegps-specs.raw[]
+
+ include::telegps-updating-firmware.raw[]
+
+ include::telegps-release-notes.raw[]
+++ /dev/null
-<?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">
-<book>
- <title>TeleGPS Owner's Manual</title>
- <subtitle>A recording GPS tracker</subtitle>
- <bookinfo>
- <author>
- <firstname>Keith</firstname>
- <surname>Packard</surname>
- </author>
- <copyright>
- <year>2015</year>
- <holder>Bdale Garbee and Keith Packard</holder>
- </copyright>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-v1.0-top.jpg" width="4in"/>
- </imageobject>
- </mediaobject>
- <legalnotice>
- <para>
- This document is released under the terms of the
- <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
- Creative Commons ShareAlike 3.0
- </ulink>
- license.
- </para>
- </legalnotice>
- <revhistory>
- <revision>
- <revnumber>1.6</revnumber>
- <date>8 January 2015</date>
- <revremark>
- Major release adding TeleDongle v3.0 support.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.4.1</revnumber>
- <date>20 June 2014</date>
- <revremark>
- Minor release fixing some installation bugs.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.4</revnumber>
- <date>13 June 2014</date>
- <revremark>
- Initial release
- </revremark>
- </revision>
- </revhistory>
- </bookinfo>
- <dedication>
- <title>Acknowledgements</title>
- <para>
- Have fun using these products, and we hope to meet all of you
- out on the rocket flight line somewhere.
- <literallayout>
-Bdale Garbee, KB0G
-NAR #87103, TRA #12201
-
-Keith Packard, KD7SQG
-NAR #88757, TRA #12200
- </literallayout>
- </para>
- </dedication>
- <chapter>
- <title>Quick Start Guide</title>
- <para>
- TeleGPS is designed to be easy to use. Requiring no external
- components, flying takes just a few steps.
- </para>
- <para>
- First, download and install the software from <ulink
- url="http://altusmetrum.org/AltOS"/>. This will make sure that
- you have the right device drivers installed.
- </para>
- <para>
- Next, plug in the battery and USB cable and connect TeleGPS to
- your computer. This will charge the battery and allow you to
- configure the device.
- </para>
- <para>
- Start the TeleGPS application and set the callsign and frequency
- on your TeleGPS device; refer to the Configure TeleGPS section
- in the TeleGPS Application chapter for instructions.
- </para>
- <para>
- Unplug TeleGPS when the battery charger light goes green. This
- will enable the radio and logging portions of the TeleGPS
- firmware.
- </para>
- <para>
- Connect TeleDongle to your computer and start TeleGPS or start
- AltosDroid on your android device and connect to TeleBT. Set the
- frequency to match the TeleGPS and you should be receiving telemetry.
- </para>
- </chapter>
- <chapter>
- <title>Handling Precautions</title>
- <para>
- All Altus Metrum products are sophisticated electronic devices.
- When handled gently and properly installed in an air-frame, they
- will deliver impressive results. However, as with all electronic
- devices, there are some precautions you must take.
- </para>
- <para>
- The Lithium polymer batteries have an
- extraordinary power density. This is great because we can fly with
- much less battery mass... but if they are punctured
- or their contacts are allowed to short, they can and will release their
- energy very rapidly!
- Thus we recommend that you take some care when handling TeleGPS
- to keep conductive material from coming in contact with the exposed metal elements.
- </para>
- <para>
- As with all other rocketry electronics, Altus Metrum devices must
- be protected from exposure to corrosive motor exhaust and ejection
- charge gasses.
- </para>
- </chapter>
- <chapter>
- <title>TeleGPS Hardware</title>
- <section>
- <title>Hooking Up Lithium Polymer Batteries</title>
- <para>
- TeleGPS has a two pin JST PH series connector to connect up
- a single-cell Lithium Polymer cell (3.7V nominal). You can
- purchase matching batteries from the Altus Metrum store, or
- other vendors, or you can make your own. Pin 1 of the
- connector is positive, pin 2 is negative. Spark Fun sells a
- cable with the connector attached, which they call a <ulink
- url="https://www.sparkfun.com/products/9914">JST Jumper 2
- Wire Assembly</ulink>.
- </para>
- <para>
- Many RC vendors also sell lithium polymer batteries with
- this same connector. All that we have found use the opposite
- polarity, and if you use them that way, you will damage or
- destroy TeleGPS.
- </para>
- </section>
- <section>
- <title>On-board Data Recording</title>
- <para>
- TeleGPS logs GPS data at a user-configurable rate. Data are
- logged to a 2MB on-board flash memory part, which can be
- partitioned into several equal-sized blocks, one for each
- flight. 64kB of this storage are reserved to hold
- configuration data, leaving 1984kB for flight data.
- </para>
- <para>
- The on-board flash is partitioned into separate flight logs,
- each of a fixed maximum size. Increase the maximum size of
- each log and you reduce the number of flights that can be
- stored. Decrease the size and you can store more flights.
- </para>
- <para>
- To compute the amount of space needed for a single log, you
- can divide the expected time (in seconds) by the sample period
- (by default, 1 second per sample) and then multiply the result
- by 32 bytes per sample. For instance, a sample period of 1
- second and a flight lasting one hour will take 32 * 3600 =
- 115200 bytes. TeleGPS does try to reduce log space used by not
- recording position information when it isn't moving, so actual
- space consumed may be less than this.
- </para>
- <para>
- The default size allows for four flights of 496kB each, which
- provides over four hours of logging at 1 sample per second.
- </para>
- <para>
- TeleGPS will not overwrite existing flight data, so be sure to
- download flight data and erase it from the onboard flash
- before it fills up. TeleGPS will still report telemetry even
- if memory is full, so the only thing you will lose is the
- on-board data log.
- </para>
- </section>
- <section>
- <title>Installation</title>
- <para>
- The battery connectors are a standard 2-pin JST connector and
- match batteries sold by Spark Fun. These batteries are
- single-cell Lithium Polymer batteries that nominally provide 3.7
- volts. Other vendors sell similar batteries for RC aircraft
- using mating connectors, however the polarity for those is
- generally reversed from the batteries used by Altus Metrum
- products. In particular, the Tenergy batteries supplied for use
- in Featherweight flight computers are not compatible with Altus
- Metrum flight computers or battery chargers. <emphasis>Check
- polarity and voltage before connecting any battery not purchased
- from Altus Metrum or Spark Fun.</emphasis>
- </para>
- <para>
- TeleGPS uses an integrate GPS patch antenna and won't
- receive GPS signals if installed inside a metal or carbon
- fiber compartment. Test GPS reception and telemetry
- transmission with the system installed and all other
- electronics powered up to verify signal reception and make
- sure there isn't any interference from other systems.
- </para>
- </section>
- </chapter>
- <chapter>
- <title>System Operation</title>
- <section>
- <title>GFSK Telemetry</title>
- <para>
- TeleGPS's native telemetry system doesn't use a 'normal packet
- radio' mode like APRS because it's not very efficient. The
- GFSK modulation we use is FSK with the base-band pulses passed
- through a Gaussian filter before they go into the modulator to
- limit the transmitted bandwidth. When combined with forward
- error correction and interleaving, this allows us to have a
- very robust 19.2 kilobit data link with only 10-40 milliwatts
- of transmit power, a whip antenna in the rocket, and a
- hand-held Yagi on the ground. We've had flights to above 21k
- feet AGL with great reception, and calculations suggest we
- should be good to well over 40k feet AGL with a 5-element yagi
- on the ground with our 10mW units and over 100k feet AGL with
- the 40mW devices.
- </para>
- </section>
- <section>
- <title>APRS</title>
- <para>
- TeleGPS can send APRS if desired, and the
- interval between APRS packets can be configured. As each APRS
- packet takes a full second to transmit, we recommend an
- interval of at least 5 seconds to avoid consuming too much
- battery power or radio channel bandwidth. You can configure
- the APRS interval using AltosUI; that process is described in
- the Configure Altimeter section of the AltosUI chapter.
- </para>
- <para>
- AltOS uses the APRS compressed position report data format,
- which provides for higher position precision and shorter
- packets than the original APRS format. It also includes
- altitude data, which is invaluable when tracking rockets. We
- haven't found a receiver which doesn't handle compressed
- positions, but it's just possible that you have one, so if you
- have an older device that can receive the raw packets but
- isn't displaying position information, it's possible that this
- is the cause.
- </para>
- <para>
- The APRS packet format includes a comment field that can have
- arbitrary text in it. AltOS uses this to send status
- information about the flight computer. It sends four fields as
- shown in the following table.
- </para>
- <table frame='all'>
- <title>Altus Metrum APRS Comments</title>
- <?dbfo keep-together="always"?>
- <tgroup cols='3' align='center' colsep='1' rowsep='1'>
- <colspec align='center' colwidth='*' colname='Field'/>
- <colspec align='center' colwidth='*' colname='Example'/>
- <colspec align='center' colwidth='4*' colname='Description'/>
- <thead>
- <row>
- <entry align='center'>Field</entry>
- <entry align='center'>Example</entry>
- <entry align='center'>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>1</entry>
- <entry>L</entry>
- <entry>GPS Status U for unlocked, L for locked</entry>
- </row>
- <row>
- <entry>2</entry>
- <entry>6</entry>
- <entry>Number of Satellites in View</entry>
- </row>
- <row>
- <entry>3</entry>
- <entry>B4.0</entry>
- <entry>Battery Voltage</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>
- Here's an example of an APRS comment showing GPS lock with 6
- satellites in view and a battery at 4.0V.
- <screen>
- L6 B4.0
- </screen>
- </para>
- <para>
- Make sure your primary battery is above 3.8V and GPS is locked
- with at least 5 or 6 satellites in view before starting. If GPS
- is switching between L and U regularly, then it doesn't have a
- good lock and you should wait until it becomes stable.
- </para>
- <para>
- If the GPS receiver loses lock, the APRS data transmitted will
- contain the last position for which GPS lock was
- available. You can tell that this has happened by noticing
- that the GPS status character switches from 'L' to 'U'. Before
- GPS has locked, APRS will transmit zero for latitude,
- longitude and altitude.
- </para>
- </section>
- <section>
- <title>Configurable Parameters</title>
- <para>
- Configuring TeleGPS is very
- simple; the few configurable parameters can all be set
- using the TeleGPS application over USB. Read
- the Configure TeleGPS section in the TeleGPS Software chapter below
- for more information.
- </para>
- <section>
- <title>Radio Frequency</title>
- <para>
- Altus Metrum boards support radio frequencies in the 70cm
- band. By default, the configuration interface provides a
- list of 10 “standard” frequencies in 100kHz channels starting at
- 434.550MHz. However, the firmware supports use of
- any 50kHz multiple within the 70cm band. At any given
- launch, we highly recommend coordinating when and by whom each
- frequency will be used to avoid interference. And of course, both
- TeleGPS and the receiver must be configured to the same
- frequency to successfully communicate with each other.
- </para>
- </section>
- <section>
- <title>Callsign</title>
- <para>
- This sets the callsign used for telemetry and APRS to
- identify the device.
- </para>
- </section>
- <section>
- <title>Telemetry/RDF/APRS Enable</title>
- <para>
- You can completely disable the radio, if necessary, leaving
- TeleGPS only logging data to internal memory.
- </para>
- </section>
- <section>
- <title>APRS Interval</title>
- <para>
- This selects how often APRS packets are transmitted. Set
- this to zero to disable APRS without also disabling the
- regular telemetry and RDF transmissions. As APRS takes a
- full second to transmit a single position report, we
- recommend sending packets no more than once every 5 seconds.
- </para>
- </section>
- <section>
- <title>Maximum Flight Log</title>
- <para>
- Changing this value will set the maximum amount of flight
- log storage that an individual flight will use. The
- available storage is divided into as many flights of the
- specified size as can fit in the available space. You can
- download and erase individual flight logs. If you fill up
- the available storage, future flights will not get logged
- until you erase some of the stored ones.
- </para>
- </section>
- <section>
- <title>Logging Trigger Motion</title>
- <para>
- If TeleGPS moves less than this distance over a long period
- of time, it will not log that location, saving storage space.
- </para>
- </section>
- <section>
- <title>Position Reporting Interval</title>
- <para>
- This sets how often TeleGPS reports position information via
- telemetry and to the on-board log. Reducing this value will
- save power and logging memory consumption.
- </para>
- </section>
- </section>
- </chapter>
- <chapter>
- <title>TeleGPS Application</title>
- <para>
- The TeleGPS application provides a graphical user interface for
- interacting with the Altus Metrum product family. TeleGPS can
- monitor telemetry data, configure devices and many other
- tasks. The primary interface window is for displaying data
- received over the telemetry link. There are additional
- tasks available from the main window menu bar. This chapter
- is split into sections, each of which documents one of the tasks
- provided from the top-level toolbar.
- </para>
- <section>
- <title>Telemetry Monitoring</title>
- <para>
- This is the window brought up when you start the
- application. If you have a TeleDongle device connected to the
- computer, it will automatically be selected for telemetry monitoring
- </para>
- <para>
- All telemetry data received are automatically recorded in
- suitable log files. The name of the files includes the current
- date and TeleGPS serial and flight numbers.
- </para>
- <para>
- The radio frequency being monitored by the TeleDongle device
- is displayed at the top of the window. You can configure the
- frequency by clicking on the frequency box and selecting the
- desired frequency. The TeleGPS application remembers the last
- frequency selected for each TeleDongle and selects that
- automatically the next time you use that device.
- </para>
- <para>
- Below the TeleDongle frequency selector, the window contains a few
- significant pieces of information about the altimeter providing
- the telemetry data stream:
- </para>
- <itemizedlist>
- <listitem>
- <para>The configured call-sign</para>
- </listitem>
- <listitem>
- <para>The device serial number</para>
- </listitem>
- <listitem>
- <para>The flight number. TeleGPS remembers how many
- times it has flown.
- </para>
- </listitem>
- <listitem>
- <para>
- The Received Signal Strength Indicator value. This lets
- you know how strong a signal TeleDongle is receiving. The
- radio inside TeleDongle operates down to about -100dBm;
- weaker signals may not be receivable. The packet link uses
- error detection and correction techniques which prevent
- incorrect data from being reported.
- </para>
- </listitem>
- <listitem>
- <para>
- The age of the displayed data, in seconds since the last
- successfully received telemetry packet. In normal operation
- this will stay in the low single digits. If the number starts
- counting up, then you are no longer receiving data over the radio
- link from the flight computer.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Finally, the largest portion of the window contains a set of
- tabs, each of which contain some information about the TeleGPS
- board. The final 'table' tab displays many of the raw telemetry
- values in one place in a spreadsheet-like format.
- </para>
- <section>
- <title>Map</title>
- <para>
- The Map tab shows the TeleGPS track over time on top of map
- data making it easy to locate the device.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-map.png" width="5.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- The map's default scale is approximately 3m (10ft) per pixel. The map
- can be dragged using the left mouse button. The map will attempt
- to keep the rocket roughly centered while data is being received.
- </para>
- <para>
- You can adjust the style of map and the zoom level with
- buttons on the right side of the map window. You can draw a
- line on the map by moving the mouse over the map with a
- button other than the left one pressed, or by pressing the
- left button while also holding down the shift key. The
- length of the line in real-world units will be shown at the
- start of the line.
- </para>
- <para>
- Images are fetched automatically via the Google Maps Static API,
- and cached on disk for reuse. If map images cannot be downloaded,
- the rocket's path will be traced on a dark gray background
- instead.
- </para>
- <para>
- You can pre-load images for your favorite launch sites
- before you leave home; check out the 'Preload Maps' section below.
- </para>
- </section>
- <section>
- <title>Location</title>
- <para>
- The Location tab shows the raw GPS data received from TeleGPS.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-location.png" width="5.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Status</title>
- <para>
- The Status tab shows data relative to the location of
- TeleGPS when the application first received telemetry from
- it.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-status.png" width="5.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Table</title>
- <para>
- The Table tab shows detailed information about the GPS
- receiver
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-table.png" width="5.5in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- </section>
- <!--
- <variablelist>
- <varlistentry>
- <term></term>
- <listitem>
- <para>
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- -->
- <section>
- <title>TeleGPS Menus</title>
- <para>
- TeleGPS has three or four menus at the top of the window:
- <variablelist>
- <varlistentry>
- <term>File</term>
- <listitem>
- <para>
- New Window, Graph Data, Export Data, Load Maps, Preferences, Close and Exit
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Monitor</term>
- <listitem>
- <para>
- Connect Device, Disconnect and Scan Channels
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Device</term>
- <listitem>
- <para>
- Download Data, Configure Device and Flash Device
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Frequency</term>
- <listitem>
- <para>
- This shows the current monitoring frequency with a
- drop-down menu listing other configured
- frequencies. You can change the set of frequencies
- shown here from the Preferences dialog. This menu is
- only shown when the TeleGPS application is connected
- to a TeleDongle or TeleBT device.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <section>
- <title>New Window</title>
- <para>
- This creates another telemetry monitoring window, in case
- you have multiple TeleDongle devices connected to the
- computer.
- </para>
- </section>
- <section>
- <title>Graph Data</title>
- <para>
- This brings up a file dialog to load a saved log, either
- a .telem file of recorded telemetry or .eeprom of saved
- data from on-board memory. It looks a bit like the flight
- monitoring window, using a selection of tabs to show
- different views of the saved data.
- </para>
- <section>
- <title>Graph</title>
- <para>
- The Graph tab shows a plot of the the GPS data
- collected. The X axis is time in seconds; there are a
- variety of Y axes available for different kinds of data.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-graph-graph.png" width="6in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Configure Graph</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-graph-configure.png" width="6in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- This selects which graph elements to show, and, at the
- bottom, lets you switch between metric and imperial units
- </para>
- </section>
- <section>
- <title>Statistics</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-graph-stats.png" width="6in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- Shows overall data computed from the flight.
- </para>
- </section>
- <section>
- <title>Map</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-graph-map.png" width="6in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- Shows a map of the area overlaid with the GPS track. As with
- the telemetry monitoring window, you can select the style
- of map and zoom level using buttons along the side;
- you can scroll the map by dragging within the map pressing
- the left button and you can draw a line to measure
- distances using either the left button with the shift key,
- or any other button.
- </para>
- </section>
- </section>
- <section>
- <title>Export Data</title>
- <para>
- This tool takes the raw data files and makes them available for
- external analysis. When you select this button, you are prompted to
- select a data file, which can be either a .eeprom or .telem.
- The .eeprom files contain higher resolution and more continuous data,
- while .telem files contain receiver signal strength information.
- Next, a second dialog appears which is used to select
- where to write the resulting file. It has a selector to choose
- between CSV and KML file formats.
- </para>
- <section>
- <title>Comma Separated Value Format</title>
- <para>
- This is a text file containing the data in a form suitable for
- import into a spreadsheet or other external data analysis
- tool. The first few lines of the file contain the version and
- configuration information from TeleGPS, then
- there is a single header line which labels all of the
- fields. All of these lines start with a '#' character which
- many tools can be configured to skip over.
- </para>
- <para>
- The remaining lines of the file contain the data, with each
- field separated by a comma and at least one space. All of
- the sensor values are converted to standard units, with the
- barometric data reported in both pressure, altitude and
- height above pad units.
- </para>
- </section>
- <section>
- <title>Keyhole Markup Language (for Google Earth)</title>
- <para>
- This is the format used by Google Earth to provide an overlay
- within that application. With this, you can use Google Earth to
- see the whole flight path in 3D.
- </para>
- </section>
- </section>
- <section>
- <title>Load Maps</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="load-maps.png" width="5.2in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- Before using TeleGPS, you can use Load Maps to load map data
- in case you don't have access to the internet while
- receiving telemetry.
- </para>
- <para>
- There's a drop-down menu of rocket launch sites we know
- about; if your favorites aren't there, please let us know
- the lat/lon and name of the site. The contents of this list
- are actually downloaded from our server at run-time, so as
- new sites are sent in, they'll get automatically added to
- this list. If the launch site isn't in the list, you can
- manually enter the lat/lon values
- </para>
- <para>
- There are four different kinds of maps you can view; you can
- select which to download by selecting as many as you like from
- the available types:
- <variablelist>
- <varlistentry>
- <term>Hybrid</term>
- <listitem>
- <para>
- A combination of satellite imagery and road data. This
- is the default view.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Satellite</term>
- <listitem>
- <para>
- Just the satellite imagery without any annotation.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Roadmap</term>
- <listitem>
- <para>
- Roads, political boundaries and a few geographic features.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Terrain</term>
- <listitem>
- <para>
- Contour intervals and shading that show hills and
- valleys.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <para>
- 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.
- </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.
- </para>
- <para>
- Clicking the 'Load Map' button will fetch images from Google
- Maps; note that Google limits how many images you can fetch at
- once, so if you load more than one launch site, you may get
- some gray areas in the map which indicate that Google is tired
- of sending data to you. Try again later.
- </para>
- </section>
- <section>
- <title>Preferences</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-preferences.png" width="2.4in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <section>
- <title>Voice Settings</title>
- <para>
- AltosUI provides voice announcements during flight so that you
- can keep your eyes on the sky and still get information about
- the current flight status. However, sometimes you don't want
- to hear them.
- </para>
- <variablelist>
- <varlistentry>
- <term>Enable</term>
- <listitem>
- <para>Turns all voice announcements on and off</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Test Voice</term>
- <listitem>
- <para>
- Plays a short message allowing you to verify
- that the audio system is working and the volume settings
- are reasonable
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
- <section>
- <title>Log Directory</title>
- <para>
- AltosUI logs all telemetry data and saves all TeleMetrum flash
- data to this directory. This directory is also used as the
- staring point when selecting data files for display or export.
- </para>
- <para>
- Click on the directory name to bring up a directory choosing
- dialog, select a new directory and click 'Select Directory' to
- change where AltosUI reads and writes data files.
- </para>
- </section>
- <section>
- <title>Callsign</title>
- <para>
- This value is transmitted in each command packet sent from
- TeleDongle and received from an altimeter. It is not used in
- telemetry mode, as the callsign configured in the altimeter board
- is included in all telemetry packets. Configure this
- with the AltosUI operators call sign as needed to comply with
- your local radio regulations.
- </para>
- <para>
- Note that to successfully command a flight computer over the radio
- (to configure the altimeter, monitor idle, or fire pyro charges),
- the callsign configured here must exactly match the callsign
- configured in the flight computer. This matching is case
- sensitive.
- </para>
- </section>
- <section>
- <title>Imperial Units</title>
- <para>
- This switches between metric units (meters) and imperial
- units (feet and miles). This affects the display of values
- use during flight monitoring, configuration, data graphing
- and all of the voice announcements. It does not change the
- units used when exporting to CSV files, those are always
- produced in metric units.
- </para>
- </section>
- <section>
- <title>Serial Debug</title>
- <para>
- This causes all communication with a connected device to be
- dumped to the console from which AltosUI was started. If
- you've started it from an icon or menu entry, the output
- will simply be discarded. This mode can be useful to debug
- various serial communication issues.
- </para>
- </section>
- <section>
- <title>Font Size</title>
- <para>
- Selects the set of fonts used in the flight monitor
- window. Choose between the small, medium and large sets.
- </para>
- </section>
- <section>
- <title>Look & Feel</title>
- <para>
- Adjust the style of the windows. By default, the TeleGPS
- application attempts to blend in with the native style.
- </para>
- </section>
- <section>
- <title>Manage Frequencies</title>
- <para>
- This brings up a dialog where you can configure the set of
- frequencies shown in the various frequency menus. You can
- add as many as you like, or even reconfigure the default
- set. Changing this list does not affect the frequency
- settings of any devices, it only changes the set of
- frequencies shown in the menus.
- </para>
- </section>
- </section>
- <section>
- <title>Close</title>
- <para>
- This closes the current window, leaving any other windows
- open and the application running.
- </para>
- </section>
- <section>
- <title>Exit</title>
- <para>
- This closes all TeleGPS windows and terminates the application.
- </para>
- </section>
- <section>
- <title>Connect Device</title>
- <para>
- Selecting this item brings up a dialog box listing all of
- the connected TeleDongle devices. When you choose one of
- these, AltosUI will display telemetry data as received by
- the selected TeleDongle device.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="device-selection.png" width="3.1in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Disconnect</title>
- <para>
- Disconnects the currently connected TeleDongle or TeleBT
- </para>
- </section>
- <section>
- <title>Scan Channels</title>
- <para>
- Scans the configured set of frequencies looking for
- telemetry signals. A list of all of the discovered signals
- is show; selecting one of those and clicking on 'Monitor'
- will select that frequency in the associated TeleGPS
- application window.
- </para>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-scan.png" width="3.1in"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- </section>
- <section>
- <title>Download Data</title>
- <para>
- TeleGPS records data to its internal flash memory.
- On-board data is recorded at the same rate as telemetry
- but is not subject to radio drop-outs. As
- such, it generally provides a more complete and precise record.
- The 'Download Data' menu entry allows you to read the
- flash memory and write it to disk.
- </para>
- <para>
- Select the 'Download Data' menu entry to bring up a list of
- connected TeleGPS devices. After the device has been
- selected, a dialog showing the data stored in the
- device will be shown allowing you to select which entries to
- download and which to delete. You must erase flights in order for the space they
- consume to be reused by another track. This prevents
- accidentally losing data if you neglect to download
- data before starting TeleGPS again. Note that if there is no more
- space available in the device, then no data will be recorded.
- </para>
- <para>
- The file name for each data log is computed automatically
- from the recorded date, altimeter serial number and flight
- number information.
- </para>
- </section>
- <section>
- <title>Configure Device</title>
- <informalfigure>
- <mediaobject>
- <imageobject>
- <imagedata fileref="telegps-configure.png" width="3.6in" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </informalfigure>
- <para>
- Select this button and then select any connected TeleGPS
- device from the list provided.
- </para>
- <para>
- The first few lines of the dialog provide information about the
- connected device, including the product name,
- software version and hardware serial number. Below that are the
- individual configuration entries.
- </para>
- <para>
- At the bottom of the dialog, there are four buttons:
- </para>
- <variablelist>
- <varlistentry>
- <term>Save</term>
- <listitem>
- <para>
- This writes any changes to the
- configuration parameter block in flash memory. If you don't
- press this button, any changes you make will be lost.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Reset</term>
- <listitem>
- <para>
- This resets the dialog to the most recently saved values,
- erasing any changes you have made.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Reboot</term>
- <listitem>
- <para>
- This reboots the device. This will restart logging for
- a new flight number, if any log information has been
- saved for the current flight.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Close</term>
- <listitem>
- <para>
- This closes the dialog. Any unsaved changes will be
- lost.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- The rest of the dialog contains the parameters to be configured.
- </para>
- <section>
- <title>Frequency</title>
- <para>
- This configures which of the frequencies to use for both
- telemetry and packet command mode. Note that if you set this
- value via packet command mode, the TeleDongle frequency will
- also be automatically reconfigured to match so that
- communication will continue afterwards.
- </para>
- </section>
- <section>
- <title>RF Calibration</title>
- <para>
- The radios in every Altus Metrum device are calibrated at the
- factory to ensure that they transmit and receive on the
- specified frequency. If you need to you can adjust the calibration
- by changing this value. Do not do this without understanding what
- the value means, read the appendix on calibration and/or the source
- code for more information. To change a TeleDongle's calibration,
- you must reprogram the unit completely.
- </para>
- </section>
- <section>
- <title>Telemetry/RDF/APRS Enable</title>
- <para>
- Enables the radio for transmission during flight. When
- disabled, the radio will not transmit anything during flight
- at all.
- </para>
- </section>
- <section>
- <title>APRS Interval</title>
- <para>
- How often to transmit GPS information via APRS (in
- seconds). When set to zero, APRS transmission is
- disabled. This option is available on TeleMetrum v2 and
- TeleMega boards. TeleMetrum v1 boards cannot transmit APRS
- packets. Note that a single APRS packet takes nearly a full
- second to transmit, so enabling this option will prevent
- sending any other telemetry during that time.
- </para>
- </section>
- <section>
- <title>Callsign</title>
- <para>
- This sets the call sign included in each telemetry packet. Set this
- as needed to conform to your local radio regulations.
- </para>
- </section>
- <section>
- <title>Maximum Log Size</title>
- <para>
- This sets the space (in kilobytes) allocated for each data
- log. The available space will be divided into chunks of this
- size. A smaller value will allow more logs to be stored,
- a larger value will record data for longer times.
- </para>
- </section>
- <section>
- <title>Logging Trigger Motion</title>
- <para>
- If TeleGPS moves less than this distance over a long period
- of time, it will not log that location, saving storage space.
- </para>
- </section>
- <section>
- <title>Position Reporting Interval</title>
- <para>
- This sets how often TeleGPS reports position information via
- telemetry and to the on-board log. Reducing this value will
- save power and logging memory consumption.
- </para>
- </section>
- </section>
- <section>
- <title>Flash Device</title>
- <para>
- This reprograms TeleGPS devices with new firmware. Please
- read the directions for flashing devices in the Updating
- Device Firmware chapter below.
- </para>
- </section>
- </section>
- </chapter>
- <chapter>
- <title>Updating Device Firmware</title>
- <para>
- TeleGPS is programmed directly over its USB connectors.
- </para>
- <para>
- You may wish to begin by ensuring you have current firmware images.
- These are distributed as part of the TeleGPS software bundle that
- also includes the TeleGPS ground station program. Newer ground
- station versions typically work fine with older firmware versions,
- so you don't need to update your devices just to try out new
- software features. You can always download the most recent
- version from <ulink url="http://www.altusmetrum.org/AltOS/"/>.
- </para>
- <section>
- <title>
- Updating TeleGPS Firmware
- </title>
- <orderedlist inheritnum='inherit' numeration='arabic'>
- <listitem>
- <para>
- Attach a battery and power switch to the target
- device. Power up the device.
- </para>
- </listitem>
- <listitem>
- <para>
- Using a Micro USB cable, connect the target device to your
- computer's USB socket.
- </para>
- </listitem>
- <listitem>
- <para>
- Run TeleGPS, and select 'Flash Device' from the Device menu.
- </para>
- </listitem>
- <listitem>
- <para>
- Select the target device in the Device Selection dialog.
- </para>
- </listitem>
- <listitem>
- <para>
- Select the image you want to flash to the device, which
- should have a name in the form
- <product>-v<product-version>-<software-version>.ihx, such
- as TeleGPS-v1.0-1.4.0.ihx.
- </para>
- </listitem>
- <listitem>
- <para>
- Make sure the configuration parameters are reasonable
- looking. If the serial number and/or RF configuration
- values aren't right, you'll need to change them.
- </para>
- </listitem>
- <listitem>
- <para>
- Hit the 'OK' button and the software should proceed to flash
- the device with new firmware, showing a progress bar.
- </para>
- </listitem>
- <listitem>
- <para>
- Verify that the device is working by using the 'Configure
- Altimeter' item to check over the configuration.
- </para>
- </listitem>
- </orderedlist>
-<!--
- <section>
- <title>Recovering From Self-Flashing Failure</title>
- <para>
- If the firmware loading fails, it can leave the device
- unable to boot. Not to worry, you can force the device to
- start the boot loader instead, which will let you try to
- flash the device again.
- </para>
- <para>
- On each device, connecting two pins from one of the exposed
- connectors will force the boot loader to start, even if the
- regular operating system has been corrupted in some way.
- </para>
- <variablelist>
- <varlistentry>
- <term>TeleMega</term>
- <listitem>
- <para>
- Connect pin 6 and pin 1 of the companion connector. Pin 1
- can be identified by the square pad around it, and then
- the pins could sequentially across the board. Be very
- careful to <emphasis>not</emphasis> short pin 8 to
- anything as that is connected directly to the battery. Pin
- 7 carries 3.3V and the board will crash if that is
- connected to pin 1, but shouldn't damage the board.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>TeleMetrum v2</term>
- <listitem>
- <para>
- Connect pin 6 and pin 1 of the companion connector. Pin 1
- can be identified by the square pad around it, and then
- the pins could sequentially across the board. Be very
- careful to <emphasis>not</emphasis> short pin 8 to
- anything as that is connected directly to the battery. Pin
- 7 carries 3.3V and the board will crash if that is
- connected to pin 1, but shouldn't damage the board.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>EasyMini</term>
- <listitem>
- <para>
- Connect pin 6 and pin 1 of the debug connector, which is
- the six holes next to the beeper. Pin 1 can be identified
- by the square pad around it, and then the pins could
- sequentially across the board, making Pin 6 the one on the
- other end of the row.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
- -->
- </section>
- </chapter>
- <chapter>
- <title>Technical Information</title>
- <section>
- <title>GPS Receiver</title>
- <para>
- TeleGPS uses the u-Blox Max-7Q GPS receiver.
- </para>
- </section>
- <section>
- <title>Micro-controller</title>
- <para>
- TeleGPS uses an NXP LPC11U14 micro-controller. This tiny
- CPU contains 32kB of flash for the application and 4kB of RAM for
- temporary data storage.
- </para>
- </section>
- <section>
- <title>Lithium Polymer Battery</title>
- <para>
- Shipping restrictions may prevent us from including a battery
- battery with TeleGPS.
- </para>
- </section>
- <section>
- <title>Mechanical Considerations</title>
- <para>
- TeleGPS is designed to be rugged enough for typical rocketry
- applications. The 4 mounting holes on the board are sized for
- use with 4-40 or M3 screws.
- </para>
- </section>
- <section>
- <title>On-board data storage</title>
- <para>
- TeleGPS has 2MB of non-volatile storage, separate from the
- code storage memory. The TeleGPS firmware uses this to log
- information during flight.
- </para>
- </section>
- </chapter>
- <appendix>
- <title>Release Notes</title>
- <simplesect>
- <title>Version 1.6</title>
- <xi:include
- xmlns:xi="http://www.w3.org/2001/XInclude"
- href="release-notes-1.6.xsl"
- xpointer="xpointer(/article/*)"/>
- </simplesect>
- <simplesect>
- <title>Version 1.4.1</title>
- <xi:include
- xmlns:xi="http://www.w3.org/2001/XInclude"
- href="release-notes-1.4.1.xsl"
- xpointer="xpointer(/article/*)"/>
- </simplesect>
- <simplesect>
- <title>Version 1.4</title>
- <xi:include
- xmlns:xi="http://www.w3.org/2001/XInclude"
- href="release-notes-1.4.xsl"
- xpointer="xpointer(/article/*)"/>
- </simplesect>
- </appendix>
-</book>
-<!-- LocalWords: Altusmetrum TeleGPS
--->
--- /dev/null
+= TeleMega Outline and Hole Pattern
+:doctype: article
+
+ This image, when printed, provides a precise template for the
+ mounting holes in TeleMega. TeleMega has overall dimensions of
+ 1.250 x 3.250 inches, and the mounting holes are sized for use
+ with 4-40 or M3 screws.
+
+ image::telemega.svg[align="center"]
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
-<article>
- <title>TeleMega Outline and Hole Pattern</title>
- <para>
- This image, when printed, provides a precise template for the
- mounting holes in TeleMega. TeleMega has overall dimensions
- of 1.250 x 3.250 inches, and the mounting holes are sized for
- use with 4-40 or M3 screws.
- </para>
- <informalfigure>
- <mediaobject id="TeleMegaTemplate">
- <imageobject>
- <imagedata format="SVG" fileref="telemega.svg"
- scalefit="0" scale="100" align="center" />
- </imageobject>
- </mediaobject>
- </informalfigure>
-</article>
-
-<!-- LocalWords: Altusmetrum
--->
--- /dev/null
+= TeleMetrum Outline and Hole Pattern
+:doctype: article
+
+ This image, when printed, provides a precise template for the
+ mounting holes in TeleMetrum. TeleMetrum has overall dimensions of
+ 1.000 x 2.750 inches, and the mounting holes are sized for use
+ with 4-40 or M3 screws.
+
+ image::telemetrum.svg[align="center"]
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
-<article>
- <title>TeleMetrum Outline and Hole Pattern</title>
- <para>
- This image, when printed, provides a precise template for the
- mounting holes in TeleMetrum. TeleMetrum has overall dimensions
- of 1.000 x 2.750 inches, and the mounting holes are sized for
- use with 4-40 or M3 screws.
- </para>
- <informalfigure>
- <mediaobject id="TeleMetrumTemplate">
- <imageobject>
- <imagedata format="SVG" fileref="telemetrum.svg"
- scalefit="0" scale="100" align="center" />
- </imageobject>
- </mediaobject>
- </informalfigure>
-</article>
-
-<!-- LocalWords: Altusmetrum
--->
fin can end of the board, meaning an ideal “simple” avionics
bay for TeleMetrum should have at least 10 inches of interior length.
+ There are two generations of the TeleMetrum design. The
+ major changes in the v2 generation are:
+
+ * uBlox GPS chip certified for altitude records
+
+ * Higher power radio (40mW vs 10mW)
+
+ * APRS support
+
+ Otherwise, they're the same size, with mounting holes and
+ screw terminals in the same position.
+
=== TeleMetrum Screw Terminals
TeleMetrum has six screw terminals on the end of the board
--- /dev/null
+= TeleMini Outline and Hole Pattern
+:doctype: article
+
+ This image, when printed, provides a precise template for the
+ mounting holes in TeleMini. TeleMini has overall dimensions of
+ 0.500 x 1.500 inches, and the mounting holes are sized for use
+ with 2-56 or M2 screws.
+
+ image::telemini.svg[align="center"]
--- /dev/null
+<!DOCTYPE t:templates [
+<!ENTITY hsize0 "10pt">
+<!ENTITY hsize1 "12pt">
+<!ENTITY hsize2 "14.4pt">
+<!ENTITY hsize3 "17.28pt">
+<!ENTITY hsize4 "20.736pt">
+<!ENTITY hsize5 "24.8832pt">
+<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 -->
+<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 -->
+<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 -->
+<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 -->
+<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 -->
+<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 -->
+]>
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+ xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ********************************************************************
+ $Id: titlepage.templates.xml 9722 2013-02-01 19:44:13Z bobstayton $
+ ********************************************************************
+
+ This file is part of the DocBook XSL Stylesheet distribution.
+ See ../README or http://docbook.sf.net/ for copyright
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="article" t:wrapper="fo:block"
+ font-family="{$title.fontset}">
+
+ <t:titlepage-content t:side="recto"
+ start-indent="0pt"
+ text-align="center">
+
+ <title t:named-template="component.title"
+ param:node="ancestor-or-self::article[1]"
+ keep-with-next.within-column="always"
+ font-size="&hsize5;"
+ font-weight="bold"/>
+
+ <subtitle/>
+
+ <date/>
+
+ <corpauthor space-before="0.5em"
+ font-size="&hsize2;"/>
+ <authorgroup space-before="0.5em"
+ font-size="&hsize2;"/>
+ <author space-before="0.5em"
+ font-size="&hsize2;"/>
+
+ <!-- If you add editor, include this t:predicate attribute
+ because only the first editor generates the list of editors.
+ <editor t:predicate="[position() = 1]"/>
+ -->
+ <othercredit space-before="0.5em"/>
+ <releaseinfo space-before="0.5em"/>
+ <copyright space-before="0.5em"/>
+ <legalnotice text-align="start"
+ margin-left="0.5in"
+ margin-right="0.5in"
+ font-family="{$body.fontset}"/>
+ <pubdate space-before="0.5em"/>
+ <revision space-before="0.5em"/>
+ <revhistory space-before="0.5em"/>
+ <abstract space-before="0.5em"
+ text-align="start"
+ margin-left="0.5in"
+ margin-right="0.5in"
+ font-family="{$body.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="set" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:named-template="division.title"
+ param:node="ancestor-or-self::set[1]"
+ text-align="center"
+ font-size="&hsize5;"
+ space-before="&hsize5space;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"
+ text-align="center"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="book" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:named-template="division.title"
+ param:node="ancestor-or-self::book[1]"
+ text-align="center"
+ font-size="&hsize5;"
+ space-before="&hsize5space;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ text-align="center"
+ font-size="&hsize4;"
+ space-before="&hsize4space;"
+ font-family="{$title.fontset}"/>
+ <corpauthor font-size="&hsize3;"
+ keep-with-next.within-column="always"
+ space-before="2in"/>
+ <authorgroup space-before="2in"/>
+ <author font-size="&hsize3;"
+ space-before="&hsize2space;"
+ keep-with-next.within-column="always"/>
+ <!-- If you add editor, include this t:predicate attribute
+ because only the first editor generates the list of editors.
+ <editor t:predicate="[position() = 1]"/>
+ -->
+ <mediaobject space-before="1.5in"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ <title
+ t:named-template="book.verso.title"
+ font-size="&hsize2;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup t:named-template="verso.authorgroup"/>
+ <author/>
+ <!-- If you add editor, include this t:predicate attribute
+ because only the first editor generates the list of editors.
+ <editor t:predicate="[position() = 1]"/>
+ -->
+ <othercredit/>
+ <releaseinfo space-before="0.5em"/>
+ <pubdate space-before="1em"/>
+ <copyright/>
+ <abstract/>
+ <legalnotice font-size="8pt"/>
+ <revhistory space-before="0.5in"/>
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <fo:block break-after="page"/>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ <fo:block break-after="page"/>
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="part" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:named-template="division.title"
+ param:node="ancestor-or-self::part[1]"
+ text-align="center"
+ font-size="&hsize5;"
+ space-before="&hsize5space;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ text-align="center"
+ font-size="&hsize4;"
+ space-before="&hsize4space;"
+ font-weight='bold'
+ font-style='italic'
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="partintro" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ text-align="center"
+ font-size="&hsize5;"
+ font-weight="bold"
+ space-before="1em"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ text-align="center"
+ font-size="&hsize2;"
+ font-weight="bold"
+ font-style="italic"
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="reference" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:named-template="division.title"
+ param:node="ancestor-or-self::reference[1]"
+ text-align="center"
+ font-size="&hsize5;"
+ space-before="&hsize5space;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"
+ text-align="center"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refsynopsisdiv" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refsection" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refsect1" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refsect2" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refsect3" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="dedication" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::dedication[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<!-- Same formatting as dedication -->
+ <t:titlepage t:element="acknowledgements" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::acknowledgements[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="preface" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::preface[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="chapter" t:wrapper="fo:block"
+ font-family="{$title.fontset}">
+ <t:titlepage-content t:side="recto" margin-left="{$title.margin.left}">
+ <title t:named-template="component.title"
+ param:node="ancestor-or-self::chapter[1]"
+ font-size="&hsize5;"
+ font-weight="bold"/>
+
+ <subtitle space-before="0.5em"
+ font-style="italic"
+ font-size="&hsize2;"
+ font-weight="bold"/>
+
+ <corpauthor space-before="0.5em"
+ space-after="0.5em"
+ font-size="&hsize2;"/>
+
+ <authorgroup space-before="0.5em"
+ space-after="0.5em"
+ font-size="&hsize2;"/>
+
+ <author space-before="0.5em"
+ space-after="0.5em"
+ font-size="&hsize2;"/>
+
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="appendix" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:named-template="component.title"
+ param:node="ancestor-or-self::appendix[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="section" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect1" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect2" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect3" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect4" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect5" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="simplesect" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ margin-left="{$title.margin.left}"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="topic" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-weight="bold"
+ font-size="&hsize3;"
+ space-before="1em"
+ space-after="1em"
+ font-family="{$title.fontset}"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="bibliography" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::bibliography[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="bibliodiv" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title t:named-template="component.title"
+ param:node="ancestor-or-self::bibliodiv[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize4;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="glossary" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::glossary[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="glossdiv" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title t:named-template="component.title"
+ param:node="ancestor-or-self::glossdiv[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize4;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="index" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::index[1]"
+ param:pagewide="1"
+ margin-left="0pt"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <!-- The indexdiv.title template is used so that manual and -->
+ <!-- automatically generated indexdiv titles get the same -->
+ <!-- formatting. -->
+
+ <t:titlepage t:element="indexdiv" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title t:force="1"
+ t:named-template="indexdiv.title"
+ param:title="title"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="setindex" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::setindex[1]"
+ param:pagewide="1"
+ margin-left="0pt"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="colophon" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::colophon[1]"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize5;"
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="sidebar" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ font-family="{$title.fontset}"
+ font-weight="bold"/>
+ <subtitle
+ font-family="{$title.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+<t:titlepage t:element="qandaset" t:wrapper="fo:block"
+ font-family="{$title.fontset}">
+
+ <t:titlepage-content t:side="recto"
+ start-indent="0pt"
+ text-align="center">
+
+ <title t:named-template="component.title"
+ param:node="ancestor-or-self::qandaset[1]"
+ keep-with-next.within-column="always"
+ font-size="&hsize5;"
+ font-weight="bold"/>
+
+ <subtitle/>
+
+ <corpauthor space-before="0.5em"
+ font-size="&hsize2;"/>
+ <authorgroup space-before="0.5em"
+ font-size="&hsize2;"/>
+ <author space-before="0.5em"
+ font-size="&hsize2;"/>
+
+ <othercredit space-before="0.5em"/>
+ <releaseinfo space-before="0.5em"/>
+ <copyright space-before="0.5em"/>
+ <legalnotice text-align="start"
+ margin-left="0.5in"
+ margin-right="0.5in"
+ font-family="{$body.fontset}"/>
+ <pubdate space-before="0.5em"/>
+ <revision space-before="0.5em"/>
+ <revhistory space-before="0.5em"/>
+ <abstract space-before="0.5em"
+ text-align="start"
+ margin-left="0.5in"
+ margin-right="0.5in"
+ font-family="{$body.fontset}"/>
+ <itermset/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="table.of.contents" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'TableofContents'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="list.of.tables" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofTables'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="list.of.figures" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofFigures'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="list.of.examples" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofExamples'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="list.of.equations" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofEquations'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="list.of.procedures" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofProcedures'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="list.of.unknowns" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofUnknown'"
+ space-before.minimum="1em"
+ space-before.optimum="1.5em"
+ space-before.maximum="2em"
+ space-after="0.5em"
+ start-indent="0pt"
+ font-size="&hsize3;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="component.list.of.tables" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofTables'"
+ space-before.minimum="1em"
+ space-before.optimum="1em"
+ space-before.maximum="1em"
+ space-after="0.5em"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize1;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="component.list.of.figures" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofFigures'"
+ space-before.minimum="1em"
+ space-before.optimum="1em"
+ space-before.maximum="1em"
+ space-after="0.5em"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize1;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="component.list.of.examples" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofExamples'"
+ space-before.minimum="1em"
+ space-before.optimum="1em"
+ space-before.maximum="1em"
+ space-after="0.5em"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize1;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="component.list.of.equations" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofEquations'"
+ space-before.minimum="1em"
+ space-before.optimum="1em"
+ space-before.maximum="1em"
+ space-after="0.5em"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize1;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="component.list.of.procedures" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofProcedures'"
+ space-before.minimum="1em"
+ space-before.optimum="1em"
+ space-before.maximum="1em"
+ space-after="0.5em"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize1;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+ <t:titlepage t:element="component.list.of.unknowns" t:wrapper="fo:block">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="gentext"
+ param:key="'ListofUnknown'"
+ space-before.minimum="1em"
+ space-before.optimum="1em"
+ space-before.maximum="1em"
+ space-after="0.5em"
+ margin-left="{$title.margin.left}"
+ font-size="&hsize1;"
+ font-weight="bold"
+ font-family="{$title.fontset}"/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+ </t:titlepage>
+
+<!-- ==================================================================== -->
+
+</t:templates>
+++ /dev/null
-<!DOCTYPE t:templates [
-<!ENTITY hsize0 "10pt">
-<!ENTITY hsize1 "12pt">
-<!ENTITY hsize2 "14.4pt">
-<!ENTITY hsize3 "17.28pt">
-<!ENTITY hsize4 "20.736pt">
-<!ENTITY hsize5 "24.8832pt">
-<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 -->
-<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 -->
-<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 -->
-<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 -->
-<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 -->
-<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 -->
-]>
-<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
- xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
- xmlns:fo="http://www.w3.org/1999/XSL/Format"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- ********************************************************************
- $Id: titlepage.templates.xml 9722 2013-02-01 19:44:13Z bobstayton $
- ********************************************************************
-
- This file is part of the DocBook XSL Stylesheet distribution.
- See ../README or http://docbook.sf.net/ for copyright
- copyright and other information.
-
- ******************************************************************** -->
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="article" t:wrapper="fo:block"
- font-family="{$title.fontset}">
-
- <t:titlepage-content t:side="recto"
- start-indent="0pt"
- text-align="center">
-
- <title t:named-template="component.title"
- param:node="ancestor-or-self::article[1]"
- keep-with-next.within-column="always"
- font-size="&hsize5;"
- font-weight="bold"/>
-
- <subtitle/>
-
- <corpauthor space-before="0.5em"
- font-size="&hsize2;"/>
- <authorgroup space-before="0.5em"
- font-size="&hsize2;"/>
- <author space-before="0.5em"
- font-size="&hsize2;"/>
-
- <!-- If you add editor, include this t:predicate attribute
- because only the first editor generates the list of editors.
- <editor t:predicate="[position() = 1]"/>
- -->
- <othercredit space-before="0.5em"/>
- <releaseinfo space-before="0.5em"/>
- <copyright space-before="0.5em"/>
- <legalnotice text-align="start"
- margin-left="0.5in"
- margin-right="0.5in"
- font-family="{$body.fontset}"/>
- <pubdate space-before="0.5em"/>
- <revision space-before="0.5em"/>
- <revhistory space-before="0.5em"/>
- <abstract space-before="0.5em"
- text-align="start"
- margin-left="0.5in"
- margin-right="0.5in"
- font-family="{$body.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="set" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:named-template="division.title"
- param:node="ancestor-or-self::set[1]"
- text-align="center"
- font-size="&hsize5;"
- space-before="&hsize5space;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"
- text-align="center"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="book" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:named-template="division.title"
- param:node="ancestor-or-self::book[1]"
- text-align="center"
- font-size="&hsize5;"
- space-before="&hsize5space;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- <subtitle
- text-align="center"
- font-size="&hsize4;"
- space-before="&hsize4space;"
- font-family="{$title.fontset}"/>
- <corpauthor font-size="&hsize3;"
- keep-with-next.within-column="always"
- space-before="2in"/>
- <authorgroup space-before="2in"/>
- <author font-size="&hsize3;"
- space-before="&hsize2space;"
- keep-with-next.within-column="always"/>
- <!-- If you add editor, include this t:predicate attribute
- because only the first editor generates the list of editors.
- <editor t:predicate="[position() = 1]"/>
- -->
- <mediaobject space-before="1.5in"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- <title
- t:named-template="book.verso.title"
- font-size="&hsize2;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup t:named-template="verso.authorgroup"/>
- <author/>
- <!-- If you add editor, include this t:predicate attribute
- because only the first editor generates the list of editors.
- <editor t:predicate="[position() = 1]"/>
- -->
- <othercredit/>
- <releaseinfo space-before="0.5em"/>
- <pubdate space-before="1em"/>
- <copyright/>
- <abstract/>
- <legalnotice font-size="8pt"/>
- </t:titlepage-content>
-
- <t:titlepage-separator>
- <fo:block break-after="page"/>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- <fo:block break-after="page"/>
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="part" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:named-template="division.title"
- param:node="ancestor-or-self::part[1]"
- text-align="center"
- font-size="&hsize5;"
- space-before="&hsize5space;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- <subtitle
- text-align="center"
- font-size="&hsize4;"
- space-before="&hsize4space;"
- font-weight='bold'
- font-style='italic'
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="partintro" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- text-align="center"
- font-size="&hsize5;"
- font-weight="bold"
- space-before="1em"
- font-family="{$title.fontset}"/>
- <subtitle
- text-align="center"
- font-size="&hsize2;"
- font-weight="bold"
- font-style="italic"
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="reference" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:named-template="division.title"
- param:node="ancestor-or-self::reference[1]"
- text-align="center"
- font-size="&hsize5;"
- space-before="&hsize5space;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"
- text-align="center"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="refsynopsisdiv" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="refsection" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="refsect1" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="refsect2" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="refsect3" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="dedication" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::dedication[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<!-- Same formatting as dedication -->
- <t:titlepage t:element="acknowledgements" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::acknowledgements[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="preface" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::preface[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="chapter" t:wrapper="fo:block"
- font-family="{$title.fontset}">
- <t:titlepage-content t:side="recto" margin-left="{$title.margin.left}">
- <title t:named-template="component.title"
- param:node="ancestor-or-self::chapter[1]"
- font-size="&hsize5;"
- font-weight="bold"/>
-
- <subtitle space-before="0.5em"
- font-style="italic"
- font-size="&hsize2;"
- font-weight="bold"/>
-
- <corpauthor space-before="0.5em"
- space-after="0.5em"
- font-size="&hsize2;"/>
-
- <authorgroup space-before="0.5em"
- space-after="0.5em"
- font-size="&hsize2;"/>
-
- <author space-before="0.5em"
- space-after="0.5em"
- font-size="&hsize2;"/>
-
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="appendix" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:named-template="component.title"
- param:node="ancestor-or-self::appendix[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
-<t:titlepage t:element="section" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="sect1" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="sect2" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="sect3" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="sect4" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="sect5" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="simplesect" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- margin-left="{$title.margin.left}"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <corpauthor/>
- <authorgroup/>
- <author/>
- <othercredit/>
- <releaseinfo/>
- <copyright/>
- <legalnotice/>
- <pubdate/>
- <revision/>
- <revhistory/>
- <abstract/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<t:titlepage t:element="topic" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-weight="bold"
- font-size="&hsize3;"
- space-before="1em"
- space-after="1em"
- font-family="{$title.fontset}"/>
- <subtitle
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="bibliography" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::bibliography[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="bibliodiv" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title t:named-template="component.title"
- param:node="ancestor-or-self::bibliodiv[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize4;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="glossary" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::glossary[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="glossdiv" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title t:named-template="component.title"
- param:node="ancestor-or-self::glossdiv[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize4;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="index" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::index[1]"
- param:pagewide="1"
- margin-left="0pt"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <!-- The indexdiv.title template is used so that manual and -->
- <!-- automatically generated indexdiv titles get the same -->
- <!-- formatting. -->
-
- <t:titlepage t:element="indexdiv" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title t:force="1"
- t:named-template="indexdiv.title"
- param:title="title"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="setindex" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::setindex[1]"
- param:pagewide="1"
- margin-left="0pt"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="colophon" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="component.title"
- param:node="ancestor-or-self::colophon[1]"
- margin-left="{$title.margin.left}"
- font-size="&hsize5;"
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="sidebar" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- font-family="{$title.fontset}"
- font-weight="bold"/>
- <subtitle
- font-family="{$title.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-<t:titlepage t:element="qandaset" t:wrapper="fo:block"
- font-family="{$title.fontset}">
-
- <t:titlepage-content t:side="recto"
- start-indent="0pt"
- text-align="center">
-
- <title t:named-template="component.title"
- param:node="ancestor-or-self::qandaset[1]"
- keep-with-next.within-column="always"
- font-size="&hsize5;"
- font-weight="bold"/>
-
- <subtitle/>
-
- <corpauthor space-before="0.5em"
- font-size="&hsize2;"/>
- <authorgroup space-before="0.5em"
- font-size="&hsize2;"/>
- <author space-before="0.5em"
- font-size="&hsize2;"/>
-
- <othercredit space-before="0.5em"/>
- <releaseinfo space-before="0.5em"/>
- <copyright space-before="0.5em"/>
- <legalnotice text-align="start"
- margin-left="0.5in"
- margin-right="0.5in"
- font-family="{$body.fontset}"/>
- <pubdate space-before="0.5em"/>
- <revision space-before="0.5em"/>
- <revhistory space-before="0.5em"/>
- <abstract space-before="0.5em"
- text-align="start"
- margin-left="0.5in"
- margin-right="0.5in"
- font-family="{$body.fontset}"/>
- <itermset/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
-</t:titlepage>
-
-<!-- ==================================================================== -->
-
- <t:titlepage t:element="table.of.contents" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'TableofContents'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="list.of.tables" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofTables'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="list.of.figures" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofFigures'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="list.of.examples" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofExamples'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="list.of.equations" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofEquations'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="list.of.procedures" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofProcedures'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="list.of.unknowns" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofUnknown'"
- space-before.minimum="1em"
- space-before.optimum="1.5em"
- space-before.maximum="2em"
- space-after="0.5em"
- start-indent="0pt"
- font-size="&hsize3;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="component.list.of.tables" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofTables'"
- space-before.minimum="1em"
- space-before.optimum="1em"
- space-before.maximum="1em"
- space-after="0.5em"
- margin-left="{$title.margin.left}"
- font-size="&hsize1;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="component.list.of.figures" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofFigures'"
- space-before.minimum="1em"
- space-before.optimum="1em"
- space-before.maximum="1em"
- space-after="0.5em"
- margin-left="{$title.margin.left}"
- font-size="&hsize1;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="component.list.of.examples" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofExamples'"
- space-before.minimum="1em"
- space-before.optimum="1em"
- space-before.maximum="1em"
- space-after="0.5em"
- margin-left="{$title.margin.left}"
- font-size="&hsize1;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="component.list.of.equations" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofEquations'"
- space-before.minimum="1em"
- space-before.optimum="1em"
- space-before.maximum="1em"
- space-after="0.5em"
- margin-left="{$title.margin.left}"
- font-size="&hsize1;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="component.list.of.procedures" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofProcedures'"
- space-before.minimum="1em"
- space-before.optimum="1em"
- space-before.maximum="1em"
- space-after="0.5em"
- margin-left="{$title.margin.left}"
- font-size="&hsize1;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
- <t:titlepage t:element="component.list.of.unknowns" t:wrapper="fo:block">
- <t:titlepage-content t:side="recto">
- <title
- t:force="1"
- t:named-template="gentext"
- param:key="'ListofUnknown'"
- space-before.minimum="1em"
- space-before.optimum="1em"
- space-before.maximum="1em"
- space-after="0.5em"
- margin-left="{$title.margin.left}"
- font-size="&hsize1;"
- font-weight="bold"
- font-family="{$title.fontset}"/>
- </t:titlepage-content>
-
- <t:titlepage-content t:side="verso">
- </t:titlepage-content>
-
- <t:titlepage-separator>
- </t:titlepage-separator>
-
- <t:titlepage-before t:side="recto">
- </t:titlepage-before>
-
- <t:titlepage-before t:side="verso">
- </t:titlepage-before>
- </t:titlepage>
-
-<!-- ==================================================================== -->
-
-</t:templates>
download the most recent version from
http://www.altusmetrum.org/AltOS/
- If you need to update the firmware on a TeleDongle v0.2, we
- recommend updating the altimeter first, before updating
- TeleDongle. However, note that TeleDongle rarely need to be
- updated. Any firmware version 1.0.1 or later will work,
- version 1.2.1 may have improved receiver performance slightly.
-
- Self-programmable devices (TeleMega, TeleMetrum v2, EasyMega
- and EasyMini) are reprogrammed by connecting them to your
- computer over USB
-
=== Updating TeleMega, TeleMetrum v2, EasyMega, EasyMini or TeleDongle v3 Firmware
+ Self-programmable devices (TeleMega, TeleMetrum v2,
+ EasyMega and EasyMini) are reprogrammed by connecting
+ them to your computer over USB
+
. Attach a battery if necessary and power switch to
the target device. Power up the device.
support programming directly over USB for these
devices.
+ If you need to update the firmware on a TeleDongle
+ v0.2, we recommend updating the altimeter first,
+ before updating TeleDongle. However, note that
+ TeleDongle rarely need to be updated. Any firmware
+ version 1.0.1 or later will work, version 1.2.1 may
+ have improved receiver performance slightly.
+
==== Updating TeleMetrum v1.x Firmware
. Find the 'programming cable' that you got as
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- X.Org DocBook/XML customization
-
- DocBook XSL Stylesheets FO Parameters
- http://docbook.sourceforge.net/release/xsl/current/doc/fo/
--->
-
-<xsl:stylesheet
- version='1.0'
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:fo="http://www.w3.org/1999/XSL/Format"
- >
-<xsl:import href="file:///usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl"/>
-<xsl:include href="titlepage.templates.xsl"/>
-
-
- <!-- Reference Pages HTML/FO Parameters -->
-
-
- <xsl:param name="function.parens" select="1"/>
-
- <!-- ANSI-style function synopses are generated for a funcsynopsis element -->
- <xsl:param name="funcsynopsis.style" select="ansi"/>
-
- <!-- Linking HTML/FO Parameters -->
-
- <!-- open new PDF documents in new tab, don't replace doc in current window -->
- <xsl:attribute-set name="olink.properties">
- <xsl:attribute name="show-destination">new</xsl:attribute>
- </xsl:attribute-set>
-
- <!-- Miscellaneous HTML/FO Parameters-->
-
- <!-- SVG will be considered an acceptable image format -->
- <xsl:param name="use.svg" select="1"/>
-
- <!-- ToC/LoT/Index Generation -->
- <!-- put page breaks before and after the Table of Contents,
- so that the ToC is on a page by itself
- Reference: http://www.sagehill.net/docbookxsl/PrintToc.html
- -->
- <xsl:attribute-set name="toc.margin.properties">
- <xsl:attribute name="break-before">page</xsl:attribute>
- <xsl:attribute name="break-after">page</xsl:attribute>
- </xsl:attribute-set>
-
- <!-- Pagination and General Styles FO Parameters -->
- <!--
- Speed up ps & pdf creation by not creating pages with "draft" image,
- thus not needing to wait for http fetch of draft.png from docbook website.
- -->
- <xsl:param name="draft.mode" select="no"/>
-
- <!-- Processor Extensions FO Parameters-->
-
- <!-- PDF bookmarks extensions for FOP version 0.90 and later will be used. -->
- <xsl:param name="fop.extensions" select="0"></xsl:param>
- <xsl:param name="fop1.extensions" select="1"></xsl:param>
-
- <!-- Cross Refrences FO Parameters-->
-
- <!-- Make links in pdf output blue so it's easier to tell they're internal
- links
- -->
- <xsl:attribute-set name="xref.properties">
- <xsl:attribute name="color">blue</xsl:attribute>
- </xsl:attribute-set>
-
- <!-- Make links in pdf output green so it's easier to tell they're external
- links
- -->
- <xsl:attribute-set name="olink.properties">
- <xsl:attribute name="color">green</xsl:attribute>
- </xsl:attribute-set>
-
- <!-- Linking to a target inside a pdf document.
- This feature is only available as of docbook-xsl-1.76.1.
- When set to zero, the link will point to the document -->
- <xsl:param name="insert.olink.pdf.frag" select="0"></xsl:param>
-
-
- <!-- Font Families FO Parameters -->
-
- <!--
- Since a number of documents, especially the credits section in the
- ReleaseNotes, use characters not found in the fop default base-14
- PostScript fonts, set the fonts for the fop generated documents to
- use the free DejaVu and GNU Unifont fonts which cover a much wider
- range of characters.
-
- DejaVu is available from http://dejavu-fonts.org/
- GNU Unifont is available from http://unifoundry.com/unifont.html
-
- To set fop font paths to find them after installing, see
- http://xmlgraphics.apache.org/fop/1.0/fonts.html#basics
- -->
- <xsl:param name="body.font.family">DejaVu Serif</xsl:param>
- <xsl:param name="symbol.font.family">serif,Symbol,AR PL UMing CN,AR PL ShanHeiSun Uni,GNU Unifont</xsl:param>
-
- <!-- Paragraph template bits -->
-
- <!-- make it possible to turn off hyphenation when it's giving us probs -->
- <xsl:template match="para[@hyphenate='false']">
- <fo:block hyphenate="false" xsl:use-attribute-sets="normal.para.spacing">
- <xsl:call-template name="anchor"/>
- <xsl:apply-templates/>
- </fo:block>
- </xsl:template>
-
- <!-- force line break -->
- <xsl:template match="processing-instruction('linebreak')">
- <fo:block/>
- </xsl:template>
-
- <xsl:attribute-set name="informalfigure.properties">
- <xsl:attribute name="text-align">center</xsl:attribute>
- </xsl:attribute-set>
-
-</xsl:stylesheet>