5 The AltOS firmware build for the altimeters has two
6 fundamental modes, “idle” and “flight”. Which of these modes
7 the firmware operates in is determined at start up time. For
8 TeleMetrum, TeleMega and EasyMega, which have accelerometers, the mode is
9 controlled by the orientation of the
10 rocket (well, actually the board, of course...) at the time
11 power is switched on. If the rocket is “nose up”, then
12 the flight computer assumes it's on a rail or rod being prepared for
13 launch, so the firmware chooses flight mode. However, if the
14 rocket is more or less horizontal, the firmware instead enters
15 idle mode. Since TeleMini v2.0 and EasyMini don't have an
16 accelerometer we can use to determine orientation, “idle” mode
17 is selected if the board is connected via USB to a computer,
18 otherwise the board enters “flight” mode. TeleMini v1.0
19 selects “idle” mode if it receives a command packet within the
20 first five seconds of operation.
22 At power on, the altimeter will beep out the battery voltage
23 to the nearest tenth of a volt. Each digit is represented by
24 a sequence of short “dit” beeps, with a pause between
25 digits. A zero digit is represented with one long “dah”
26 beep. Then there will be a short pause while the altimeter
27 completes initialization and self test, and decides which mode
30 Here's a short summary of all of the modes and the beeping (or
31 flashing, in the case of TeleMini v1) that accompanies each
32 mode. In the description of the beeping pattern, “dit” means a
33 short beep while "dah" means a long beep (three times as
34 long). “Brap” means a long dissonant tone.
37 [options="border",cols="1,1,1,1"]
46 |battery voltage in decivolts
47 |Calibrating sensors, detecting orientation.
52 |Ready to accept commands over USB or radio link.
57 |Waiting for launch. Not listening for commands.
62 |Accelerating upwards.
67 |Decelerating, but moving faster than 200m/s.
72 |Decelerating, moving slower than 200m/s
77 |Descending after apogee. Above main height.
82 |Descending. Below main height.
87 |Stable altitude for at least ten seconds.
93 |Error detected during sensor calibration.
96 In flight or “pad” mode, the altimeter engages the flight
97 state machine, goes into transmit-only mode to send telemetry,
98 and waits for launch to be detected. Flight mode is indicated
99 by an “di-dah-dah-dit” (“P” for pad) on the beeper or lights,
100 followed by beeps or flashes indicating the state of the
101 pyrotechnic igniter continuity. One beep/flash indicates
102 apogee continuity, two beeps/flashes indicate main continuity,
103 three beeps/flashes indicate both apogee and main continuity,
104 and one longer “brap” sound which is made by rapidly
105 alternating between two tones indicates no continuity. For a
106 dual deploy flight, make sure you're getting three beeps or
107 flashes before launching! For apogee-only or motor eject
108 flights, do what makes sense.
110 If idle mode is entered, you will hear an audible “di-dit” or
111 see two short flashes (“I” for idle), and the flight state
112 machine is disengaged, thus no ejection charges will fire.
113 The altimeters also listen for the radio link when in idle
114 mode for requests sent via TeleDongle. Commands can be issued
115 in idle mode over either USB or the radio link
116 equivalently. TeleMini v1.0 only has the radio link. Idle
117 mode is useful for configuring the altimeter, for extracting
118 data from the on-board storage chip after flight, and for
119 ground testing pyro charges.
121 In “Idle” and “Pad” modes, once the mode indication
122 beeps/flashes and continuity indication has been sent, if
123 there is no space available to log the flight in on-board
124 memory, the flight computer will emit a warbling tone (much
125 slower than the “no continuity tone”)
127 Here's a summary of all of the “pad” and “idle” mode indications.
129 .Pad/Idle Indications
130 [options="header",cols="1,1,1"]
132 |Name |Beeps |Description
136 |No continuity detected on either apogee or main igniters.
140 |Continuity detected only on apogee igniter.
144 |Continuity detected only on main igniter.
149 |Continuity detected on both igniters.
154 |On-board data logging storage is full. This will
155 not prevent the flight computer from safely
156 controlling the flight or transmitting telemetry
157 signals, but no record of the flight will be
158 stored in on-board flash.
161 Once landed, the flight computer will signal that by emitting
162 the “Landed” sound described above, after which it will beep
163 out the apogee height (in meters). Each digit is represented
164 by a sequence of short “dit” beeps, with a pause between
165 digits. A zero digit is represented with one long “dah”
166 beep. The flight computer will continue to report landed mode
167 and beep out the maximum height until turned off.
169 One “neat trick” of particular value when TeleMetrum, TeleMega
170 or EasyMega are used with
171 very large air-frames, is that you can power the board up while the
172 rocket is horizontal, such that it comes up in idle mode. Then you can
173 raise the air-frame to launch position, and issue a 'reset' command
174 via TeleDongle over the radio link to cause the altimeter to reboot and
175 come up in flight mode. This is much safer than standing on the top
176 step of a rickety step-ladder or hanging off the side of a launch
177 tower with a screw-driver trying to turn on your avionics before
180 TeleMini v1.0 is configured solely via the radio link. Of course, that
181 means you need to know the TeleMini radio configuration values
182 or you won't be able to communicate with it. For situations
183 when you don't have the radio configuration values, TeleMini v1.0
184 offers an 'emergency recovery' mode. In this mode, TeleMini is
185 configured as follows:
188 * Sets the radio frequency to 434.550MHz
189 * Sets the radio calibration back to the factory value.
190 * Sets the callsign to N0CALL
191 * Does not go to 'pad' mode after five seconds.
193 To get into 'emergency recovery' mode, first find the row of
194 four small holes opposite the switch wiring. Using a short
195 piece of small gauge wire, connect the outer two holes
196 together, then power TeleMini up. Once the red LED is lit,
197 disconnect the wire and the board should signal that it's in
198 'idle' mode after the initial five second startup period.
202 TeleMetrum and TeleMega include a complete GPS receiver. A
203 complete explanation of how GPS works is beyond the scope of
204 this manual, but the bottom line is that the GPS receiver
205 needs to lock onto at least four satellites to obtain a solid
206 3 dimensional position fix and know what time it is.
208 The flight computers provide backup power to the GPS chip any time a
209 battery is connected. This allows the receiver to “warm start” on
210 the launch rail much faster than if every power-on were a GPS
211 “cold start”. In typical operations, powering up
212 on the flight line in idle mode while performing final air-frame
213 preparation will be sufficient to allow the GPS receiver to cold
214 start and acquire lock. Then the board can be powered down during
215 RSO review and installation on a launch rod or rail. When the board
216 is turned back on, the GPS system should lock very quickly, typically
217 long before igniter installation and return to the flight line are
220 === Controlling An Altimeter Over The Radio Link
222 One of the unique features of the Altus Metrum system is the
223 ability to create a two way command link between TeleDongle
224 and an altimeter using the digital radio transceivers
225 built into each device. This allows you to interact with the
226 altimeter from afar, as if it were directly connected to the
229 Any operation which can be performed with a flight computer can
230 either be done with the device directly connected to the
231 computer via the USB cable, or through the radio
232 link. TeleMini v1.0 doesn't provide a USB connector and so it is
233 always communicated with over radio. Select the appropriate
234 TeleDongle device when the list of devices is presented and
235 AltosUI will interact with an altimeter over the radio link.
237 One oddity in the current interface is how AltosUI selects the
238 frequency for radio communications. Instead of providing
239 an interface to specifically configure the frequency, it uses
240 whatever frequency was most recently selected for the target
241 TeleDongle device in Monitor Flight mode. If you haven't ever
242 used that mode with the TeleDongle in question, select the
243 Monitor Flight button from the top level UI, and pick the
244 appropriate TeleDongle device. Once the flight monitoring
245 window is open, select the desired frequency and then close it
246 down again. All radio communications will now use that frequency.
248 * Save Flight Data—Recover flight data from the
249 rocket without opening it up.
251 * Configure altimeter apogee delays, main deploy
252 heights and additional pyro event conditions to
253 respond to changing launch conditions. You can also
254 'reboot' the altimeter. Use this to remotely enable
255 the flight computer by turning TeleMetrum or
256 TeleMega on in “idle” mode, then once the air-frame
257 is oriented for launch, you can reboot the
258 altimeter and have it restart in pad mode without
259 having to climb the scary ladder.
261 * Fire Igniters—Test your deployment charges without snaking
262 wires out through holes in the air-frame. Simply assemble the
263 rocket as if for flight with the apogee and main charges
264 loaded, then remotely command the altimeter to fire the
267 Operation over the radio link for configuring an
268 altimeter, ground testing igniters, and so forth uses
269 the same RF frequencies as flight telemetry. To
270 configure the desired TeleDongle frequency, select the
271 monitor flight tab, then use the frequency selector
272 and close the window before performing other desired
275 The flight computers only enable radio commanding in
276 'idle' mode. TeleMetrum and TeleMega use the
277 accelerometer to detect which orientation they start
278 up in, so make sure you have the flight computer lying
279 horizontally when you turn it on. Otherwise, it will
280 start in 'pad' mode ready for flight, and will not be
281 listening for command packets from TeleDongle.
283 TeleMini listens for a command packet for five seconds
284 after first being turned on, if it doesn't hear
285 anything, it enters 'pad' mode, ready for flight and
286 will no longer listen for command packets. The easiest
287 way to connect to TeleMini is to initiate the command
288 and select the TeleDongle device. At this point, the
289 TeleDongle will be attempting to communicate with the
290 TeleMini. Now turn TeleMini on, and it should
291 immediately start communicating with the TeleDongle
292 and the desired operation can be performed.
294 You can monitor the operation of the radio link by watching the
295 lights on the devices. The red LED will flash each time a packet
296 is transmitted, while the green LED will light up on TeleDongle when
297 it is waiting to receive a packet from the altimeter.
301 An important aspect of preparing a rocket using electronic deployment
302 for flight is ground testing the recovery system. Thanks
303 to the bi-directional radio link central to the Altus Metrum system,
304 this can be accomplished in a TeleMega, TeleMetrum or TeleMini equipped rocket
305 with less work than you may be accustomed to with other systems. It
308 Just prep the rocket for flight, then power up the altimeter
309 in “idle” mode (placing air-frame horizontal for TeleMetrum or TeleMega, or
310 selecting the Configure Altimeter tab for TeleMini). This will cause
311 the firmware to go into “idle” mode, in which the normal flight
312 state machine is disabled and charges will not fire without
313 manual command. You can now command the altimeter to fire the apogee
314 or main charges from a safe distance using your computer and
315 TeleDongle and the Fire Igniter tab to complete ejection testing.
319 TeleMetrum, TeleMini and TeleMega all incorporate an RF transceiver, but
320 it's not a full duplex system... each end can only be transmitting or
321 receiving at any given moment. So we had to decide how to manage the
324 By design, the altimeter firmware listens for the radio link when
325 it's in “idle mode”, which
326 allows us to use the radio link to configure the rocket, do things like
327 ejection tests, and extract data after a flight without having to
328 crack open the air-frame. However, when the board is in “flight
329 mode”, the altimeter only
330 transmits and doesn't listen at all. That's because we want to put
331 ultimate priority on event detection and getting telemetry out of
333 the radio in case the rocket crashes and we aren't able to extract
336 We don't generally use a 'normal packet radio' mode like APRS
337 because they're just too inefficient. The GFSK modulation we
338 use is FSK with the base-band pulses passed through a Gaussian
339 filter before they go into the modulator to limit the
340 transmitted bandwidth. When combined with forward error
341 correction and interleaving, this allows us to have a very
342 robust 19.2 kilobit data link with only 10-40 milliwatts of
343 transmit power, a whip antenna in the rocket, and a hand-held
344 Yagi on the ground. We've had flights to above 21k feet AGL
345 with great reception, and calculations suggest we should be
346 good to well over 40k feet AGL with a 5-element yagi on the
347 ground with our 10mW units and over 100k feet AGL with the
348 40mW devices. We hope to fly boards to higher altitudes over
349 time, and would of course appreciate customer feedback on
350 performance in higher altitude flights!
354 TeleMetrum v2.0 and TeleMega can send APRS if desired, and the
355 interval between APRS packets can be configured. As each APRS
356 packet takes a full second to transmit, we recommend an
357 interval of at least 5 seconds to avoid consuming too much
358 battery power or radio channel bandwidth. You can configure
359 the APRS interval using AltosUI; that process is described in
360 the Configure Altimeter section of the AltosUI chapter.
362 AltOS uses the APRS compressed position report data format,
363 which provides for higher position precision and shorter
364 packets than the original APRS format. It also includes
365 altitude data, which is invaluable when tracking rockets. We
366 haven't found a receiver which doesn't handle compressed
367 positions, but it's just possible that you have one, so if you
368 have an older device that can receive the raw packets but
369 isn't displaying position information, it's possible that this
372 APRS packets include an SSID (Secondary Station Identifier)
373 field that allows one operator to have multiple
374 transmitters. AltOS allows you to set this to a single digit
375 from 0 to 9, allowing you to fly multiple transmitters at the
376 same time while keeping the identify of each one separate in
377 the receiver. By default, the SSID is set to the last digit of
378 the device serial number.
380 The APRS packet format includes a comment field that can have
381 arbitrary text in it. AltOS uses this to send status
382 information about the flight computer. It sends four fields as
383 shown in the following table.
385 .Altus Metrum APRS Comments
386 [options="header",cols="1,1,1"]
388 |Field |Example |Description
392 |GPS Status U for unlocked, L for locked
396 |Number of Satellites in View
400 |Altimeter Battery Voltage
404 |Apogee Igniter Voltage
408 |Main Igniter Voltage
412 |Device Serial Number
415 Here's an example of an APRS comment showing GPS lock with 6
416 satellites in view, a primary battery at 4.0V, and
417 apogee and main igniters both at 3.7V from device 1286.
420 L6 B4.0 A3.7 M3.7 1286
423 Make sure your primary battery is above 3.8V, any
424 connected igniters are above 3.5V and GPS is locked
425 with at least 5 or 6 satellites in view before
426 flying. If GPS is switching between L and U regularly,
427 then it doesn't have a good lock and you should wait
428 until it becomes stable.
430 If the GPS receiver loses lock, the APRS data
431 transmitted will contain the last position for which
432 GPS lock was available. You can tell that this has
433 happened by noticing that the GPS status character
434 switches from 'L' to 'U'. Before GPS has locked, APRS
435 will transmit zero for latitude, longitude and
438 === Configurable Parameters
440 Configuring an Altus Metrum altimeter for flight is
441 very simple. Even on our baro-only TeleMini and
442 EasyMini boards, the use of a Kalman filter means
443 there is no need to set a “mach delay”. The few
444 configurable parameters can all be set using AltosUI
445 over USB or or radio link via TeleDongle. Read the
446 Configure Altimeter section in the AltosUI chapter
447 below for more information.
451 Altus Metrum boards support radio frequencies
452 in the 70cm band. By default, the
453 configuration interface provides a list of 10
454 “standard” frequencies in 100kHz channels
455 starting at 434.550MHz. However, the firmware
456 supports use of any 50kHz multiple within the
457 70cm band. At any given launch, we highly
458 recommend coordinating when and by whom each
459 frequency will be used to avoid interference.
460 And of course, both altimeter and TeleDongle
461 must be configured to the same frequency to
462 successfully communicate with each other.
466 This sets the callsign used for telemetry,
467 APRS and the packet link. For telemetry and
468 APRS, this is used to identify the device. For
469 the packet link, the callsign must match that
470 configured in AltosUI or the link will not
471 work. This is to prevent accidental
472 configuration of another Altus Metrum flight
473 computer operating on the same frequency
476 ==== Telemetry/RDF/APRS Enable
478 You can completely disable the radio while in
479 flight, if necessary. This doesn't disable the
480 packet link in idle mode.
482 ==== Telemetry baud rate
484 This sets the modulation bit rate for data
485 transmission for both telemetry and packet
486 link mode. Lower bit rates will increase range
487 while reducing the amount of data that can be
488 sent and increasing battery consumption. All
489 telemetry is done using a rate 1/2 constraint
490 4 convolution code, so the actual data
491 transmission rate is 1/2 of the modulation bit
496 This selects how often APRS packets are
497 transmitted. Set this to zero to disable APRS
498 without also disabling the regular telemetry
499 and RDF transmissions. As APRS takes a full
500 second to transmit a single position report,
501 we recommend sending packets no more than once
506 This selects the SSID reported in APRS
507 packets. By default, it is set to the last
508 digit of the serial number, but you can change
509 this to any value from 0 to 9.
513 Apogee delay is the number of seconds after
514 the altimeter detects flight apogee that the
515 drogue charge should be fired. In most cases,
516 this should be left at the default of 0.
517 However, if you are flying redundant
518 electronics such as for an L3 certification,
519 you may wish to set one of your altimeters to
520 a positive delay so that both primary and
521 backup pyrotechnic charges do not fire
524 The Altus Metrum apogee detection algorithm
525 fires exactly at apogee. If you are also
526 flying an altimeter like the PerfectFlite
527 MAWD, which only supports selecting 0 or 1
528 seconds of apogee delay, you may wish to set
529 the MAWD to 0 seconds delay and set the
530 TeleMetrum to fire your backup 2 or 3 seconds
531 later to avoid any chance of both charges
532 firing simultaneously. We've flown several
533 air-frames this way quite happily, including
534 Keith's successful L3 cert.
538 Apogee lockout is the number of seconds after
539 boost where the flight computer will not fire
540 the apogee charge, even if the rocket appears
541 to be at apogee. This is often called 'Mach
542 Delay', as it is intended to prevent a flight
543 computer from unintentionally firing apogee
544 charges due to the pressure spike that occurrs
545 across a mach transition. Altus Metrum flight
546 computers include a Kalman filter which is not
547 fooled by this sharp pressure increase, and so
548 this setting should be left at the default
549 value of zero to disable it.
551 ==== Main Deployment Altitude
553 By default, the altimeter will fire the main
554 deployment charge at an elevation of 250
555 meters (about 820 feet) above ground. We
556 think this is a good elevation for most
557 air-frames, but feel free to change this to
558 suit. In particular, if you are flying two
559 altimeters, you may wish to set the deployment
560 elevation for the backup altimeter to be
561 something lower than the primary so that both
562 pyrotechnic charges don't fire simultaneously.
564 ==== Maximum Flight Log
566 Changing this value will set the maximum
567 amount of flight log storage that an
568 individual flight will use. The available
569 storage is divided into as many flights of the
570 specified size as can fit in the available
571 space. You can download and erase individual
572 flight logs. If you fill up the available
573 storage, future flights will not get logged
574 until you erase some of the stored ones.
576 Even though our flight computers (except TeleMini v1.0) can store
577 multiple flights, we strongly recommend downloading and saving
578 flight data after each flight.
582 Instead of firing one charge at apogee and
583 another charge at a fixed height above the
584 ground, you can configure the altimeter to
585 fire both at apogee or both during
586 descent. This was added to support an airframe
587 Bdale designed that had two altimeters, one in
588 the fin can and one in the nose.
590 Providing the ability to use both igniters for
591 apogee or main allows some level of redundancy
592 without needing two flight computers. In
593 Redundant Apogee or Redundant Main mode, the
594 two charges will be fired two seconds apart.
598 TeleMetrum, TeleMega and EasyMega measure
599 acceleration along the axis of the
600 board. Which way the board is oriented affects
601 the sign of the acceleration value. Instead of
602 trying to guess which way the board is mounted
603 in the air frame, the altimeter must be
604 explicitly configured for either Antenna Up or
605 Antenna Down. The default, Antenna Up, expects
606 the end of the board connected to the 70cm
607 antenna to be nearest the nose of the rocket,
608 with the end containing the screw terminals
611 ==== Configurable Pyro Channels
613 In addition to the usual Apogee and Main pyro
614 channels, TeleMega and EasyMega have four
615 additional channels that can be configured to
616 activate when various flight conditions are
617 satisfied. You can select as many conditions
618 as necessary; all of them must be met in order
619 to activate the channel. The conditions
622 Acceleration:: Select a value, and then choose
623 whether acceleration should be above or below
624 that value. Acceleration is positive upwards,
625 so accelerating towards the ground would
626 produce negative numbers. Acceleration during
627 descent is noisy and inaccurate, so be careful
628 when using it during these phases of the
631 Vertical speed:: Select a value, and then
632 choose whether vertical speed should be above
633 or below that value. Speed is positive
634 upwards, so moving towards the ground would
635 produce negative numbers. Speed during descent
636 is a bit noisy and so be careful when using it
637 during these phases of the flight.
639 Height:: Select a value, and then choose
640 whether the height above the launch pad should
641 be above or below that value.
643 Orientation:: TeleMega and EasyMega contain a
644 3-axis gyroscope and accelerometer which is
645 used to measure the current angle. Note that
646 this angle is not the change in angle from the
647 launch pad, but rather absolute relative to
648 gravity; the 3-axis accelerometer is used to
649 compute the angle of the rocket on the launch
650 pad and initialize the system.
654 Because this value is computed by integrating
655 rate gyros, it gets progressively less
656 accurate as the flight goes on. It should have
657 an accumulated error of less than 0.2°/second
658 (after 10 seconds of flight, the error should
661 The usual use of the orientation configuration
662 is to ensure that the rocket is traveling
663 mostly upwards when deciding whether to ignite
664 air starts or additional stages. For that,
665 choose a reasonable maximum angle (like 20°)
666 and set the motor igniter to require an angle
667 of less than that value.
670 Flight Time:: Time since boost was
671 detected. Select a value and choose whether to
672 activate the pyro channel before or after that
675 Ascending:: A simple test saying whether the
676 rocket is going up or not. This is exactly
677 equivalent to testing whether the speed is
680 Descending:: A simple test saying whether the
681 rocket is going down or not. This is exactly
682 equivalent to testing whether the speed is
685 After Motor:: The flight software counts each
686 time the rocket starts accelerating and then
687 decelerating (presumably due to a motor or
688 motors burning). Use this value for
689 multi-staged or multi-airstart launches.
691 Delay:: This value doesn't perform any checks,
692 instead it inserts a delay between the time
693 when the other parameters become true and when
694 the pyro channel is activated.
696 Flight State:: The flight software tracks the flight
697 through a sequence of states:
699 * Boost. The motor has lit and the rocket is
700 accelerating upwards.
702 * Fast. The motor has burned out and the
703 rocket is decelerating, but it is going
706 * Coast. The rocket is still moving upwards
707 and decelerating, but the speed is less
710 * Drogue. The rocket has reached apogee and
711 is heading back down, but is above the
712 configured Main altitude.
714 * Main. The rocket is still descending, and
715 is below the Main altitude
717 * Landed. The rocket is no longer moving.
719 You can select a state to limit when the pyro
720 channel may activate; note that the check is
721 based on when the rocket transitions *into*
722 the state, and so checking for “greater than
723 Boost” means that the rocket is currently in
724 boost or some later state.
726 When a motor burns out, the rocket enters
727 either Fast or Coast state (depending on how
728 fast it is moving). If the computer detects
729 upwards acceleration again, it will move back