Update to 0.9.2
[fw/altos] / doc / altusmetrum.xsl
1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3   "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
4 <book>
5   <title>The Altus Metrum System</title>
6   <subtitle>An Owner's Manual for TeleMetrum and TeleDongle Devices</subtitle>
7   <bookinfo>
8     <author>
9       <firstname>Bdale</firstname>
10       <surname>Garbee</surname>
11     </author>
12     <author>
13       <firstname>Keith</firstname>
14       <surname>Packard</surname>
15     </author>
16     <author>
17       <firstname>Bob</firstname>
18       <surname>Finch</surname>
19     </author>
20     <author>
21       <firstname>Anthony</firstname>
22       <surname>Towns</surname>
23     </author>
24     <copyright>
25       <year>2011</year>
26       <holder>Bdale Garbee and Keith Packard</holder>
27     </copyright>
28     <legalnotice>
29       <para>
30         This document is released under the terms of the
31         <ulink url="http://creativecommons.org/licenses/by-sa/3.0/">
32           Creative Commons ShareAlike 3.0
33         </ulink>
34         license.
35       </para>
36     </legalnotice>
37     <revhistory>
38       <revision>
39         <revnumber>0.9.2</revnumber>
40         <date>19 March 2011</date>
41         <revremark>
42           Updated for software version 0.9.2.  This version has minor
43           updates to the AltosUI code to fix graphing on Mac OS X and
44           make flight data download more reliable. It is otherwise
45           completely compatible with version 0.9.
46         </revremark>
47       </revision>
48       <revision>
49         <revnumber>0.9</revnumber>
50         <date>18 January 2011</date>
51         <revremark>
52           Updated for software version 0.9.  Note that 0.9 represents a
53           telemetry format change, meaning both ends of a link (TeleMetrum and
54           TeleDongle) must be updated or communications will fail.
55         </revremark>
56       </revision>
57     </revhistory>
58     <revhistory>
59       <revision>
60         <revnumber>0.8</revnumber>
61         <date>24 November 2010</date>
62         <revremark>Updated for software version 0.8 </revremark>
63       </revision>
64     </revhistory>
65   </bookinfo>
66   <acknowledgements>
67     <para>
68       Thanks to Bob Finch, W9YA, NAR 12965, TRA 12350 for writing "The
69       Mere-Mortals Quick Start/Usage Guide to the Altus Metrum Starter
70       Kit" which has turned into the Getting Started chapter in this
71       book. Bob was one of our first customers for a production
72       TeleMetrum, and the enthusiasm that led to his contribution of
73       this section is immensely gratifying and highy appreciated!
74     </para>
75     <para>
76       And thanks to Anthony (AJ) Towns for contributing the
77       AltosUI graphing and site map code and documentation. Free
78       software means that our customers and friends can become our
79       collaborators, and we certainly appreciate this level of
80       contribution.
81     </para>
82     <para>
83       Have fun using these products, and we hope to meet all of you
84       out on the rocket flight line somewhere.
85       <literallayout>
86 Bdale Garbee, KB0G
87 NAR #87103, TRA #12201
88
89 Keith Packard, KD7SQG
90 NAR #88757, TRA #12200
91       </literallayout>
92     </para>
93   </acknowledgements>
94   <chapter>
95     <title>Introduction and Overview</title>
96     <para>
97       Welcome to the Altus Metrum community!  Our circuits and software reflect
98       our passion for both hobby rocketry and Free Software.  We hope their
99       capabilities and performance will delight you in every way, but by
100       releasing all of our hardware and software designs under open licenses,
101       we also hope to empower you to take as active a role in our collective
102       future as you wish!
103     </para>
104     <para>
105       The focal point of our community is TeleMetrum, a dual deploy altimeter
106       with fully integrated GPS and radio telemetry as standard features, and
107       a "companion interface" that will support optional capabilities in the
108       future.
109     </para>
110     <para>
111       Complementing TeleMetrum is TeleDongle, a USB to RF interface for
112       communicating with TeleMetrum.  Combined with your choice of antenna and
113       notebook computer, TeleDongle and our associated user interface software
114       form a complete ground station capable of logging and displaying in-flight
115       telemetry, aiding rocket recovery, then processing and archiving flight
116       data for analysis and review.
117     </para>
118     <para>
119       More products will be added to the Altus Metrum family over time, and
120       we currently envision that this will be a single, comprehensive manual
121       for the entire product family.
122     </para>
123   </chapter>
124   <chapter>
125     <title>Getting Started</title>
126     <para>
127       The first thing to do after you check the inventory of parts in your
128       "starter kit" is to charge the battery by plugging it into the
129       corresponding socket of the TeleMetrum and then using the USB A to
130       mini B
131       cable to plug the Telemetrum into your computer's USB socket. The
132       TeleMetrum circuitry will charge the battery whenever it is plugged
133       in, because the TeleMetrum's on-off switch does NOT control the
134       charging circuitry.  When the GPS chip is initially searching for
135       satellites, TeleMetrum will consume more current than it can pull
136       from the usb port, so the battery must be attached in order to get
137       satellite lock.  Once GPS is locked, the current consumption goes back
138       down enough to enable charging while
139       running. So it's a good idea to fully charge the battery as your
140       first item of business so there is no issue getting and maintaining
141       satellite lock.  The yellow charge indicator led will go out when the
142       battery is nearly full and the charger goes to trickle charge. It
143       can take several hours to fully recharge a deeply discharged battery.
144     </para>
145     <para>
146       The other active device in the starter kit is the TeleDongle USB to
147       RF interface.  If you plug it in to your Mac or Linux computer it should
148       "just work", showing up as a serial port device.  Windows systems need
149       driver information that is part of the AltOS download to know that the
150       existing USB modem driver will work.  If you are using Linux and are
151       having problems, try moving to a fresher kernel (2.6.33 or newer), as
152       the USB serial driver had ugly bugs in some earlier versions.
153     </para>
154     <para>
155       Next you should obtain and install the AltOS utilities.  These include
156       the AltosUI ground station program, current firmware images for
157       TeleMetrum and TeleDongle, and a number of standalone utilities that
158       are rarely needed.  Pre-built binary packages are available for Debian
159       Linux, Microsoft Windows, and recent MacOSX versions.  Full sourcecode
160       and build instructions for some other Linux variants are also available.
161       The latest version may always be downloaded from
162       <ulink url="http://altusmetrum.org/AltOS"/>.
163     </para>
164     <para>
165       Both Telemetrum and TeleDongle can be directly communicated
166       with using USB ports. The first thing you should try after getting
167       both units plugged into to your computer's usb port(s) is to run
168       'ao-list' from a terminal-window to see what port-device-name each
169       device has been assigned by the operating system.
170       You will need this information to access the devices via their
171       respective on-board firmware and data using other command line
172       programs in the AltOS software suite.
173     </para>
174     <para>
175       To access the device's firmware for configuration you need a terminal
176       program such as you would use to talk to a modem.  The software
177       authors prefer using the program 'cu' which comes from the UUCP package
178       on most Unix-like systems such as Linux.  An example command line for
179       cu might be 'cu -l /dev/ttyACM0', substituting the correct number
180       indicated from running the
181       ao-list program.  Another reasonable terminal program for Linux is
182       'cutecom'.  The default 'escape'
183       character used by CU (i.e. the character you use to
184       issue commands to cu itself instead of sending the command as input
185       to the connected device) is a '~'. You will need this for use in
186       only two different ways during normal operations. First is to exit
187       the program by sending a '~.' which is called a 'escape-disconnect'
188       and allows you to close-out from 'cu'. The
189       second use will be outlined later.
190     </para>
191     <para>
192       Both TeleMetrum and TeleDongle share the concept of a two level
193       command set in their firmware.
194       The first layer has several single letter commands. Once
195       you are using 'cu' (or 'cutecom') sending (typing) a '?'
196       returns a full list of these
197       commands. The second level are configuration sub-commands accessed
198       using the 'c' command, for
199       instance typing 'c?' will give you this second level of commands
200       (all of which require the
201       letter 'c' to access).  Please note that most configuration options
202       are stored only in DataFlash memory, and only TeleMetrum has this
203       memory to save the various values entered like the channel number
204       and your callsign when powered off.  TeleDongle requires that you
205       set these each time you plug it in, which ao-view can help with.
206     </para>
207     <para>
208       Try setting these config ('c' or second level menu) values.  A good
209       place to start is by setting your call sign.  By default, the boards
210       use 'N0CALL' which is cute, but not exactly legal!
211       Spend a few minutes getting comfortable with the units, their
212       firmware, and 'cu' (or possibly 'cutecom').
213       For instance, try to send
214       (type) a 'c r 2' and verify the channel change by sending a 'c s'.
215       Verify you can connect and disconnect from the units while in your
216       terminal program by sending the escape-disconnect mentioned above.
217     </para>
218     <para>
219       Note that the 'reboot' command, which is very useful on TeleMetrum,
220       will likely just cause problems with the dongle.  The *correct* way
221       to reset the dongle is just to unplug and re-plug it.
222     </para>
223     <para>
224       A fun thing to do at the launch site and something you can do while
225       learning how to use these units is to play with the rf-link access
226       of the TeleMetrum from the TeleDongle.  Be aware that you *must* create
227       some physical separation between the devices, otherwise the link will
228       not function due to signal overload in the receivers in each device.
229     </para>
230     <para>
231       Now might be a good time to take a break and read the rest of this
232       manual, particularly about the two "modes" that the TeleMetrum
233       can be placed in and how the position of the TeleMetrum when booting
234       up will determine whether the unit is in "pad" or "idle" mode.
235     </para>
236     <para>
237       You can access a TeleMetrum in idle mode from the Teledongle's USB
238       connection using the rf link
239       by issuing a 'p' command to the TeleDongle. Practice connecting and
240       disconnecting ('~~' while using 'cu') from the TeleMetrum.  If
241       you cannot escape out of the "p" command, (by using a '~~' when in
242       CU) then it is likely that your kernel has issues.  Try a newer version.
243     </para>
244     <para>
245       Using this rf link allows you to configure the TeleMetrum, test
246       fire e-matches and igniters from the flight line, check pyro-match
247       continuity and so forth. You can leave the unit turned on while it
248       is in 'idle mode' and then place the
249       rocket vertically on the launch pad, walk away and then issue a
250       reboot command.  The TeleMetrum will reboot and start sending data
251       having changed to the "pad" mode. If the TeleDongle is not receiving
252       this data, you can disconnect 'cu' from the Teledongle using the
253       procedures mentioned above and THEN connect to the TeleDongle from
254       inside 'ao-view'. If this doesn't work, disconnect from the
255       TeleDongle, unplug it, and try again after plugging it back in.
256     </para>
257     <para>
258       Eventually the GPS will find enough satellites, lock in on them,
259       and 'ao-view' will both auditorially announce and visually indicate
260       that GPS is ready.
261       Now you can launch knowing that you have a good data path and
262       good satellite lock for flight data and recovery.  Remember
263       you MUST tell ao-view to connect to the TeleDongle explicitly in
264       order for ao-view to be able to receive data.
265     </para>
266     <para>
267       Both RDF (radio direction finding) tones from the TeleMetrum and
268       GPS trekking data are available and together are very useful in
269       locating the rocket once it has landed. (The last good GPS data
270       received before touch-down will be on the data screen of 'ao-view'.)
271     </para>
272     <para>
273       Once you have recovered the rocket you can download the eeprom
274       contents using either 'ao-dumplog' (or possibly 'ao-eeprom'), over
275       either a USB cable or over the radio link using TeleDongle.
276       And by following the man page for 'ao-postflight' you can create
277       various data output reports, graphs, and even kml data to see the
278       flight trajectory in google-earth. (Moving the viewing angle making
279       sure to connect the yellow lines while in google-earth is the proper
280       technique.)
281     </para>
282     <para>
283       As for ao-view.... some things are in the menu but don't do anything
284       very useful.  The developers have stopped working on ao-view to focus
285       on a new, cross-platform ground station program.  So ao-view may or
286       may not be updated in the future.  Mostly you just use
287       the Log and Device menus.  It has a wonderful display of the incoming
288       flight data and I am sure you will enjoy what it has to say to you
289       once you enable the voice output!
290     </para>
291     <section>
292       <title>FAQ</title>
293       <para>
294         The altimeter (TeleMetrum) seems to shut off when disconnected from the
295         computer.  Make sure the battery is adequately charged.  Remember the
296         unit will pull more power than the USB port can deliver before the
297         GPS enters "locked" mode.  The battery charges best when TeleMetrum
298         is turned off.
299       </para>
300       <para>
301         It's impossible to stop the TeleDongle when it's in "p" mode, I have
302         to unplug the USB cable?  Make sure you have tried to "escape out" of
303         this mode.  If this doesn't work the reboot procedure for the
304         TeleDongle *is* to simply unplug it. 'cu' however will retain it's
305         outgoing buffer IF your "escape out" ('~~') does not work.
306         At this point using either 'ao-view' (or possibly
307         'cutemon') instead of 'cu' will 'clear' the issue and allow renewed
308         communication.
309       </para>
310       <para>
311         The amber LED (on the TeleMetrum/altimeter) lights up when both
312         battery and USB are connected. Does this mean it's charging?
313         Yes, the yellow LED indicates the charging at the 'regular' rate.
314         If the led is out but the unit is still plugged into a USB port,
315         then the battery is being charged at a 'trickle' rate.
316       </para>
317       <para>
318         There are no "dit-dah-dah-dit" sound like the manual mentions?
319         That's the "pad" mode.  Weak batteries might be the problem.
320         It is also possible that the unit is horizontal and the output
321         is instead a "dit-dit" meaning 'idle'.
322       </para>
323       <para>
324         It's unclear how to use 'ao-view' and other programs when 'cu'
325         is running. You cannot have more than one program connected to
326         the TeleDongle at one time without apparent data loss as the
327         incoming data will not make it to both programs intact.
328         Disconnect whatever programs aren't currently being used.
329       </para>
330       <para>
331         How do I save flight data?
332         Live telemetry is written to file(s) whenever 'ao-view' is connected
333         to the TeleDongle.  The file area defaults to ~/altos
334         but is easily changed using the menus in 'ao-view'. The files that
335         are written end in '.telem'. The after-flight
336         data-dumped files will end in .eeprom and represent continuous data
337         unlike the rf-linked .telem files that are subject to the
338         turnarounds/data-packaging time slots in the half-duplex rf data path.
339         See the above instructions on what and how to save the eeprom stored
340         data after physically retrieving your TeleMetrum.  Make sure to save
341         the on-board data after each flight, as the current firmware will
342         over-write any previous flight data during a new flight.
343       </para>
344     </section>
345   </chapter>
346   <chapter>
347     <title>Specifications</title>
348     <itemizedlist>
349       <listitem>
350         <para>
351           Recording altimeter for model rocketry.
352         </para>
353       </listitem>
354       <listitem>
355         <para>
356           Supports dual deployment (can fire 2 ejection charges).
357         </para>
358       </listitem>
359       <listitem>
360         <para>
361           70cm ham-band transceiver for telemetry downlink.
362         </para>
363       </listitem>
364       <listitem>
365         <para>
366           Barometric pressure sensor good to 45k feet MSL.
367         </para>
368       </listitem>
369       <listitem>
370         <para>
371           1-axis high-g accelerometer for motor characterization, capable of
372           +/- 50g using default part.
373         </para>
374       </listitem>
375       <listitem>
376         <para>
377           On-board, integrated GPS receiver with 5hz update rate capability.
378         </para>
379       </listitem>
380       <listitem>
381         <para>
382           On-board 1 megabyte non-volatile memory for flight data storage.
383         </para>
384       </listitem>
385       <listitem>
386         <para>
387           USB interface for battery charging, configuration, and data recovery.
388         </para>
389       </listitem>
390       <listitem>
391         <para>
392           Fully integrated support for LiPo rechargeable batteries.
393         </para>
394       </listitem>
395       <listitem>
396         <para>
397           Uses LiPo to fire e-matches, can be modiied to support 
398           optional separate pyro battery if needed.
399         </para>
400       </listitem>
401       <listitem>
402         <para>
403           2.75 x 1 inch board designed to fit inside 29mm airframe coupler tube.
404         </para>
405       </listitem>
406     </itemizedlist>
407   </chapter>
408   <chapter>
409     <title>Handling Precautions</title>
410     <para>
411       TeleMetrum is a sophisticated electronic device.  When handled gently and
412       properly installed in an airframe, it will deliver impressive results.
413       However, like all electronic devices, there are some precautions you
414       must take.
415     </para>
416     <para>
417       The Lithium Polymer rechargeable batteries used with TeleMetrum have an
418       extraordinary power density.  This is great because we can fly with
419       much less battery mass than if we used alkaline batteries or previous
420       generation rechargeable batteries... but if they are punctured
421       or their leads are allowed to short, they can and will release their
422       energy very rapidly!
423       Thus we recommend that you take some care when handling our batteries
424       and consider giving them some extra protection in your airframe.  We
425       often wrap them in suitable scraps of closed-cell packing foam before
426       strapping them down, for example.
427     </para>
428     <para>
429       The TeleMetrum barometric sensor is sensitive to sunlight.  In normal
430       mounting situations, it and all of the other surface mount components
431       are "down" towards whatever the underlying mounting surface is, so
432       this is not normally a problem.  Please consider this, though, when
433       designing an installation, for example, in a 29mm airframe with a
434       see-through plastic payload bay.
435     </para>
436     <para>
437       The TeleMetrum barometric sensor sampling port must be able to
438       "breathe",
439       both by not being covered by foam or tape or other materials that might
440       directly block the hole on the top of the sensor, but also by having a
441       suitable static vent to outside air.
442     </para>
443     <para>
444       As with all other rocketry electronics, TeleMetrum must be protected
445       from exposure to corrosive motor exhaust and ejection charge gasses.
446     </para>
447   </chapter>
448   <chapter>
449     <title>Hardware Overview</title>
450     <para>
451       TeleMetrum is a 1 inch by 2.75 inch circuit board.  It was designed to
452       fit inside coupler for 29mm airframe tubing, but using it in a tube that
453       small in diameter may require some creativity in mounting and wiring
454       to succeed!  The default 1/4
455       wave UHF wire antenna attached to the center of the nose-cone end of
456       the board is about 7 inches long, and wiring for a power switch and
457       the e-matches for apogee and main ejection charges depart from the
458       fin can end of the board.  Given all this, an ideal "simple" avionics
459       bay for TeleMetrum should have at least 10 inches of interior length.
460     </para>
461     <para>
462       A typical TeleMetrum installation using the on-board GPS antenna and
463       default wire UHF antenna involves attaching only a suitable
464       Lithium Polymer battery, a single pole switch for power on/off, and
465       two pairs of wires connecting e-matches for the apogee and main ejection
466       charges.
467     </para>
468     <para>
469       By default, we use the unregulated output of the LiPo battery directly
470       to fire ejection charges.  This works marvelously with standard
471       low-current e-matches like the J-Tek from MJG Technologies, and with
472       Quest Q2G2 igniters.  However, if you
473       want or need to use a separate pyro battery, the board can be factory
474       modified to do so.  This involves cutting two traces and adding a jumper
475       in a densely populated part of the board on TeleMetrum v1.0 and v1.1,
476       along with installation of a pyro battery connector at location B2.
477     </para>
478     <para>
479       We offer two choices of pyro and power switch connector, or you can
480       choose neither and solder wires directly to the board.  All three choices
481       are reasonable depending on the constraints of your airframe.  Our
482       favorite option when there is sufficient room above the board is to use
483       the Tyco pin header with polarization and locking.  If you choose this
484       option, you crimp individual wires for the power switch and e-matches
485       into a mating connector, and installing and removing the TeleMetrum
486       board from an airframe is as easy as plugging or unplugging two
487       connectors.  If the airframe will not support this much height or if
488       you want to be able to directly attach e-match leads to the board, we
489       offer a screw terminal block.  This is very similar to what most other
490       altimeter vendors provide and so may be the most familiar option.
491       You'll need a very small straight blade screwdriver to connect
492       and disconnect the board in this case, such as you might find in a
493       jeweler's screwdriver set.  Finally, you can forego both options and
494       solder wires directly to the board, which may be the best choice for
495       minimum diameter and/or minimum mass designs.
496     </para>
497     <para>
498       For most airframes, the integrated GPS antenna and wire UHF antenna are
499       a great combination.  However, if you are installing in a carbon-fiber
500       electronics bay which is opaque to RF signals, you may need to use
501       off-board external antennas instead.  In this case, you can order
502       TeleMetrum with an SMA connector for the UHF antenna connection, and
503       you can unplug the integrated GPS antenna and select an appropriate
504       off-board GPS antenna with cable terminating in a U.FL connector.
505     </para>
506   </chapter>
507   <chapter>
508     <title>System Operation</title>
509     <section>
510       <title>Firmware Modes </title>
511       <para>
512         The AltOS firmware build for TeleMetrum has two fundamental modes,
513         "idle" and "flight".  Which of these modes the firmware operates in
514         is determined by the orientation of the rocket (well, actually the
515         board, of course...) at the time power is switched on.  If the rocket
516         is "nose up", then TeleMetrum assumes it's on a rail or rod being
517         prepared for launch, so the firmware chooses flight mode.  However,
518         if the rocket is more or less horizontal, the firmware instead enters
519         idle mode.
520       </para>
521       <para>
522         At power on, you will hear three beeps
523         ("S" in Morse code for startup) and then a pause while
524         TeleMetrum completes initialization and self tests, and decides which
525         mode to enter next.
526       </para>
527       <para>
528         In flight or "pad" mode, TeleMetrum turns on the GPS system,
529         engages the flight
530         state machine, goes into transmit-only mode on the RF link sending
531         telemetry, and waits for launch to be detected.  Flight mode is
532         indicated by an audible "di-dah-dah-dit" ("P" for pad) on the
533         beeper, followed by
534         beeps indicating the state of the pyrotechnic igniter continuity.
535         One beep indicates apogee continuity, two beeps indicate
536         main continuity, three beeps indicate both apogee and main continuity,
537         and one longer "brap" sound indicates no continuity.  For a dual
538         deploy flight, make sure you're getting three beeps before launching!
539         For apogee-only or motor eject flights, do what makes sense.
540       </para>
541       <para>
542         In idle mode, you will hear an audible "di-dit" ("I" for idle), and
543         the normal flight state machine is disengaged, thus
544         no ejection charges will fire.  TeleMetrum also listens on the RF
545         link when in idle mode for packet mode requests sent from TeleDongle.
546         Commands can be issued to a TeleMetrum in idle mode over either
547         USB or the RF link equivalently.
548         Idle mode is useful for configuring TeleMetrum, for extracting data
549         from the on-board storage chip after flight, and for ground testing
550         pyro charges.
551       </para>
552       <para>
553         One "neat trick" of particular value when TeleMetrum is used with very
554         large airframes, is that you can power the board up while the rocket
555         is horizontal, such that it comes up in idle mode.  Then you can
556         raise the airframe to launch position, use a TeleDongle to open
557         a packet connection, and issue a 'reset' command which will cause
558         TeleMetrum to reboot, realize it's now nose-up, and thus choose
559         flight mode.  This is much safer than standing on the top step of a
560         rickety step-ladder or hanging off the side of a launch tower with
561         a screw-driver trying to turn on your avionics before installing
562         igniters!
563       </para>
564     </section>
565     <section>
566       <title>GPS </title>
567       <para>
568         TeleMetrum includes a complete GPS receiver.  See a later section for
569         a brief explanation of how GPS works that will help you understand
570         the information in the telemetry stream.  The bottom line is that
571         the TeleMetrum GPS receiver needs to lock onto at least four
572         satellites to obtain a solid 3 dimensional position fix and know
573         what time it is!
574       </para>
575       <para>
576         TeleMetrum provides backup power to the GPS chip any time a LiPo
577         battery is connected.  This allows the receiver to "warm start" on
578         the launch rail much faster than if every power-on were a "cold start"
579         for the GPS receiver.  In typical operations, powering up TeleMetrum
580         on the flight line in idle mode while performing final airframe
581         preparation will be sufficient to allow the GPS receiver to cold
582         start and acquire lock.  Then the board can be powered down during
583         RSO review and installation on a launch rod or rail.  When the board
584         is turned back on, the GPS system should lock very quickly, typically
585         long before igniter installation and return to the flight line are
586         complete.
587       </para>
588     </section>
589     <section>
590       <title>Ground Testing </title>
591       <para>
592         An important aspect of preparing a rocket using electronic deployment
593         for flight is ground testing the recovery system.  Thanks
594         to the bi-directional RF link central to the Altus Metrum system,
595         this can be accomplished in a TeleMetrum-equipped rocket without as
596         much work as you may be accustomed to with other systems.  It can
597         even be fun!
598       </para>
599       <para>
600         Just prep the rocket for flight, then power up TeleMetrum while the
601         airframe is horizontal.  This will cause the firmware to go into
602         "idle" mode, in which the normal flight state machine is disabled and
603         charges will not fire without manual command.  Then, establish an
604         RF packet connection from a TeleDongle-equipped computer using the
605         P command from a safe distance.  You can now command TeleMetrum to
606         fire the apogee or main charges to complete your testing.
607       </para>
608       <para>
609         In order to reduce the chance of accidental firing of pyrotechnic
610         charges, the command to fire a charge is intentionally somewhat
611         difficult to type, and the built-in help is slightly cryptic to
612         prevent accidental echoing of characters from the help text back at
613         the board from firing a charge.  The command to fire the apogee
614         drogue charge is 'i DoIt drogue' and the command to fire the main
615         charge is 'i DoIt main'.
616       </para>
617     </section>
618     <section>
619       <title>Radio Link </title>
620       <para>
621         The chip our boards are based on incorporates an RF transceiver, but
622         it's not a full duplex system... each end can only be transmitting or
623         receiving at any given moment.  So we had to decide how to manage the
624         link.
625       </para>
626       <para>
627         By design, TeleMetrum firmware listens for an RF connection when
628         it's in "idle mode" (turned on while the rocket is horizontal), which
629         allows us to use the RF link to configure the rocket, do things like
630         ejection tests, and extract data after a flight without having to
631         crack open the airframe.  However, when the board is in "flight
632         mode" (turned on when the rocket is vertical) the TeleMetrum only
633         transmits and doesn't listen at all.  That's because we want to put
634         ultimate priority on event detection and getting telemetry out of
635         the rocket and out over
636         the RF link in case the rocket crashes and we aren't able to extract
637         data later...
638       </para>
639       <para>
640         We don't use a 'normal packet radio' mode because they're just too
641         inefficient.  The GFSK modulation we use is just FSK with the
642         baseband pulses passed through a
643         Gaussian filter before they go into the modulator to limit the
644         transmitted bandwidth.  When combined with the hardware forward error
645         correction support in the cc1111 chip, this allows us to have a very
646         robust 38.4 kilobit data link with only 10 milliwatts of transmit power,
647         a whip antenna in the rocket, and a hand-held Yagi on the ground.  We've
648         had flights to above 21k feet AGL with good reception, and calculations
649         suggest we should be good to well over 40k feet AGL with a 5-element yagi on
650         the ground.  We hope to fly boards to higher altitudes soon, and would
651         of course appreciate customer feedback on performance in higher
652         altitude flights!
653       </para>
654     </section>
655     <section>
656       <title>Configurable Parameters</title>
657       <para>
658         Configuring a TeleMetrum board for flight is very simple.  Because we
659         have both acceleration and pressure sensors, there is no need to set
660         a "mach delay", for example.  The few configurable parameters can all
661         be set using a simple terminal program over the USB port or RF link
662         via TeleDongle.
663       </para>
664       <section>
665         <title>Radio Channel</title>
666         <para>
667           Our firmware supports 10 channels.  The default channel 0 corresponds
668           to a center frequency of 434.550 Mhz, and channels are spaced every
669           100 khz.  Thus, channel 1 is 434.650 Mhz, and channel 9 is 435.550 Mhz.
670           At any given launch, we highly recommend coordinating who will use
671           each channel and when to avoid interference.  And of course, both
672           TeleMetrum and TeleDongle must be configured to the same channel to
673           successfully communicate with each other.
674         </para>
675         <para>
676           To set the radio channel, use the 'c r' command, like 'c r 3' to set
677           channel 3.
678           As with all 'c' sub-commands, follow this with a 'c w' to write the
679           change to the parameter block in the on-board DataFlash chip on
680           your TeleMetrum board if you want the change to stay in place across reboots.
681         </para>
682       </section>
683       <section>
684         <title>Apogee Delay</title>
685         <para>
686           Apogee delay is the number of seconds after TeleMetrum detects flight
687           apogee that the drogue charge should be fired.  In most cases, this
688           should be left at the default of 0.  However, if you are flying
689           redundant electronics such as for an L3 certification, you may wish
690           to set one of your altimeters to a positive delay so that both
691           primary and backup pyrotechnic charges do not fire simultaneously.
692         </para>
693         <para>
694           To set the apogee delay, use the 'c d' command.
695           As with all 'c' sub-commands, follow this with a 'c w' to write the
696           change to the parameter block in the on-board DataFlash chip.
697         </para>
698         <para>
699           Please note that the TeleMetrum apogee detection algorithm always
700           fires a fraction of a second *after* apogee.  If you are also flying
701           an altimeter like the PerfectFlite MAWD, which only supports selecting
702           0 or 1 seconds of apogee delay, you may wish to set the MAWD to 0
703           seconds delay and set the TeleMetrum to fire your backup 2 or 3
704           seconds later to avoid any chance of both charges firing
705           simultaneously.  We've flown several airframes this way quite happily,
706           including Keith's successful L3 cert.
707         </para>
708       </section>
709       <section>
710         <title>Main Deployment Altitude</title>
711         <para>
712           By default, TeleMetrum will fire the main deployment charge at an
713           elevation of 250 meters (about 820 feet) above ground.  We think this
714           is a good elevation for most airframes, but feel free to change this
715           to suit.  In particular, if you are flying two altimeters, you may
716           wish to set the
717           deployment elevation for the backup altimeter to be something lower
718           than the primary so that both pyrotechnic charges don't fire
719           simultaneously.
720         </para>
721         <para>
722           To set the main deployment altitude, use the 'c m' command.
723           As with all 'c' sub-commands, follow this with a 'c w' to write the
724           change to the parameter block in the on-board DataFlash chip.
725         </para>
726       </section>
727     </section>
728     <section>
729       <title>Calibration</title>
730       <para>
731         There are only two calibrations required for a TeleMetrum board, and
732         only one for TeleDongle.
733       </para>
734       <section>
735         <title>Radio Frequency</title>
736         <para>
737           The radio frequency is synthesized from a clock based on the 48 Mhz
738           crystal on the board.  The actual frequency of this oscillator must be
739           measured to generate a calibration constant.  While our GFSK modulation
740           bandwidth is wide enough to allow boards to communicate even when
741           their oscillators are not on exactly the same frequency, performance
742           is best when they are closely matched.
743           Radio frequency calibration requires a calibrated frequency counter.
744           Fortunately, once set, the variation in frequency due to aging and
745           temperature changes is small enough that re-calibration by customers
746           should generally not be required.
747         </para>
748         <para>
749           To calibrate the radio frequency, connect the UHF antenna port to a
750           frequency counter, set the board to channel 0, and use the 'C'
751           command to generate a CW carrier.  Wait for the transmitter temperature
752           to stabilize and the frequency to settle down.
753           Then, divide 434.550 Mhz by the
754           measured frequency and multiply by the current radio cal value show
755           in the 'c s' command.  For an unprogrammed board, the default value
756           is 1186611.  Take the resulting integer and program it using the 'c f'
757           command.  Testing with the 'C' command again should show a carrier
758           within a few tens of Hertz of the intended frequency.
759           As with all 'c' sub-commands, follow this with a 'c w' to write the
760           change to the parameter block in the on-board DataFlash chip.
761         </para>
762       </section>
763       <section>
764         <title>Accelerometer</title>
765         <para>
766           The accelerometer we use has its own 5 volt power supply and
767           the output must be passed through a resistive voltage divider to match
768           the input of our 3.3 volt ADC.  This means that unlike the barometric
769           sensor, the output of the acceleration sensor is not ratiometric to
770           the ADC converter, and calibration is required.  We also support the
771           use of any of several accelerometers from a Freescale family that
772           includes at least +/- 40g, 50g, 100g, and 200g parts.  Using gravity,
773           a simple 2-point calibration yields acceptable results capturing both
774           the different sensitivities and ranges of the different accelerometer
775           parts and any variation in power supply voltages or resistor values
776           in the divider network.
777         </para>
778         <para>
779           To calibrate the acceleration sensor, use the 'c a 0' command.  You
780           will be prompted to orient the board vertically with the UHF antenna
781           up and press a key, then to orient the board vertically with the
782           UHF antenna down and press a key.
783           As with all 'c' sub-commands, follow this with a 'c w' to write the
784           change to the parameter block in the on-board DataFlash chip.
785         </para>
786         <para>
787           The +1g and -1g calibration points are included in each telemetry
788           frame and are part of the header extracted by ao-dumplog after flight.
789           Note that we always store and return raw ADC samples for each
790           sensor... nothing is permanently "lost" or "damaged" if the
791           calibration is poor.
792         </para>
793         <para>
794          In the unlikely event an accel cal that goes badly, it is possible
795          that TeleMetrum may always come up in 'pad mode' and as such not be
796          listening to either the USB or radio interfaces.  If that happens,
797          there is a special hook in the firmware to force the board back
798          in to 'idle mode' so you can re-do the cal.  To use this hook, you
799          just need to ground the SPI clock pin at power-on.  This pin is
800          available as pin 2 on the 8-pin companion connector, and pin 1 is
801          ground.  So either carefully install a fine-gauge wire jumper
802          between the two pins closest to the index hole end of the 8-pin
803          connector, or plug in the programming cable to the 8-pin connector
804          and use a small screwdriver or similar to short the two pins closest
805          to the index post on the 4-pin end of the programming cable, and
806          power up the board.  It should come up in 'idle mode' (two beeps).
807         </para>
808       </section>
809     </section>
810
811
812
813   <section>
814     <title>Updating Device Firmware</title>
815     <para>
816       The big conceptual thing to realize is that you have to use a
817       TeleDongle as a programmer to update a TeleMetrum, and vice versa.
818       Due to limited memory resources in the cc1111, we don't support
819       programming either unit directly over USB.
820     </para>
821     <para>
822       You may wish to begin by ensuring you have current firmware images.
823       These are distributed as part of the AltOS software bundle that
824       also includes the AltosUI ground station program.  Newer ground
825       station versions typically work fine with older firmware versions,
826       so you don't need to update your devices just to try out new
827       software features.  You can always download the most recent
828       version from <ulink url="http://www.altusmetrum.org/AltOS/"/>.
829     </para>
830     <para>
831       We recommend updating TeleMetrum first, before updating TeleDongle.
832     </para>
833     <section>
834       <title>Updating TeleMetrum Firmware</title>
835       <orderedlist inheritnum='inherit' numeration='arabic'>
836         <listitem>
837           Find the 'programming cable' that you got as part of the starter
838           kit, that has a red 8-pin MicroMaTch connector on one end and a
839           red 4-pin MicroMaTch connector on the other end.
840         </listitem>
841         <listitem>
842           Take the 2 screws out of the TeleDongle case to get access
843           to the circuit board.
844         </listitem>
845         <listitem>
846           Plug the 8-pin end of the programming cable to the
847           matching connector on the TeleDongle, and the 4-pin end to the
848           matching connector on the TeleMetrum.
849           Note that each MicroMaTch connector has an alignment pin that
850           goes through a hole in the PC board when you have the cable
851           oriented correctly.
852         </listitem>
853         <listitem>
854           Attach a battery to the TeleMetrum board.
855         </listitem>
856         <listitem>
857           Plug the TeleDongle into your computer's USB port, and power
858           up the TeleMetrum.
859         </listitem>
860         <listitem>
861           Run AltosUI, and select 'Flash Image' from the File menu.
862         </listitem>
863         <listitem>
864           Pick the TeleDongle device from the list, identifying it as the
865           programming device.
866         </listitem>
867         <listitem>
868           Select the image you want put on the TeleMetrum, which should have a
869           name in the form telemetrum-v1.0-0.7.1.ihx.  It should be visible
870         in the default directory, if not you may have to poke around
871         your system to find it.
872         </listitem>
873         <listitem>
874           Make sure the configuration parameters are reasonable
875           looking. If the serial number and/or RF configuration
876           values aren't right, you'll need to change them.
877         </listitem>
878         <listitem>
879           Hit the 'OK' button and the software should proceed to flash
880           the TeleMetrum with new firmware, showing a progress bar.
881         </listitem>
882         <listitem>
883           Confirm that the TeleMetrum board seems to have updated ok, which you
884           can do by plugging in to it over USB and using a terminal program
885           to connect to the board and issue the 'v' command to check
886           the version, etc.
887         </listitem>
888         <listitem>
889           If something goes wrong, give it another try.
890         </listitem>
891       </orderedlist>
892     </section>
893     <section>
894       <title>Updating TeleDongle Firmware</title>
895       <para>
896         Updating TeleDongle's firmware is just like updating TeleMetrum
897         firmware, but you switch which board is the programmer and which
898         is the programming target.
899         </para>
900       <orderedlist inheritnum='inherit' numeration='arabic'>
901         <listitem>
902           Find the 'programming cable' that you got as part of the starter
903           kit, that has a red 8-pin MicroMaTch connector on one end and a
904           red 4-pin MicroMaTch connector on the other end.
905         </listitem>
906         <listitem>
907           Find the USB cable that you got as part of the starter kit, and
908           plug the "mini" end in to the mating connector on TeleMetrum.
909         </listitem>
910         <listitem>
911           Take the 2 screws out of the TeleDongle case to get access
912           to the circuit board.
913         </listitem>
914         <listitem>
915           Plug the 8-pin end of the programming cable to the (latching)
916           matching connector on the TeleMetrum, and the 4-pin end to the
917           matching connector on the TeleDongle.
918           Note that each MicroMaTch connector has an alignment pin that
919           goes through a hole in the PC board when you have the cable
920           oriented correctly.
921         </listitem>
922         <listitem>
923           Attach a battery to the TeleMetrum board.
924         </listitem>
925         <listitem>
926           Plug both TeleMetrum and TeleDongle into your computer's USB
927           ports, and power up the TeleMetrum.
928         </listitem>
929         <listitem>
930           Run AltosUI, and select 'Flash Image' from the File menu.
931         </listitem>
932         <listitem>
933           Pick the TeleMetrum device from the list, identifying it as the
934           programming device.
935         </listitem>
936         <listitem>
937           Select the image you want put on the TeleDongle, which should have a
938           name in the form teledongle-v0.2-0.7.1.ihx.  It should be visible
939         in the default directory, if not you may have to poke around
940         your system to find it.
941         </listitem>
942         <listitem>
943           Make sure the configuration parameters are reasonable
944           looking. If the serial number and/or RF configuration
945           values aren't right, you'll need to change them.  The TeleDongle
946           serial number is on the "bottom" of the circuit board, and can
947           usually be read through the translucent blue plastic case without
948           needing to remove the board from the case.
949         </listitem>
950         <listitem>
951           Hit the 'OK' button and the software should proceed to flash
952           the TeleDongle with new firmware, showing a progress bar.
953         </listitem>
954         <listitem>
955           Confirm that the TeleDongle board seems to have updated ok, which you
956           can do by plugging in to it over USB and using a terminal program
957           to connect to the board and issue the 'v' command to check
958           the version, etc.  Once you're happy, remove the programming cable
959           and put the cover back on the TeleDongle.
960         </listitem>
961         <listitem>
962           If something goes wrong, give it another try.
963         </listitem>
964       </orderedlist>
965       <para>
966         Be careful removing the programming cable from the locking 8-pin
967         connector on TeleMetrum.  You'll need a fingernail or perhaps a thin
968         screwdriver or knife blade to gently pry the locking ears out
969         slightly to extract the connector.  We used a locking connector on
970         TeleMetrum to help ensure that the cabling to companion boards
971         used in a rocket don't ever come loose accidentally in flight.
972       </para>
973     </section>
974   </section>
975
976
977
978   </chapter>
979   <chapter>
980
981     <title>AltosUI</title>
982     <para>
983       The AltosUI program provides a graphical user interface for
984       interacting with the Altus Metrum product family, including
985       TeleMetrum and TeleDongle. AltosUI can monitor telemetry data,
986       configure TeleMetrum and TeleDongle devices and many other
987       tasks. The primary interface window provides a selection of
988       buttons, one for each major activity in the system.  This manual
989       is split into chapters, each of which documents one of the tasks
990       provided from the top-level toolbar.
991     </para>
992     <section>
993       <title>Packet Command Mode</title>
994       <subtitle>Controlling TeleMetrum Over The Radio Link</subtitle>
995       <para>
996         One of the unique features of the Altus Metrum environment is
997         the ability to create a two way command link between TeleDongle
998         and TeleMetrum using the digital radio transceivers built into
999         each device. This allows you to interact with TeleMetrum from
1000         afar, as if it were directly connected to the computer.
1001       </para>
1002       <para>
1003         Any operation which can be performed with TeleMetrum
1004         can either be done with TeleMetrum directly connected to
1005         the computer via the USB cable, or through the packet
1006         link. Simply select the appropriate TeleDongle device when
1007         the list of devices is presented and AltosUI will use packet
1008         command mode.
1009       </para>
1010       <para>
1011         One oddity in the current interface is how AltosUI selects the
1012         channel for packet mode communications. Instead of providing
1013         an interface to specifically configure the channel, it uses
1014         whatever channel was most recently selected for the target
1015         TeleDongle device in Monitor Flight mode. If you haven't ever
1016         used that mode with the TeleDongle in question, select the
1017         Monitor Flight button from the top level UI, pick the
1018         appropriate TeleDongle device. Once the flight monitoring
1019         window is open, select the desired channel and then close it
1020         down again. All Packet Command Mode operations will now use
1021         that channel.
1022       </para>
1023       <itemizedlist>
1024         <listitem>
1025           <para>
1026             Save Flight Data—Recover flight data from the rocket without
1027             opening it up.
1028           </para>
1029         </listitem>
1030         <listitem>
1031           <para>
1032             Configure TeleMetrum—Reset apogee delays or main deploy
1033             heights to respond to changing launch conditions. You can
1034             also 'reboot' the TeleMetrum device. Use this to remotely
1035             enable the flight computer by turning TeleMetrum on while
1036             horizontal, then once the airframe is oriented for launch,
1037             you can reboot TeleMetrum and have it restart in pad mode
1038             without having to climb the scary ladder.
1039           </para>
1040         </listitem>
1041         <listitem>
1042           <para>
1043             Fire Igniters—Test your deployment charges without snaking
1044             wires out through holes in the airframe. Simply assembly the
1045             rocket as if for flight with the apogee and main charges
1046             loaded, then remotely command TeleMetrum to fire the
1047             igniters.
1048           </para>
1049         </listitem>
1050       </itemizedlist>
1051       <para>
1052         Packet command mode uses the same RF channels as telemetry
1053         mode. Configure the desired TeleDongle channel using the
1054         flight monitor window channel selector and then close that
1055         window before performing the desired operation.
1056       </para>
1057       <para>
1058         TeleMetrum only enables packet command mode in 'idle' mode, so
1059         make sure you have TeleMetrum lying horizontally when you turn
1060         it on. Otherwise, TeleMetrum will start in 'pad' mode ready for
1061         flight and will not be listening for command packets from TeleDongle.
1062       </para>
1063       <para>
1064         When packet command mode is enabled, you can monitor the link
1065         by watching the lights on the TeleDongle and TeleMetrum
1066         devices. The red LED will flash each time TeleDongle or
1067         TeleMetrum transmit a packet while the green LED will light up
1068         on TeleDongle while it is waiting to receive a packet from
1069         TeleMetrum.
1070       </para>
1071     </section>
1072     <section>
1073       <title>Monitor Flight</title>
1074       <subtitle>Receive, Record and Display Telemetry Data</subtitle>
1075       <para>
1076         Selecting this item brings up a dialog box listing all of the
1077         connected TeleDongle devices. When you choose one of these,
1078         AltosUI will create a window to display telemetry data as
1079         received by the selected TeleDongle device.
1080       </para>
1081       <para>
1082         All telemetry data received are automatically recorded in
1083         suitable log files. The name of the files includes the current
1084         date and rocket serial and flight numbers.
1085       </para>
1086       <para>
1087         The radio channel being monitored by the TeleDongle device is
1088         displayed at the top of the window. You can configure the
1089         channel by clicking on the channel box and selecting the desired
1090         channel. AltosUI remembers the last channel selected for each
1091         TeleDongle and selects that automatically the next time you use
1092         that device.
1093       </para>
1094       <para>
1095         Below the TeleDongle channel selector, the window contains a few
1096         significant pieces of information about the TeleMetrum providing
1097         the telemetry data stream:
1098       </para>
1099       <itemizedlist>
1100         <listitem>
1101           <para>The TeleMetrum callsign</para>
1102         </listitem>
1103         <listitem>
1104           <para>The TeleMetrum serial number</para>
1105         </listitem>
1106         <listitem>
1107           <para>The flight number. Each TeleMetrum remembers how many
1108             times it has flown.
1109           </para>
1110         </listitem>
1111         <listitem>
1112           <para>
1113             The rocket flight state. Each flight passes through several
1114             states including Pad, Boost, Fast, Coast, Drogue, Main and
1115             Landed.
1116           </para>
1117         </listitem>
1118         <listitem>
1119           <para>
1120             The Received Signal Strength Indicator value. This lets
1121             you know how strong a signal TeleDongle is receiving. The
1122             radio inside TeleDongle operates down to about -99dBm;
1123             weaker signals may not be receiveable. The packet link uses
1124             error correction and detection techniques which prevent
1125             incorrect data from being reported.
1126           </para>
1127         </listitem>
1128       </itemizedlist>
1129       <para>
1130         Finally, the largest portion of the window contains a set of
1131         tabs, each of which contain some information about the rocket.
1132         They're arranged in 'flight order' so that as the flight
1133         progresses, the selected tab automatically switches to display
1134         data relevant to the current state of the flight. You can select
1135         other tabs at any time. The final 'table' tab contains all of
1136         the telemetry data in one place.
1137       </para>
1138       <section>
1139         <title>Launch Pad</title>
1140         <para>
1141           The 'Launch Pad' tab shows information used to decide when the
1142           rocket is ready for flight. The first elements include red/green
1143           indicators, if any of these is red, you'll want to evaluate
1144           whether the rocket is ready to launch:
1145           <itemizedlist>
1146             <listitem>
1147               <para>
1148                 Battery Voltage. This indicates whether the LiPo battery
1149                 powering the TeleMetrum has sufficient charge to last for
1150                 the duration of the flight. A value of more than
1151                 3.7V is required for a 'GO' status.
1152               </para>
1153             </listitem>
1154             <listitem>
1155               <para>
1156                 Apogee Igniter Voltage. This indicates whether the apogee
1157                 igniter has continuity. If the igniter has a low
1158                 resistance, then the voltage measured here will be close
1159                 to the LiPo battery voltage. A value greater than 3.2V is
1160                 required for a 'GO' status.
1161               </para>
1162             </listitem>
1163             <listitem>
1164               <para>
1165                 Main Igniter Voltage. This indicates whether the main
1166                 igniter has continuity. If the igniter has a low
1167                 resistance, then the voltage measured here will be close
1168                 to the LiPo battery voltage. A value greater than 3.2V is
1169                 required for a 'GO' status.
1170               </para>
1171             </listitem>
1172             <listitem>
1173               <para>
1174                 GPS Locked. This indicates whether the GPS receiver is
1175                 currently able to compute position information. GPS requires
1176                 at least 4 satellites to compute an accurate position.
1177               </para>
1178             </listitem>
1179             <listitem>
1180               <para>
1181                 GPS Ready. This indicates whether GPS has reported at least
1182                 10 consecutive positions without losing lock. This ensures
1183                 that the GPS receiver has reliable reception from the
1184                 satellites.
1185               </para>
1186             </listitem>
1187           </itemizedlist>
1188           <para>
1189             The LaunchPad tab also shows the computed launch pad position
1190             and altitude, averaging many reported positions to improve the
1191             accuracy of the fix.
1192           </para>
1193         </para>
1194       </section>
1195       <section>
1196         <title>Ascent</title>
1197         <para>
1198           This tab is shown during Boost, Fast and Coast
1199           phases. The information displayed here helps monitor the
1200           rocket as it heads towards apogee.
1201         </para>
1202         <para>
1203           The height, speed and acceleration are shown along with the
1204           maxium values for each of them. This allows you to quickly
1205           answer the most commonly asked questions you'll hear during
1206           flight.
1207         </para>
1208         <para>
1209           The current latitude and longitude reported by the GPS are
1210           also shown. Note that under high acceleration, these values
1211           may not get updated as the GPS receiver loses position
1212           fix. Once the rocket starts coasting, the receiver should
1213           start reporting position again.
1214         </para>
1215         <para>
1216           Finally, the current igniter voltages are reported as in the
1217           Launch Pad tab. This can help diagnose deployment failures
1218           caused by wiring which comes loose under high acceleration.
1219         </para>
1220       </section>
1221       <section>
1222         <title>Descent</title>
1223         <para>
1224           Once the rocket has reached apogee and (we hope) activated the
1225           apogee charge, attention switches to tracking the rocket on
1226           the way back to the ground, and for dual-deploy flights,
1227           waiting for the main charge to fire.
1228         </para>
1229         <para>
1230           To monitor whether the apogee charge operated correctly, the
1231           current descent rate is reported along with the current
1232           height. Good descent rates generally range from 15-30m/s.
1233         </para>
1234         <para>
1235           To help locate the rocket in the sky, use the elevation and
1236           bearing information to figure out where to look. Elevation is
1237           in degrees above the horizon. Bearing is reported in degrees
1238           relative to true north. Range can help figure out how big the
1239           rocket will appear. Note that all of these values are relative
1240           to the pad location. If the elevation is near 90°, the rocket
1241           is over the pad, not over you.
1242         </para>
1243         <para>
1244           Finally, the igniter voltages are reported in this tab as
1245           well, both to monitor the main charge as well as to see what
1246           the status of the apogee charge is.
1247         </para>
1248       </section>
1249       <section>
1250         <title>Landed</title>
1251         <para>
1252           Once the rocket is on the ground, attention switches to
1253           recovery. While the radio signal is generally lost once the
1254           rocket is on the ground, the last reported GPS position is
1255           generally within a short distance of the actual landing location.
1256         </para>
1257         <para>
1258           The last reported GPS position is reported both by
1259           latitude and longitude as well as a bearing and distance from
1260           the launch pad. The distance should give you a good idea of
1261           whether you'll want to walk or hitch a ride. Take the reported
1262           latitude and longitude and enter them into your handheld GPS
1263           unit and have that compute a track to the landing location.
1264         </para>
1265         <para>
1266           Finally, the maximum height, speed and acceleration reported
1267           during the flight are displayed for your admiring observers.
1268         </para>
1269       </section>
1270       <section>
1271         <title>Site Map</title>
1272         <para>
1273           When the rocket gets a GPS fix, the Site Map tab will map
1274           the rocket's position to make it easier for you to locate the
1275           rocket, both while it is in the air, and when it has landed. The
1276           rocket's state is indicated by colour: white for pad, red for
1277           boost, pink for fast, yellow for coast, light blue for drogue,
1278           dark blue for main, and black for landed.
1279         </para>
1280         <para>
1281           The map's scale is approximately 3m (10ft) per pixel. The map
1282           can be dragged using the left mouse button. The map will attempt
1283           to keep the rocket roughly centred while data is being received.
1284         </para>
1285         <para>
1286           Images are fetched automatically via the Google Maps Static API,
1287           and are cached for reuse. If map images cannot be downloaded,
1288           the rocket's path will be traced on a dark grey background
1289           instead.
1290         </para>
1291       </section>
1292     </section>
1293     <section>
1294       <title>Save Flight Data</title>
1295       <para>
1296         TeleMetrum records flight data to its internal flash memory.
1297         This data is recorded at a much higher rate than the telemetry
1298         system can handle, and is not subject to radio drop-outs. As
1299         such, it provides a more complete and precise record of the
1300         flight. The 'Save Flight Data' button allows you to read the
1301         flash memory and write it to disk.
1302       </para>
1303       <para>
1304         Clicking on the 'Save Flight Data' button brings up a list of
1305         connected TeleMetrum and TeleDongle devices. If you select a
1306         TeleMetrum device, the flight data will be downloaded from that
1307         device directly. If you select a TeleDongle device, flight data
1308         will be downloaded from a TeleMetrum device connected via the
1309         packet command link to the specified TeleDongle. See the chapter
1310         on Packet Command Mode for more information about this.
1311       </para>
1312       <para>
1313         After the device has been selected, a dialog showing the
1314         flight data saved in the device will be shown allowing you to
1315         select which flights to download and which to delete. With
1316         version 0.9 or newer firmware, you must erase flights in order
1317         for the space they consume to be reused by another
1318         flight. This prevents you from accidentally losing flight data
1319         if you neglect to download data before flying again. Note that
1320         if there is no more space available in the device, then no
1321         data will be recorded for a flight.
1322       </para>
1323       <para>
1324         The filename for each flight log is computed automatically
1325         from the recorded flight date, TeleMetrum serial number and
1326         flight number information.
1327       </para>
1328     </section>
1329     <section>
1330       <title>Replay Flight</title>
1331       <para>
1332         Select this button and you are prompted to select a flight
1333         record file, either a .telem file recording telemetry data or a
1334         .eeprom file containing flight data saved from the TeleMetrum
1335         flash memory.
1336       </para>
1337       <para>
1338         Once a flight record is selected, the flight monitor interface
1339         is displayed and the flight is re-enacted in real time. Check
1340         the Monitor Flight chapter above to learn how this window operates.
1341       </para>
1342     </section>
1343     <section>
1344       <title>Graph Data</title>
1345       <para>
1346         Select this button and you are prompted to select a flight
1347         record file, either a .telem file recording telemetry data or a
1348         .eeprom file containing flight data saved from the TeleMetrum
1349         flash memory.
1350       </para>
1351       <para>
1352         Once a flight record is selected, the acceleration (blue),
1353         velocity (green) and altitude (red) of the flight are plotted and
1354         displayed, measured in metric units.
1355       </para>
1356       <para>
1357         The graph can be zoomed into a particular area by clicking and
1358         dragging down and to the right. Once zoomed, the graph can be
1359         reset by clicking and dragging up and to the left. Holding down
1360         control and clicking and dragging allows the graph to be panned.
1361         The right mouse button causes a popup menu to be displayed, giving
1362         you the option save or print the plot.
1363       </para>
1364       <para>
1365         Note that telemetry files will generally produce poor graphs
1366         due to the lower sampling rate and missed telemetry packets,
1367         and will also often have significant amounts of data received
1368         while the rocket was waiting on the pad. Use saved flight data
1369         for graphing where possible.
1370       </para>
1371     </section>
1372     <section>
1373       <title>Export Data</title>
1374       <para>
1375         This tool takes the raw data files and makes them available for
1376         external analysis. When you select this button, you are prompted to select a flight
1377         data file (either .eeprom or .telem will do, remember that
1378         .eeprom files contain higher resolution and more continuous
1379         data). Next, a second dialog appears which is used to select
1380         where to write the resulting file. It has a selector to choose
1381         between CSV and KML file formats.
1382       </para>
1383       <section>
1384         <title>Comma Separated Value Format</title>
1385         <para>
1386           This is a text file containing the data in a form suitable for
1387           import into a spreadsheet or other external data analysis
1388           tool. The first few lines of the file contain the version and
1389           configuration information from the TeleMetrum device, then
1390           there is a single header line which labels all of the
1391           fields. All of these lines start with a '#' character which
1392           most tools can be configured to skip over.
1393         </para>
1394         <para>
1395           The remaining lines of the file contain the data, with each
1396           field separated by a comma and at least one space. All of
1397           the sensor values are converted to standard units, with the
1398           barometric data reported in both pressure, altitude and
1399           height above pad units.
1400         </para>
1401       </section>
1402       <section>
1403         <title>Keyhole Markup Language (for Google Earth)</title>
1404         <para>
1405           This is the format used by
1406           Googleearth to provide an overlay within that
1407           application. With this, you can use Googleearth to see the
1408           whole flight path in 3D.
1409         </para>
1410       </section>
1411     </section>
1412     <section>
1413       <title>Configure TeleMetrum</title>
1414       <para>
1415         Select this button and then select either a TeleMetrum or
1416         TeleDongle Device from the list provided. Selecting a TeleDongle
1417         device will use Packet Comamnd Mode to configure remote
1418         TeleMetrum device. Learn how to use this in the Packet Command
1419         Mode chapter.
1420       </para>
1421       <para>
1422         The first few lines of the dialog provide information about the
1423         connected TeleMetrum device, including the product name,
1424         software version and hardware serial number. Below that are the
1425         individual configuration entries.
1426       </para>
1427       <para>
1428         At the bottom of the dialog, there are four buttons:
1429       </para>
1430       <itemizedlist>
1431         <listitem>
1432           <para>
1433             Save. This writes any changes to the TeleMetrum
1434             configuration parameter block in flash memory. If you don't
1435             press this button, any changes you make will be lost.
1436           </para>
1437         </listitem>
1438         <listitem>
1439           <para>
1440             Reset. This resets the dialog to the most recently saved values,
1441             erasing any changes you have made.
1442           </para>
1443         </listitem>
1444         <listitem>
1445           <para>
1446             Reboot. This reboots the TeleMetrum device. Use this to
1447             switch from idle to pad mode by rebooting once the rocket is
1448             oriented for flight.
1449           </para>
1450         </listitem>
1451         <listitem>
1452           <para>
1453             Close. This closes the dialog. Any unsaved changes will be
1454             lost.
1455           </para>
1456         </listitem>
1457       </itemizedlist>
1458       <para>
1459         The rest of the dialog contains the parameters to be configured.
1460       </para>
1461       <section>
1462         <title>Main Deploy Altitude</title>
1463         <para>
1464           This sets the altitude (above the recorded pad altitude) at
1465           which the 'main' igniter will fire. The drop-down menu shows
1466           some common values, but you can edit the text directly and
1467           choose whatever you like. If the apogee charge fires below
1468           this altitude, then the main charge will fire two seconds
1469           after the apogee charge fires.
1470         </para>
1471       </section>
1472       <section>
1473         <title>Apogee Delay</title>
1474         <para>
1475           When flying redundant electronics, it's often important to
1476           ensure that multiple apogee charges don't fire at precisely
1477           the same time as that can overpressurize the apogee deployment
1478           bay and cause a structural failure of the airframe. The Apogee
1479           Delay parameter tells the flight computer to fire the apogee
1480           charge a certain number of seconds after apogee has been
1481           detected.
1482         </para>
1483       </section>
1484       <section>
1485         <title>Radio Channel</title>
1486         <para>
1487           This configures which of the 10 radio channels to use for both
1488           telemetry and packet command mode. Note that if you set this
1489           value via packet command mode, you will have to reconfigure
1490           the TeleDongle channel before you will be able to use packet
1491           command mode again.
1492         </para>
1493       </section>
1494       <section>
1495         <title>Radio Calibration</title>
1496         <para>
1497           The radios in every Altus Metrum device are calibrated at the
1498           factory to ensure that they transmit and receive on the
1499           specified frequency for each channel. You can adjust that
1500           calibration by changing this value. To change the TeleDongle's
1501           calibration, you must reprogram the unit completely.
1502         </para>
1503       </section>
1504       <section>
1505         <title>Callsign</title>
1506         <para>
1507           This sets the callsign included in each telemetry packet. Set this
1508           as needed to conform to your local radio regulations.
1509         </para>
1510       </section>
1511       <section>
1512         <title>Maximum Flight Log Size</title>
1513         <para>
1514           This sets the space (in kilobytes) allocated for each flight
1515           log. The available space will be divided into chunks of this
1516           size. A smaller value will allow more flights to be stored,
1517           a larger value will record data from longer flights.
1518         </para>
1519         <para>
1520           During ascent, TeleMetrum records barometer and
1521           accelerometer values 100 times per second, other analog
1522           information (voltages and temperature) 6 times per second
1523           and GPS data once per second. During descent, the non-GPS
1524           data is recorded 1/10th as often. Each barometer +
1525           accelerometer record takes 8 bytes.
1526         </para>
1527         <para>
1528           The default, 192kB, will store over 200 seconds of data at
1529           the ascent rate, or over 2000 seconds of data at the descent
1530           rate. That's plenty for most flights. This leaves enough
1531           storage for five flights in a 1MB system, or 10 flights in a
1532           2MB system.
1533         </para>
1534         <para>
1535           The configuration block takes the last available block of
1536           memory, on v1.0 boards that's just 256 bytes. However, the
1537           flash part on the v1.1 boards uses 64kB for each block.
1538         </para>
1539       </section>
1540     </section>
1541     <section>
1542       <title>Configure AltosUI</title>
1543       <para>
1544         This button presents a dialog so that you can configure the AltosUI global settings.
1545       </para>
1546       <section>
1547         <title>Voice Settings</title>
1548         <para>
1549           AltosUI provides voice annoucements during flight so that you
1550           can keep your eyes on the sky and still get information about
1551           the current flight status. However, sometimes you don't want
1552           to hear them.
1553         </para>
1554         <itemizedlist>
1555           <listitem>
1556             <para>Enable—turns all voice announcements on and off</para>
1557           </listitem>
1558           <listitem>
1559             <para>
1560               Test Voice—Plays a short message allowing you to verify
1561               that the audio systme is working and the volume settings
1562               are reasonable
1563             </para>
1564           </listitem>
1565         </itemizedlist>
1566       </section>
1567       <section>
1568         <title>Log Directory</title>
1569         <para>
1570           AltosUI logs all telemetry data and saves all TeleMetrum flash
1571           data to this directory. This directory is also used as the
1572           staring point when selecting data files for display or export.
1573         </para>
1574         <para>
1575           Click on the directory name to bring up a directory choosing
1576           dialog, select a new directory and click 'Select Directory' to
1577           change where AltosUI reads and writes data files.
1578         </para>
1579       </section>
1580       <section>
1581         <title>Callsign</title>
1582         <para>
1583           This value is used in command packet mode and is transmitted
1584           in each packet sent from TeleDongle and received from
1585           TeleMetrum. It is not used in telemetry mode as that transmits
1586           packets only from TeleMetrum to TeleDongle. Configure this
1587           with the AltosUI operators callsign as needed to comply with
1588           your local radio regulations.
1589         </para>
1590       </section>
1591       <section>
1592         <title>Serial Debug</title>
1593         <para>
1594           This causes all communication with a connected device to be
1595           dumped to the console from which AltosUI was started. If
1596           you've started it from an icon or menu entry, the output
1597           will simply be discarded. This mode can be useful to debug
1598           various serial communication issues.
1599         </para>
1600       </section>
1601     </section>
1602     <section>
1603       <title>Flash Image</title>
1604       <para>
1605         This reprograms any Altus Metrum device by using a TeleMetrum or
1606         TeleDongle as a programming dongle. Please read the directions
1607         for connecting the programming cable in the main TeleMetrum
1608         manual before reading these instructions.
1609       </para>
1610       <para>
1611         Once you have the programmer and target devices connected,
1612         push the 'Flash Image' button. That will present a dialog box
1613         listing all of the connected devices. Carefully select the
1614         programmer device, not the device to be programmed.
1615       </para>
1616       <para>
1617         Next, select the image to flash to the device. These are named
1618         with the product name and firmware version. The file selector
1619         will start in the directory containing the firmware included
1620         with the AltosUI package. Navigate to the directory containing
1621         the desired firmware if it isn't there.
1622       </para>
1623       <para>
1624         Next, a small dialog containing the device serial number and
1625         RF calibration values should appear. If these values are
1626         incorrect (possibly due to a corrupted image in the device),
1627         enter the correct values here.
1628       </para>
1629       <para>
1630         Finally, a dialog containing a progress bar will follow the
1631         programming process.
1632       </para>
1633       <para>
1634         When programming is complete, the target device will
1635         reboot. Note that if the target device is connected via USB, you
1636         will have to unplug it and then plug it back in for the USB
1637         connection to reset so that you can communicate with the device
1638         again.
1639       </para>
1640     </section>
1641     <section>
1642       <title>Fire Igniter</title>
1643       <para>
1644         This activates the igniter circuits in TeleMetrum to help test
1645         recovery systems deployment. Because this command can operate
1646         over the Packet Command Link, you can prepare the rocket as
1647         for flight and then test the recovery system without needing
1648         to snake wires inside the airframe.
1649       </para>
1650       <para>
1651         Selecting the 'Fire Igniter' button brings up the usual device
1652         selection dialog. Pick the desired TeleDongle or TeleMetrum
1653         device. This brings up another window which shows the current
1654         continutity test status for both apogee and main charges.
1655       </para>
1656       <para>
1657         Next, select the desired igniter to fire. This will enable the
1658         'Arm' button.
1659       </para>
1660       <para>
1661         Select the 'Arm' button. This enables the 'Fire' button. The
1662         word 'Arm' is replaced by a countdown timer indicating that
1663         you have 10 seconds to press the 'Fire' button or the system
1664         will deactivate, at which point you start over again at
1665         selecting the desired igniter.
1666       </para>
1667     </section>
1668   </chapter>
1669   <chapter>
1670     <title>Using Altus Metrum Products</title>
1671     <section>
1672       <title>Being Legal</title>
1673       <para>
1674         First off, in the US, you need an <ulink url="http://www.altusmetrum.org/Radio/">amateur radio license</ulink> or
1675         other authorization to legally operate the radio transmitters that are part
1676         of our products.
1677       </para>
1678       </section>
1679       <section>
1680         <title>In the Rocket</title>
1681         <para>
1682           In the rocket itself, you just need a <ulink url="http://www.altusmetrum.org/TeleMetrum/">TeleMetrum</ulink> board and
1683           a LiPo rechargeable battery.  An 860mAh battery weighs less than a 9V
1684           alkaline battery, and will run a <ulink url="http://www.altusmetrum.org/TeleMetrum/">TeleMetrum</ulink> for hours.
1685         </para>
1686         <para>
1687           By default, we ship TeleMetrum with a simple wire antenna.  If your
1688           electronics bay or the airframe it resides within is made of carbon fiber,
1689           which is opaque to RF signals, you may choose to have an SMA connector
1690           installed so that you can run a coaxial cable to an antenna mounted
1691           elsewhere in the rocket.
1692         </para>
1693       </section>
1694       <section>
1695         <title>On the Ground</title>
1696         <para>
1697           To receive the data stream from the rocket, you need an antenna and short
1698           feedline connected to one of our <ulink url="http://www.altusmetrum.org/TeleDongle/">TeleDongle</ulink> units.  The
1699           TeleDongle in turn plugs directly into the USB port on a notebook
1700           computer.  Because TeleDongle looks like a simple serial port, your computer
1701           does not require special device drivers... just plug it in.
1702         </para>
1703         <para>
1704           The GUI tool, AltosUI, is written in Java and runs across
1705           Linux, Mac OS and Windows. There's also a suite of C tools
1706           for Linux which can perform most of the same tasks.
1707         </para>
1708         <para>
1709           After the flight, you can use the RF link to extract the more detailed data
1710           logged in the rocket, or you can use a mini USB cable to plug into the
1711           TeleMetrum board directly.  Pulling out the data without having to open up
1712           the rocket is pretty cool!  A USB cable is also how you charge the LiPo
1713           battery, so you'll want one of those anyway... the same cable used by lots
1714           of digital cameras and other modern electronic stuff will work fine.
1715         </para>
1716         <para>
1717           If your rocket lands out of sight, you may enjoy having a hand-held GPS
1718           receiver, so that you can put in a waypoint for the last reported rocket
1719           position before touch-down.  This makes looking for your rocket a lot like
1720           Geo-Cacheing... just go to the waypoint and look around starting from there.
1721         </para>
1722         <para>
1723           You may also enjoy having a ham radio "HT" that covers the 70cm band... you
1724           can use that with your antenna to direction-find the rocket on the ground
1725           the same way you can use a Walston or Beeline tracker.  This can be handy
1726           if the rocket is hiding in sage brush or a tree, or if the last GPS position
1727           doesn't get you close enough because the rocket dropped into a canyon, or
1728           the wind is blowing it across a dry lake bed, or something like that...  Keith
1729           and Bdale both currently own and use the Yaesu VX-7R at launches.
1730         </para>
1731         <para>
1732           So, to recap, on the ground the hardware you'll need includes:
1733           <orderedlist inheritnum='inherit' numeration='arabic'>
1734             <listitem>
1735               an antenna and feedline
1736             </listitem>
1737             <listitem>
1738               a TeleDongle
1739             </listitem>
1740             <listitem>
1741               a notebook computer
1742             </listitem>
1743             <listitem>
1744               optionally, a handheld GPS receiver
1745             </listitem>
1746             <listitem>
1747               optionally, an HT or receiver covering 435 Mhz
1748             </listitem>
1749           </orderedlist>
1750         </para>
1751         <para>
1752           The best hand-held commercial directional antennas we've found for radio
1753           direction finding rockets are from
1754           <ulink url="http://www.arrowantennas.com/" >
1755             Arrow Antennas.
1756           </ulink>
1757           The 440-3 and 440-5 are both good choices for finding a
1758           TeleMetrum-equipped rocket when used with a suitable 70cm HT.
1759         </para>
1760       </section>
1761       <section>
1762         <title>Data Analysis</title>
1763         <para>
1764           Our software makes it easy to log the data from each flight, both the
1765           telemetry received over the RF link during the flight itself, and the more
1766           complete data log recorded in the DataFlash memory on the TeleMetrum
1767           board.  Once this data is on your computer, our postflight tools make it
1768           easy to quickly get to the numbers everyone wants, like apogee altitude,
1769           max acceleration, and max velocity.  You can also generate and view a
1770           standard set of plots showing the altitude, acceleration, and
1771           velocity of the rocket during flight.  And you can even export a data file
1772           useable with Google Maps and Google Earth for visualizing the flight path
1773           in two or three dimensions!
1774         </para>
1775         <para>
1776           Our ultimate goal is to emit a set of files for each flight that can be
1777           published as a web page per flight, or just viewed on your local disk with
1778           a web browser.
1779         </para>
1780       </section>
1781       <section>
1782         <title>Future Plans</title>
1783         <para>
1784           In the future, we intend to offer "companion boards" for the rocket that will
1785           plug in to TeleMetrum to collect additional data, provide more pyro channels,
1786           and so forth.  A reference design for a companion board will be documented
1787           soon, and will be compatible with open source Arduino programming tools.
1788         </para>
1789         <para>
1790           We are also working on the design of a hand-held ground terminal that will
1791           allow monitoring the rocket's status, collecting data during flight, and
1792           logging data after flight without the need for a notebook computer on the
1793           flight line.  Particularly since it is so difficult to read most notebook
1794           screens in direct sunlight, we think this will be a great thing to have.
1795         </para>
1796         <para>
1797           Because all of our work is open, both the hardware designs and the software,
1798           if you have some great idea for an addition to the current Altus Metrum family,
1799           feel free to dive in and help!  Or let us know what you'd like to see that
1800           we aren't already working on, and maybe we'll get excited about it too...
1801         </para>
1802     </section>
1803   </chapter>
1804 </book>