From 992c0eab6275cec7d5035b99952537fd7ece2ed4 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 13 Nov 2015 22:55:35 -0800 Subject: [PATCH] doc: Split out EasyMini into a separate manual EasyMini uses a tiny fraction of the overall system software; splitting the manual out makes it a lot smaller. Signed-off-by: Keith Packard --- doc/Makefile | 19 ++- doc/altosui.inc | 86 +++++++--- doc/altusmetrum.txt | 10 +- doc/config-device.inc | 187 +++++++++++----------- doc/config-ui.inc | 10 +- doc/{easymini.inc => easymini-device.inc} | 0 doc/easymini-docinfo.xml | 48 ++++++ doc/easymini-release-notes.inc | 7 + doc/easymini.txt | 34 ++++ doc/flight-data-recording.inc | 48 +++++- doc/getting-started.inc | 25 ++- doc/installation.inc | 26 ++- doc/specs.inc | 22 +++ doc/system-operation.inc | 75 ++++++--- doc/telegps.txt | 2 + doc/updating-firmware.inc | 37 ++++- doc/usage.inc | 41 +++-- doc/using-am-products.inc | 51 ++++-- 18 files changed, 544 insertions(+), 184 deletions(-) rename doc/{easymini.inc => easymini-device.inc} (100%) create mode 100644 doc/easymini-docinfo.xml create mode 100644 doc/easymini-release-notes.inc create mode 100644 doc/easymini.txt diff --git a/doc/Makefile b/doc/Makefile index f8fdb5e8..7a4e0fa3 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -105,7 +105,7 @@ INC_FILES=\ telemetrum.inc \ telemini-v1.0.inc \ telemini-v2.0.inc \ - easymini.inc \ + easymini-device.inc \ telemega.inc \ easymega.inc \ installation.inc \ @@ -146,6 +146,14 @@ MICROPEAK_INC_FILES= MICROPEAK_RAW_FILES=$(MICROPEAK_TXT_FILES:.txt=.raw) $(MICROPEAK_INC_FILES:.inc=.raw) +EASYMINI_TXT_FILES=\ + easymini.txt + +EASYMINI_INC_FILES=$(INC_FILES) easymini-release-notes.inc + + +EASYMINI_RAW_FILES=$(EASYMINI_TXT_FILES:.txt=.raw) $(EASYMINI_INC_FILES:.inc=.raw) + OUTLINE_TXT_FILES=\ easymega-outline.txt \ easymini-outline.txt \ @@ -175,14 +183,15 @@ ONEFILE_TXT_FILES=\ ONEFILE_RAW_FILES=$(ONEFILE_TXT_FILES:.txt=.raw) ONEFILE_PDF_FILES=$(ONEFILE_TXT_FILES:.txt=.pdf) -HTML=altusmetrum.html micropeak.html telegps.html $(RELNOTES_HTML) $(ONEFILE_HTML_FILES) +HTML=altusmetrum.html micropeak.html telegps.html easymini.html $(RELNOTES_HTML) $(ONEFILE_HTML_FILES) HTML_REVHISTORY=\ altusmetrum-revhistory.html \ micropeak-revhistory.html \ - telegps-revhistory.html + telegps-revhistory.html \ + easymini-revhistory.html -PDF=altusmetrum.pdf micropeak.pdf telegps.pdf $(RELNOTES_PDF) $(ONEFILE_PDF_FILES) \ +PDF=altusmetrum.pdf micropeak.pdf telegps.pdf easymini.pdf $(RELNOTES_PDF) $(ONEFILE_PDF_FILES) \ $(OUTLINE_PDF_FILES) FOP_STYLE=am-fo.xsl @@ -245,6 +254,8 @@ telegps.html telegps.pdf: telegps-docinfo.xml $(TELEGPS_RAW_FILES) $(IMAGES) micropeak.pdf micropeak.html: micropeak-docinfo.xml $(MICROPEAK_RAW_FILES) $(IMAGES) +easymini.pdf easymini.html: easymini-docinfo.xml $(EASYMINI_RAW_FILES) $(IMAGES) + install: all publish: $(DOC) $(FONTS) diff --git a/doc/altosui.inc b/doc/altosui.inc index 3c26b441..76a24d91 100644 --- a/doc/altosui.inc +++ b/doc/altosui.inc @@ -11,6 +11,7 @@ chapter is split into sections, each of which documents one of the tasks provided from the top-level toolbar. + ifdef::radio[] === Monitor Flight //// Receive, Record and Display Telemetry Data @@ -298,26 +299,34 @@ voltage measured here will be close to the pyro battery voltage. A value greater than 3.2V is required for a 'GO' status. + endif::radio[] + === Save Flight Data The altimeter records flight data to its internal - flash memory. TeleMetrum data is recorded at a much + flash memory. + ifdef::radio[] + Data logged on board is recorded at a much higher rate than the telemetry system can handle, and is not subject to radio drop-outs. As such, it provides a more complete and precise record of the - flight. The 'Save Flight Data' button allows you to + flight. + endif::radio[] + The 'Save Flight Data' button allows you to read the flash memory and write it to disk. Clicking on the 'Save Flight Data' button brings up a list of connected flight computers and TeleDongle devices. If you select a flight computer, the flight - data will be downloaded from that device directly. If - you select a TeleDongle device, flight data will be + data will be downloaded from that device directly. + ifdef::radio[] + If you select a TeleDongle device, flight data will be downloaded from a flight computer over radio link via the specified TeleDongle. See <<_controlling_an_altimeter_over_the_radio_link>> for more information. + endif::radio[] After the device has been selected, a dialog showing the flight data saved in the device will be shown @@ -342,8 +351,12 @@ flash memory. Once a flight record is selected, the flight monitor interface - is displayed and the flight is re-enacted in real time. Check + is displayed and the flight is re-enacted in real + time. + ifdef::radio[] + Check <<_monitor_flight>> to learn how this window operates. + endif::radio[] === Graph Data @@ -392,6 +405,7 @@ Shows overall data computed from the flight. + ifdef::gps[] ==== Map .Flight Map @@ -401,6 +415,7 @@ with the path of the flight. The red concentric circles mark the launch pad, the black concentric circles mark the landing location. + endif::gps[] === Export Data @@ -412,8 +427,11 @@ 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. + file. + ifdef::gps[] + It has a selector to choose between CSV and KML + file formats. + endif::gps[] ==== Comma Separated Value Format @@ -432,20 +450,29 @@ standard units, with the barometric data reported in both pressure, altitude and height above pad units. - ==== Keyhole Markup Language (for Google Earth) + ifdef::gps[] + ==== 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 flight path in 3D. + 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. + endif::gps[] === Configure Altimeter .Altimeter Configuration image::configure-altimeter.png[width="3.6in"] + ifdef::radio[] Select this button and then select either an altimeter or TeleDongle Device from the list provided. Selecting a TeleDongle - device will use the radio link to configure a remote altimeter. + device will use the radio link to configure a remote + altimeter. + endif::radio[] + ifndef::radio[] + Select this button and then select an altimeter. + endif::radio[] The first few lines of the dialog provide information about the connected device, including the product name, @@ -490,6 +517,7 @@ include::config-ui.raw[] + ifdef::radio[] === Configure Groundstation .Configure Groundstation Dialog @@ -557,16 +585,27 @@ This lets you match the telemetry and packet link rate from the transmitter. If they don't match, the device won't receive any data. + endif::radio[] === Flash Image This reprograms Altus Metrum devices with new - firmware. TeleMetrum v1.x, TeleDongle v0.2, TeleMini - and TeleBT are all reprogrammed by using another - similar unit as a programming dongle (pair - programming). TeleMega, EasyMega, TeleMetrum v2, - EasyMini and TeleDongle v3 are all programmed directly - over their USB ports (self programming). Please read + firmware. + ifdef::telemetrum,telemini[] + TeleMetrum v1.x, TeleDongle v0.2, TeleMini + and TeleBT are all reprogrammed by using another + similar unit as a programming dongle (pair + programming). + endif::telemetrum,telemini[] + ifdef::telemega,easymega,telemetrum[] + TeleMega, EasyMega, TeleMetrum v2, + EasyMini and TeleDongle v3 are all + endif::telemega,easymega,telemetrum[] + ifndef::telemega,easymega,telemetrum[] + EasyMini is + endif::telemega,easymega,telemetrum[] + programmed directly + over USB (self programming). Please read the directions for flashing devices in <<_updating_device_firmware>>. @@ -577,10 +616,13 @@ This activates the igniter circuits in the flight computer to help test recovery systems - deployment. Because this command can operate over the + deployment. + ifdef::radio[] + Because this command can operate over the Packet Command Link, you can prepare the rocket as for flight and then test the recovery system without needing to snake wires inside the air-frame. + endif::radio[] Selecting the 'Fire Igniter' button brings up the usual device selection dialog. Pick the desired @@ -598,6 +640,7 @@ point you start over again at selecting the desired igniter. + ifdef::radio[] === Scan Channels .Scan Channels Window @@ -610,9 +653,13 @@ be tried; by default, it only listens at 38400 baud with the standard telemetry format used in v1.0 and later firmware. + endif::radio[] + ifdef::gps[] include::load-maps.raw[] + endif::gps[] + ifdef::radio[] === Monitor Idle .Monitor Idle Window @@ -632,3 +679,4 @@ communicate with the flight computer; they must both match the configuration in the flight computer exactly. + endif::radio[] diff --git a/doc/altusmetrum.txt b/doc/altusmetrum.txt index f8d284ec..598de8e6 100644 --- a/doc/altusmetrum.txt +++ b/doc/altusmetrum.txt @@ -2,6 +2,14 @@ :doctype: book :numbered: :altusmetrum: 1 +:radio: 1 +:gps: 1 +:telemetrum: 1 +:telemini: 1 +:easymini: 1 +:telemega: 1 +:easymega: 1 +:telegps: 1 :application: AltosUI include::dedication.raw[] @@ -18,7 +26,7 @@ include::telemini-v2.0.raw[] - include::easymini.raw[] + include::easymini-device.raw[] include::telemega.raw[] diff --git a/doc/config-device.inc b/doc/config-device.inc index fb09416c..bf1edb97 100644 --- a/doc/config-device.inc +++ b/doc/config-device.inc @@ -37,85 +37,87 @@ ifdef::altusmetrum[] endif::altusmetrum[] -==== 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. - ifdef::altusmetrum[] - This option is - available on TeleMetrum v2 and TeleMega - boards. TeleMetrum v1 boards cannot transmit - APRS packets. - endif::altusmetrum[] - 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. - -==== APRS Format - - Whether to send APRS data in Compressed or - Uncompressed format. Compressed format is - smaller and more precise. Uncompressed - format is older, but may work better with your - device. The Kenwood TH-D72 only displays - altitude information with Uncompressed - format, while the Yaesu FT1D only displays - altitude with Compressed format. Test before - you fly to see which to use. - -==== Callsign - - This sets the call sign included in each - telemetry packet. Set this as needed to - conform to your local radio regulations. +ifdef::radio[] + ==== 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. + ifdef::altusmetrum[] + This option is + available on TeleMetrum v2 and TeleMega + boards. TeleMetrum v1 boards cannot transmit + APRS packets. + endif::altusmetrum[] + 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. + + ==== APRS Format + + Whether to send APRS data in Compressed or + Uncompressed format. Compressed format is + smaller and more precise. Uncompressed + format is older, but may work better with your + device. The Kenwood TH-D72 only displays + altitude information with Uncompressed + format, while the Yaesu FT1D only displays + altitude with Compressed format. Test before + you fly to see which to use. + + ==== Callsign + + This sets the call sign included in each + telemetry packet. Set this as needed to + conform to your local radio regulations. +endif::radio[] ifdef::altusmetrum[] @@ -153,6 +155,7 @@ ifdef::altusmetrum[] is fired first, followed after a two second delay by the 'main' channel. + ifdef::telemetrum,telemega,easymega[] ==== Pad Orientation Because they include accelerometers, @@ -172,6 +175,7 @@ ifdef::altusmetrum[] In this mode, the antenna end of the flight computer must point aft, in line with the expected flight path. + endif::telemetrum,telemega,easymega[] ==== Beeper Frequency @@ -185,21 +189,22 @@ ifdef::altusmetrum[] endif::altusmetrum[] -==== Logging Trigger Motion +ifdef::telegps[] + ==== Logging Trigger Motion - This sets the amount of motion that TeleGPS - needs to see before logging the new - position. Motions smaller than this are - skipped, which saves storage space. + This sets the amount of motion that TeleGPS + needs to see before logging the new + position. Motions smaller than this are + skipped, which saves storage space. -==== Position Reporting Interval - - The interval between TeleGPS position reports, - both over the air and in the log. Increase - this to reduce the frequency of radio - transmissions and the length of time available - in the log. + ==== Position Reporting Interval + The interval between TeleGPS position reports, + both over the air and in the log. Increase + this to reduce the frequency of radio + transmissions and the length of time available + in the log. +endif::telegps[] ifdef::altusmetrum[] diff --git a/doc/config-ui.inc b/doc/config-ui.inc index c7e7f1ac..fdcfb9dc 100644 --- a/doc/config-ui.inc +++ b/doc/config-ui.inc @@ -1,3 +1,4 @@ +ifdef::radio[] ==== Voice Settings {application} provides voice announcements during @@ -13,11 +14,12 @@ Plays a short message allowing you to verify that the audio system is working and the volume settings are reasonable +endif::radio[] ==== Log Directory {application} logs all telemetry data and saves all - TeleMetrum flash data to this directory. This + flash data to this directory. This directory is also used as the staring point when selecting data files for display or export. @@ -28,6 +30,7 @@ change where {application} reads and writes data files. +ifdef::radio[] ==== Callsign This value is transmitted in each command @@ -46,6 +49,7 @@ exactly match the callsign configured in the flight computer. This matching is case sensitive. +endif::radio[] ==== Imperial Units @@ -86,13 +90,16 @@ {application} window that includes all of the command buttons. +ifdef::gps[] ==== Map Cache Size Sets the number of map 'tiles' kept in memory while the application is running. More tiles consume more memory, but will make panning around the map faster. +endif::gps[] +ifdef::radio[] ==== Manage Frequencies This brings up a dialog where you can @@ -103,3 +110,4 @@ frequency settings of any devices, it only changes the set of frequencies shown in the menus. +endif::radio[] diff --git a/doc/easymini.inc b/doc/easymini-device.inc similarity index 100% rename from doc/easymini.inc rename to doc/easymini-device.inc diff --git a/doc/easymini-docinfo.xml b/doc/easymini-docinfo.xml new file mode 100644 index 00000000..f3c7ba19 --- /dev/null +++ b/doc/easymini-docinfo.xml @@ -0,0 +1,48 @@ +A Dual-Deploy Rocketry Flight Computer + + Bdale + Garbee + bdale@gag.com + + + Keith + Packard + keithp@keithp.com + + + 2015 + Bdale Garbee and Keith Packard + + + + + + + + + + + + + + + + + + This document is released under the terms of the + + Creative Commons ShareAlike 3.0 + + license. + + + + + + 1.6.2 + 13 November 2015 + + First release of separate EasyMini doc + + + diff --git a/doc/easymini-release-notes.inc b/doc/easymini-release-notes.inc new file mode 100644 index 00000000..e448b394 --- /dev/null +++ b/doc/easymini-release-notes.inc @@ -0,0 +1,7 @@ +[appendix] +== Release Notes + + :leveloffset: 2 + include::release-notes-1.6.1.raw[] + + :leveloffset: 0 diff --git a/doc/easymini.txt b/doc/easymini.txt new file mode 100644 index 00000000..ddb18376 --- /dev/null +++ b/doc/easymini.txt @@ -0,0 +1,34 @@ += EasyMini +:doctype: book +:numbered: +:altusmetrum: 1 +:easymini: 1 +:application: AltosUI + + include::dedication.raw[] + + include::intro.raw[] + + include::getting-started.raw[] + + include::usage.raw[] + + include::easymini-device.raw[] + + include::installation.raw[] + + include::using-am-products.raw[] + + include::altosui.raw[] + + include::system-operation.raw[] + + include::handling.raw[] + + include::updating-firmware.raw[] + + include::flight-data-recording.raw[] + + include::specs.raw[] + + include::easymini-release-notes.raw[] diff --git a/doc/flight-data-recording.inc b/doc/flight-data-recording.inc index ed56b82e..d0ffa7f1 100644 --- a/doc/flight-data-recording.inc +++ b/doc/flight-data-recording.inc @@ -2,9 +2,15 @@ == Flight Data Recording Each flight computer logs data at 100 samples per second - during ascent and 10 samples per second during descent, except - for TeleMini v1.0, which records ascent at 10 samples per - second and descent at 1 sample per second. Data are logged to + during ascent and 10 samples per second during + ifdef::telemini[] + descent, except for TeleMini v1.0, which records ascent at 10 samples + per second and descent at 1 sample per second. + endif::telemini[] + ifndef::telemini[] + descent. + endif::telemini[] + Data are logged to an on-board flash memory part, which can be partitioned into several equal-sized blocks, one for each flight. @@ -12,14 +18,24 @@ [options="header",cols="1,1,1,1"] |==== |Device |Bytes per Sample |Total Storage |Minutes at Full Rate + ifdef::telemetrum[] |TeleMetrum v1.0 |8 |1MB |20 |TeleMetrum v1.1 v1.2 |8 |2MB |40 |TeleMetrum v2.0 |16 |8MB |80 + endif::telemetrum[] + ifdef::telemini[] |TeleMini v1.0 |2 |5kB |4 |TeleMini v2.0 |16 |1MB |10 + endif::telemini[] + ifdef::easymini[] |EasyMini |16 |1MB |10 + endif::easymini[] + ifdef::telemega[] |TeleMega |32 |8MB |40 + endif::telemega[] + ifdef::easymega[] |EasyMega |32 |8MB |40 + endif::easymega[] |==== The on-board flash is partitioned into separate flight logs, @@ -28,26 +44,42 @@ stored. Decrease the size and you can store more flights. Configuration data is also stored in the flash memory on - TeleMetrum v1.x, TeleMini and EasyMini. This consumes 64kB + ifdef::telemetrum[TeleMetrum v1.x,] + ifdef::telemini[TeleMini and] + ifdef::easymini[EasyMini.] + This consumes 64kB of flash space. This configuration space is not available - for storing flight log data. TeleMetrum v2.0, TeleMega and EasyMega + for storing flight log data. + + ifdef::telemetrum,telemega,easymega[] + TeleMetrum v2.0, TeleMega and EasyMega store configuration data in a bit of eeprom available within the processor chip, leaving that space available in flash for more flight data. + endif::telemetrum,telemega,easymega[] To compute the amount of space needed for a single flight, you can multiply the expected ascent time (in seconds) by 100 times bytes-per-sample, multiply the expected descent time (in seconds) by 10 times the bytes per sample and add the two together. That will slightly under-estimate the storage (in - bytes) needed for the flight. For instance, a TeleMetrum v2.0 flight spending + bytes) needed for the flight. + ifdef::telemetrum[] + For instance, a TeleMetrum v2.0 flight spending 20 seconds in ascent and 150 seconds in descent will take about (20 * 1600) + (150 * 160) = 56000 bytes of storage. You could store dozens of these flights in the on-board flash. + endif::telemetrum[] The default size allows for several flights on each flight - computer, except for TeleMini v1.0, which only holds data for a - single flight. You can adjust the size. + ifdef::telemini[] + computer, except for TeleMini v1.0, which + only holds data for a single flight. + endif::telemini[] + ifndef::telemini[] + computer. + endif::telemini[] + You can adjust the size. Altus Metrum flight computers will not overwrite existing flight data, so be sure to download flight data and erase it diff --git a/doc/getting-started.inc b/doc/getting-started.inc index 8401f4d0..9c0df26d 100644 --- a/doc/getting-started.inc +++ b/doc/getting-started.inc @@ -5,24 +5,30 @@ === Batteries + ifdef::telemetrum,telemega,easymega[] For TeleMetrum, TeleMega and EasyMega, the battery can be charged by plugging it into the corresponding socket of the device and then using the USB cable to plug the flight computer into your computer's USB socket. The on-board circuitry will charge the battery whenever it is plugged in, because the on-off switch does NOT control the charging circuitry. - The Lithium Polymer TeleMini and EasyMini battery can be charged by - disconnecting it from the board and plugging it into a - standalone battery charger such as the LipoCharger product - included in TeleMini Starter Kits, and connecting that via a USB - cable to a laptop or other USB power source. + endif::telemetrum,telemega,easymega[] + The Lithium Polymer + ifdef::telemini[TeleMini and] + EasyMini battery can be charged by disconnecting it + from the board and plugging it into a standalone + battery charger such as link:http://altusmetrum.org/LipoCharger[LipoCharger], and + connecting that via a USB cable to a laptop or other + USB power source. - You can also choose to use another battery with TeleMini v2.0 - and EasyMini, anything supplying between 4 and 12 volts should + You can also choose to use another battery with + ifdef::telemini[TeleMini v2.0 and] + EasyMini, anything supplying between 4 and 12 volts should work fine (like a standard 9V battery), but if you are planning to fire pyro charges, ground testing is required to verify that the battery supplies enough current to fire your chosen e-matches. + ifdef::telemetrum,telemega,easymega[] [NOTE] ==== On TeleMetrum v1 boards, when the GPS chip is initially @@ -45,7 +51,9 @@ battery is damaged or missing, both LEDs will be lit, which appears yellow. ==== + endif::telemetrum,telemega,easymega[] + ifdef::radio[] === Ground Station Hardware There are two ground stations available, the TeleDongle USB to @@ -58,6 +66,7 @@ computer. If you are using an older version of Linux and are having problems, try moving to a fresher kernel (2.6.33 or newer). + endif::radio[] === Linux/Mac/Windows Ground Station Software @@ -71,6 +80,7 @@ available. The latest version may always be downloaded from http://altusmetrum.org/AltOS + ifdef::radio[] === Android Ground Station Software TeleBT can also connect to an Android device over @@ -83,3 +93,4 @@ without network access, you'll want to download offline map data before wandering away from the network. + endif::radio[] diff --git a/doc/installation.inc b/doc/installation.inc index 32d81984..d390551e 100644 --- a/doc/installation.inc +++ b/doc/installation.inc @@ -5,11 +5,14 @@ power on/off, and two pairs of wires connecting e-matches for the apogee and main ejection charges. All Altus Metrum products are designed for use with single-cell batteries with 3.7 volts - nominal. TeleMini v2.0 and EasyMini may also be used with other + nominal. + ifdef::telemini[TeleMini v2.0 and] + EasyMini may also be used with other batteries as long as they supply between 4 and 12 volts. - The battery connectors are a standard 2-pin JST connector and - match batteries sold by Spark Fun. These batteries are + The battery connectors are a standard 2-pin JST connector; you + can purchase suitable batteries from the any vendor selling + Altus Metrum products. 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 @@ -20,7 +23,15 @@ [WARNING] Check polarity and voltage before connecting any battery not - purchased from Altus Metrum or Spark Fun. + purchased from Altus Metrum. + + [WARNING] + Spark Fun sells batteries that have a matching connector with + the correct polarity. However, these batteries include an + integrated current limiting circuit. That circuit will cause + the battery to shut down when firing the igniter circuit. Do + not use these batteries unless you remove the current limiting + circuit. By default, we use the unregulated output of the battery directly to fire ejection charges. This works marvelously @@ -35,12 +46,18 @@ at the aft end of the altimeter. You'll need a very small straight blade screwdriver for these screws, such as you might find in a jeweler's screwdriver set. + ifndef::telemini[] + The screw terminal block is also used for the power switch leads. + endif::telemini[] + ifdef::telemini[] Except for TeleMini v1.0, the flight computers also use the screw terminal block for the power switch leads. On TeleMini v1.0, the power switch leads are soldered directly to the board and can be connected directly to a switch. + endif::telemini[] + ifdef::radio[] For most air-frames, the integrated antennas are more than adequate. However, if you are installing in a carbon-fiber or metal electronics bay which is opaque to RF signals, you may need to @@ -49,3 +66,4 @@ and, on TeleMetrum v1, you can unplug the integrated GPS antenna and select an appropriate off-board GPS antenna with cable terminating in a U.FL connector. + endif::radio[] diff --git a/doc/specs.inc b/doc/specs.inc index 6af3bd76..72664625 100644 --- a/doc/specs.inc +++ b/doc/specs.inc @@ -9,6 +9,7 @@ |================================ |Device | Barometer | Z-axis accel | GPS | 3D sensors | Storage | RF Output | Battery + ifdef::telemetrum[] |TeleMetrum v1.0 |MP3H6115 10km (33k') |MMA2202 50g @@ -44,7 +45,9 @@ |8MB |40mW |3.7V + endif::telemetrum[] + ifdef::telemini[] |TeleMini v1.0 |MP3H6115 10km (33k') |- @@ -62,7 +65,9 @@ |1MB |10mW |3.7-12V + endif::telemini[] + ifdef::easymini[] |EasyMini v1.0 |MS5607 30km (100k') |- @@ -71,7 +76,9 @@ |1MB |- |3.7-12V + endif::easymini[] + ifdef::telemega[] |TeleMega v1.0 |MS5607 30km (100k') |MMA6555 102g @@ -80,7 +87,9 @@ |8MB |40mW |3.7V + endif::telemega[] + ifdef::easymega[] |EasyMega v1.0 |MS5607 30km (100k') |MMA6555 102g @@ -89,6 +98,8 @@ |8MB |- |3.7V + endif::easymega[] + |============================== <<<< @@ -97,13 +108,16 @@ |============================== |Device|Connectors|Screw Terminals|Width|Length|Tube Size + ifdef::telemetrum[] |TeleMetrum |Antenna Debug Companion USB Battery |Apogee pyro Main pyro Switch |1 inch (2.54cm) |2 ¾ inch (6.99cm) |29mm coupler + endif::telemetrum[] + ifdef::telemini[] |TeleMini v1.0 |Antenna Debug Battery |Apogee pyro Main pyro @@ -117,25 +131,33 @@ |0.8 inch (2.03cm) |1½ inch (3.81cm) |24mm coupler + endif::telemini[] + ifdef::easymini[] |EasyMini |Debug USB Battery |Apogee pyro Main pyro Battery |0.8 inch (2.03cm) |1½ inch (3.81cm) |24mm coupler + endif::easymini[] + ifdef::telemega[] |TeleMega |Antenna Debug Companion USB Battery |Apogee pyro Main pyro Pyro A-D Switch Pyro battery |1¼ inch (3.18cm) |3¼ inch (8.26cm) |38mm coupler + endif::telemega[] + ifdef::easymega[] |EasyMega |Debug Companion USB Battery |Apogee pyro Main pyro Pyro A-D Switch Pyro battery |1¼ inch (3.18cm) |2¼ inch (5.62cm) |38mm coupler + endif::easymega[] + |==================================== diff --git a/doc/system-operation.inc b/doc/system-operation.inc index 4503f525..313415ca 100644 --- a/doc/system-operation.inc +++ b/doc/system-operation.inc @@ -5,7 +5,10 @@ The AltOS firmware build for the altimeters has two fundamental modes, “idle” and “flight”. Which of these modes - the firmware operates in is determined at start up time. For + the firmware operates in is determined at start up + time. + ifdef::telemetrum,telemega,easymega[] + For TeleMetrum, TeleMega and EasyMega, which have accelerometers, the mode is controlled by the orientation of the rocket (well, actually the board, of course...) at the time @@ -13,12 +16,20 @@ the flight computer assumes it's on a rail or rod being prepared for launch, so the firmware chooses flight mode. However, if the rocket is more or less horizontal, the firmware instead enters - idle mode. Since TeleMini v2.0 and EasyMini don't have an + idle mode. + endif::telemetrum,telemega,easymega[] + Since + ifdef::telemini[TeleMini v2.0 and EasyMini don't] + ifndef::telemini[EasyMini doesn't] + have an accelerometer we can use to determine orientation, “idle” mode is selected if the board is connected via USB to a computer, - otherwise the board enters “flight” mode. TeleMini v1.0 + otherwise the board enters “flight” mode. + ifdef::telemini[] + TeleMini v1.0 selects “idle” mode if it receives a command packet within the first five seconds of operation. + endif::telemini[] At power on, the altimeter will beep out the battery voltage to the nearest tenth of a volt. Each digit is represented by @@ -45,13 +56,16 @@ If idle mode is entered, you will hear an audible “di-dit” or see two short flashes (“I” for idle), and the flight state machine is disengaged, thus no ejection charges will fire. + ifdef::radio[] The altimeters also listen for the radio link when in idle mode for requests sent via TeleDongle. Commands can be issued in idle mode over either USB or the radio link - equivalently. TeleMini v1.0 only has the radio link. Idle - mode is useful for configuring the altimeter, for extracting - data from the on-board storage chip after flight, and for - ground testing pyro charges. + equivalently. + ifdef::telemini[TeleMini v1.0 only has the radio link.] + endif::radio[] + Idle mode is useful for configuring the altimeter, for + extracting data from the on-board storage chip after + flight, and for ground testing pyro charges. In “Idle” and “Pad” modes, once the mode indication beeps/flashes and continuity indication has been sent, if @@ -70,6 +84,7 @@ beep. The flight computer will continue to report landed mode and beep out the maximum height until turned off. + ifdef::telemetrum,telemega,easymega[] One “neat trick” of particular value when TeleMetrum, TeleMega or EasyMega are used with very large air-frames, is that you can power the board up while the @@ -80,7 +95,9 @@ step of a rickety step-ladder or hanging off the side of a launch tower with a screw-driver trying to turn on your avionics before installing igniters! + endif::telemetrum,telemega,easymega[] + ifdef::telemini[] TeleMini v1.0 is configured solely via the radio link. Of course, that means you need to know the TeleMini radio configuration values or you won't be able to communicate with it. For situations @@ -99,8 +116,11 @@ piece of small gauge wire, connect the outer two holes together, then power TeleMini up. Once the red LED is lit, disconnect the wire and the board should signal that it's in - 'idle' mode after the initial five second startup period. + 'idle' mode after the initial five second startup + period. + endif::telemini[] + ifdef::gps[] === GPS TeleMetrum and TeleMega include a complete GPS receiver. A @@ -120,7 +140,9 @@ is turned back on, the GPS system should lock very quickly, typically long before igniter installation and return to the flight line are complete. + endif::gps[] + ifdef::radio[] === Controlling An Altimeter Over The Radio Link One of the unique features of the Altus Metrum system is the @@ -199,25 +221,38 @@ lights on the devices. The red LED will flash each time a packet is transmitted, while the green LED will light up on TeleDongle when it is waiting to receive a packet from the altimeter. + endif::radio[] === Ground Testing An important aspect of preparing a rocket using electronic deployment - for flight is ground testing the recovery system. Thanks + for flight is ground testing the recovery system. + ifdef::radio[] + Thanks to the bi-directional radio link central to the Altus Metrum system, this can be accomplished in a TeleMega, TeleMetrum or TeleMini equipped rocket with less work than you may be accustomed to with other systems. It can even be fun! + endif::radio[] Just prep the rocket for flight, then power up the altimeter - in “idle” mode (placing air-frame horizontal for TeleMetrum or TeleMega, or - selecting the Configure Altimeter tab for TeleMini). This will cause - the firmware to go into “idle” mode, in which the normal flight - state machine is disabled and charges will not fire without - manual command. You can now command the altimeter to fire the apogee - or main charges from a safe distance using your computer and - TeleDongle and the Fire Igniter tab to complete ejection testing. - + in “idle” + ifdef::telemetrum,telemega,telemini[] + mode (placing air-frame horizontal for TeleMetrum or TeleMega, or + selecting the Configure Altimeter tab for TeleMini). + This will cause + the firmware to go into “idle” mode, in which the normal flight + state machine is disabled and charges will not fire without + manual command. + endif::telemetrum,telemega,telemini[] + ifndef::telemetrum,telemega,telemini[] + mode. + endif::telemetrum,telemega,telemini[] + You can now command the altimeter to fire the apogee + or main charges from a safe distance using your + computer and the Fire Igniter tab to complete ejection testing. + + ifdef::radio[] === Radio Link TeleMetrum, TeleMini and TeleMega all incorporate an @@ -255,10 +290,13 @@ devices. We hope to fly boards to higher altitudes over time, and would of course appreciate customer feedback on performance in higher altitude flights! + endif::radio[] + ifdef::gps+radio[] :aprsdevices: TeleMetrum v2.0 and TeleMega :configure_section: _configure_altimeter include::aprs-operation.raw[] + endif::gps+radio[] === Configurable Parameters @@ -266,6 +304,5 @@ very simple. Even on our baro-only TeleMini and EasyMini boards, the use of a Kalman filter means there is no need to set a “mach delay”. All of the - configurable parameters can be set using AltosUI - over USB or or radio link via TeleDongle. Read + configurable parameters can be set using AltosUI. Read <<_configure_altimeter>> for more information. diff --git a/doc/telegps.txt b/doc/telegps.txt index 6726b340..47eafe37 100644 --- a/doc/telegps.txt +++ b/doc/telegps.txt @@ -2,6 +2,8 @@ :doctype: book :numbered: :telegps: 1 +:radio: 1 +:gps: 1 :application: TeleGPS include::telegps-dedication.raw[] diff --git a/doc/updating-firmware.inc b/doc/updating-firmware.inc index d22fdb18..11ea1283 100644 --- a/doc/updating-firmware.inc +++ b/doc/updating-firmware.inc @@ -1,12 +1,21 @@ [appendix] == Updating Device Firmware + ifdef::telemega[] TeleMega, TeleMetrum v2, EasyMega, EasyMini and TeleDongle v3 - are all programmed directly over their USB connectors (self - programming). TeleMetrum v1, TeleMini and TeleDongle v0.2 are + are all + endif::telemega[] + ifndef::telemega[] + EasyMini is + endif::telemega[] + programmed directly over their USB connectors (self + programming). + ifdef::telemega[] + TeleMetrum v1, TeleMini and TeleDongle v0.2 are all programmed by using another device as a programmer (pair programming). It's important to recognize which kind of devices you have before trying to reprogram them. + endif::telemega[] You may wish to begin by ensuring you have current firmware images. These are distributed as part of the AltOS software @@ -17,11 +26,15 @@ download the most recent version from http://www.altusmetrum.org/AltOS/ + ifdef::telemega[] === Updating TeleMega, TeleMetrum v2, EasyMega, EasyMini or TeleDongle v3 Firmware + endif::telemega[] + ifndef::telemega[] + === Updating EasyMini Firmware + endif::telemega[] - Self-programmable devices (TeleMega, TeleMetrum v2, - EasyMega and EasyMini) are reprogrammed by connecting - them to your computer over USB + Self-programmable devices 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. @@ -36,7 +49,7 @@ . Select the image you want to flash to the device, which should have a name in the form -v-.ihx, - such as TeleMega-v1.0-1.3.0.ihx. + such as EasyMini-v1.0-1.6.0.ihx. . Make sure the configuration parameters are reasonable looking. If the serial number and/or RF @@ -62,6 +75,7 @@ connectors will force the boot loader to start, even if the regular operating system has been corrupted in some way. + ifdef::telemega[] TeleMega:: Connect pin 6 and pin 1 of the companion @@ -72,7 +86,9 @@ battery. Pin 7 carries 3.3V and the board will crash if that is connected to pin 1, but shouldn't damage the board. + endif::telemega[] + ifdef::easymega[] EasyMega:: Connect pin 6 and pin 1 of the companion @@ -83,7 +99,9 @@ battery. Pin 7 carries 3.3V and the board will crash if that is connected to pin 1, but shouldn't damage the board. + endif::easymega[] + ifdef::telemetrum[] TeleMetrum v2:: Connect pin 6 and pin 1 of the companion @@ -94,7 +112,9 @@ battery. Pin 7 carries 3.3V and the board will crash if that is connected to pin 1, but shouldn't damage the board. + endif::telemetrum[] + ifdef::easymini[] EasyMini:: Connect pin 6 and pin 1 of the debug connector, which @@ -102,13 +122,16 @@ 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. + endif::easymini[] + ifdef::telemetrum[] TeleDongle v3:: Connect pin 32 on the CPU to ground. Pin 32 is closest to the USB wires on the row of pins towards the center of the board. Ground is available on the capacitor next to it, on the end towards the USB wires. + endif::telemetrum[] Once you've located the right pins: @@ -129,6 +152,7 @@ the board has been powered up, you can remove the piece of wire. + ifdef::telemetrum,telemini[] === Pair Programming The big concept to understand is that you have to use @@ -341,3 +365,4 @@ TeleMetrum to help ensure that the cabling to companion boards used in a rocket don't ever come loose accidentally in flight. + endif::telemetrum,telemini[] diff --git a/doc/usage.inc b/doc/usage.inc index caccc168..3f59a50f 100644 --- a/doc/usage.inc +++ b/doc/usage.inc @@ -54,15 +54,19 @@ Altus Metrum flight computers include a beeper to provide information about the state of the system. + ifdef::telemini[] TeleMini doesn't have room for a beeper, so instead it uses an LED, which works the same, except for every beep is replaced with the flash of the LED. + endif::telemini[] - Here's a short summary of all of the modes and the beeping (or - flashing, in the case of TeleMini v1) that accompanies each - mode. In the description of the beeping pattern, “dit” means a - short beep while "dah" means a long beep (three times as - long). “Brap” means a long dissonant tone. + Here's a short summary of all of the modes and the + beeping + ifdef::telemini[(or flashing, in the case of TeleMini v1)] + that accompanies each mode. In the description of the + beeping pattern, “dit” means a short beep while "dah" + means a long beep (three times as long). “Brap” means + a long dissonant tone. .AltOS Modes [options="border",cols="1,1,2,2"] @@ -80,7 +84,8 @@ |Idle |I |dit dit - |Ready to accept commands over USB or radio link. + |Ready to accept commands over USB + ifdef::radio[or radio link.] |Pad |P @@ -163,6 +168,7 @@ stored in on-board flash. |==== + ifdef::radio[] For devices with a radio transmitter, in addition to the digital and APRS telemetry signals, you can also receive audio tones with a standard amateur @@ -201,6 +207,7 @@ find the rocket using RDF techniques when the signal is too weak to receive GPS information via telemetry or APRS. + endif::radio[] === Turning On the Power @@ -216,30 +223,39 @@ Flight/Pad:: The flight computer is waiting to detect launch and then fly the rocket. In this mode, the USB - link is disabled, and the radio goes into - transmit-only mode. The only way to get out of this + link is + ifdef::radio[disabled, and the radio goes into transmit-only mode.] + ifndef::radio[disabled.] + The only way to get out of this mode is to power the flight computer down. Idle:: The flight computer is ready to communicate over USB - and in packet mode over the radio. You can configure + ifdef::radio[and in packet mode over the radio.] + You can configure the flight computer, download data or display the current state. + ifdef::telemetrum,easymega,telemega[] For flight computers with accelerometers (TeleMetrum, EasyMega and TeleMega), the mode is selected by the orientation of the board during the self test interval. If the board is pointing upwards as if ready to fly, it will enter Flight/Pad mode. Otherwise, it will enter Idle mode. + endif::telemetrum,easymega,telemega[] + ifdef::easymini[] For EasyMini, if the USB cable is connected to a computer, it will enter Idle mode. Otherwise, it will enter Flight/Pad mode. + endif::easymini[] + ifdef::telemini[] For TeleMini v1.0, if a packet link is waiting to connect when the device is powered on, it will enter Idle mode, otherwise it will enter Flight/Pad mode. + endif::telemini[] You can see in <<_understanding_beeps>> how to tell which mode the flight computer is in. @@ -278,14 +294,19 @@ === Using a Different Kind of Battery - EasyMini and TeleMini v2 are designed to use either a + EasyMini + ifdef::telemini[and TeleMini v2 are] + ifndef::telemini[is] + designed to use either a lithium polymer battery or any other battery producing between 4 and 12 volts, such as a rectangular 9V battery. + ifdef::telemega,easymega,telemetrum[] [WARNING] TeleMega, EasyMega and TeleMetrum are only designed to operate off a single-cell Lithium Polymer battery and cannot be used with any other kind. Connecting a different kind of battery to any of these will destroy the board. + endif::telemega,easymega,telemetrum[] diff --git a/doc/using-am-products.inc b/doc/using-am-products.inc index 8d7d005a..8bca563d 100644 --- a/doc/using-am-products.inc +++ b/doc/using-am-products.inc @@ -1,23 +1,32 @@ == Using Altus Metrum Products + ifdef::radio[] === Being Legal - First off, in the US, you need an - link:http://www.altusmetrum.org/Radio/[amateur radio license] - or other authorization to legally operate the radio - transmitters that are part of our products. + First off, in the US, you need an + link:http://www.altusmetrum.org/Radio/[amateur radio license] + or other authorization to legally operate the radio + transmitters that are part of our products. + endif::radio[] === In the Rocket In the rocket itself, you just need a flight computer and a single-cell, 3.7 volt nominal Li-Po rechargeable - battery. An 850mAh battery weighs less than a 9V + battery. + ifdef::telemetrum,telemega,easymega[] + An 850mAh battery weighs less than a 9V alkaline battery, and will run a TeleMetrum, TeleMega - or EasyMega for hours. A 110mAh battery weighs less + or EasyMega for hours. + endif::telemetrum,telemega,easymega[] + A 110mAh battery weighs less than a triple A battery and is a good choice for use - with TeleMini or EasyMini. + with + ifdef::telemini[TeleMini or] + EasyMini. + ifdef::radio[] By default, we ship TeleMini, TeleMetrum and TeleMega flight computers with a simple wire antenna. If your electronics bay or the air-frame it resides within is @@ -28,9 +37,11 @@ antenna is fixed on all current products, so you really want to install the flight computer in a bay made of RF-transparent materials if at all possible. + endif::radio[] === On the Ground + ifdef::radio[] To receive the data stream from the rocket, you need an antenna and short feed-line connected to one of our link:http://www.altusmetrum.org/TeleDongle/[TeleDongle] @@ -42,28 +53,35 @@ TeleDongle looks like a simple serial port, your computer does not require special device drivers... just plug it in. + endif::radio[] The GUI tool, AltosUI, is written in Java and runs across Linux, Mac OS and Windows. There's also a suite of C tools for Linux which can perform most of the same tasks. + ifdef::radio[] Alternatively, a TeleBT attached with an SMA to BNC adapter at the feed point of a hand-held yagi used in conjunction with an Android device running AltosDroid makes an outstanding ground station. + endif::radio[] - After the flight, you can use the radio link to + After the flight, + ifdef::radio[] + you can use the radio link to extract the more detailed data logged in either - TeleMetrum or TeleMini devices, or you can use a mini - USB cable to plug into the TeleMetrum board directly. - Pulling out the data without having to open up the - rocket is pretty cool! A USB cable is also how you + TeleMetrum or TeleMini devices, or + endif::radio[] + you can use a + USB cable to plug into the flight computer board directly. + A USB cable is also how you charge the Li-Po battery, so you'll want one of those - anyway... the same cable used by lots of digital + anyway. The same cable used by lots of digital cameras and other modern electronic stuff will work fine. + ifdef::gps[] If your rocket lands out of sight, you may enjoy having a hand-held GPS receiver, so that you can put in a way-point for the last reported rocket position @@ -72,7 +90,9 @@ look around starting from there. AltosDroid on an Android device with GPS receiver works great for this, too! + endif::gps[] + ifdef::radio[] You may also enjoy having a ham radio “HT” that covers the 70cm band... you can use that with your antenna to direction-find the rocket on the ground the same way @@ -102,6 +122,7 @@ with a suitable 70cm HT. TeleDongle and an SMA to BNC adapter fit perfectly between the driven element and reflector of Arrow antennas. + endif::radio[] === Data Analysis @@ -115,7 +136,7 @@ velocity. You can also generate and view a standard set of plots showing the altitude, acceleration, and velocity of the rocket during flight. And you can - even export a TeleMetrum data file usable with Google + even export a flight log in a format usable with Google Maps and Google Earth for visualizing the flight path in two or three dimensions! @@ -125,6 +146,7 @@ === Future Plans + ifdef::telemetrum,telemega,easymega[] We have designed and prototyped several “companion boards” that can attach to the companion connector on TeleMetrum, TeleMega and EasyMega flight computers to @@ -135,6 +157,7 @@ control of events in your rockets beyond the capabilities of our existing productions, please let us know! + endif::telemetrum,telemega,easymega[] Because all of our work is open, both the hardware designs and the software, if you have some great idea -- 2.30.2