6 The AltOS firmware build for the altimeters has two
7 fundamental modes, “idle” and “flight”. Which of these modes
8 the firmware operates in is determined at start up time. For
9 TeleMetrum, TeleMega and EasyMega, which have accelerometers, the mode is
10 controlled by the orientation of the
11 rocket (well, actually the board, of course...) at the time
12 power is switched on. If the rocket is “nose up”, then
13 the flight computer assumes it's on a rail or rod being prepared for
14 launch, so the firmware chooses flight mode. However, if the
15 rocket is more or less horizontal, the firmware instead enters
16 idle mode. Since TeleMini v2.0 and EasyMini don't have an
17 accelerometer we can use to determine orientation, “idle” mode
18 is selected if the board is connected via USB to a computer,
19 otherwise the board enters “flight” mode. TeleMini v1.0
20 selects “idle” mode if it receives a command packet within the
21 first five seconds of operation.
23 At power on, the altimeter will beep out the battery voltage
24 to the nearest tenth of a volt. Each digit is represented by
25 a sequence of short “dit” beeps, with a pause between
26 digits. A zero digit is represented with one long “dah”
27 beep. Then there will be a short pause while the altimeter
28 completes initialization and self test, and decides which mode
31 Here's a short summary of all of the modes and the beeping (or
32 flashing, in the case of TeleMini v1) that accompanies each
33 mode. In the description of the beeping pattern, “dit” means a
34 short beep while "dah" means a long beep (three times as
35 long). “Brap” means a long dissonant tone.
38 [options="border",cols="1,1,2,2"]
47 |battery voltage in decivolts
48 |Calibrating sensors, detecting orientation.
53 |Ready to accept commands over USB or radio link.
58 |Waiting for launch. Not listening for commands.
63 |Accelerating upwards.
68 |Decelerating, but moving faster than 200m/s.
73 |Decelerating, moving slower than 200m/s
78 |Descending after apogee. Above main height.
83 |Descending. Below main height.
88 |Stable altitude for at least ten seconds.
94 |Error detected during sensor calibration.
97 In flight or “pad” mode, the altimeter engages the flight
98 state machine, goes into transmit-only mode to send telemetry,
99 and waits for launch to be detected. Flight mode is indicated
100 by an “di-dah-dah-dit” (“P” for pad) on the beeper or lights,
101 followed by beeps or flashes indicating the state of the
102 pyrotechnic igniter continuity. One beep/flash indicates
103 apogee continuity, two beeps/flashes indicate main continuity,
104 three beeps/flashes indicate both apogee and main continuity,
105 and one longer “brap” sound which is made by rapidly
106 alternating between two tones indicates no continuity. For a
107 dual deploy flight, make sure you're getting three beeps or
108 flashes before launching! For apogee-only or motor eject
109 flights, do what makes sense.
111 If idle mode is entered, you will hear an audible “di-dit” or
112 see two short flashes (“I” for idle), and the flight state
113 machine is disengaged, thus no ejection charges will fire.
114 The altimeters also listen for the radio link when in idle
115 mode for requests sent via TeleDongle. Commands can be issued
116 in idle mode over either USB or the radio link
117 equivalently. TeleMini v1.0 only has the radio link. Idle
118 mode is useful for configuring the altimeter, for extracting
119 data from the on-board storage chip after flight, and for
120 ground testing pyro charges.
122 In “Idle” and “Pad” modes, once the mode indication
123 beeps/flashes and continuity indication has been sent, if
124 there is no space available to log the flight in on-board
125 memory, the flight computer will emit a warbling tone (much
126 slower than the “no continuity tone”)
128 Here's a summary of all of the “pad” and “idle” mode indications.
130 .Pad/Idle Indications
131 [options="header",cols="1,1,3"]
133 |Name |Beeps |Description
137 |No continuity detected on either apogee or main igniters.
141 |Continuity detected only on apogee igniter.
145 |Continuity detected only on main igniter.
150 |Continuity detected on both igniters.
155 |On-board data logging storage is full. This will
156 not prevent the flight computer from safely
157 controlling the flight or transmitting telemetry
158 signals, but no record of the flight will be
159 stored in on-board flash.
162 Once landed, the flight computer will signal that by emitting
163 the “Landed” sound described above, after which it will beep
164 out the apogee height (in meters). Each digit is represented
165 by a sequence of short “dit” beeps, with a pause between
166 digits. A zero digit is represented with one long “dah”
167 beep. The flight computer will continue to report landed mode
168 and beep out the maximum height until turned off.
170 One “neat trick” of particular value when TeleMetrum, TeleMega
171 or EasyMega are used with
172 very large air-frames, is that you can power the board up while the
173 rocket is horizontal, such that it comes up in idle mode. Then you can
174 raise the air-frame to launch position, and issue a 'reset' command
175 via TeleDongle over the radio link to cause the altimeter to reboot and
176 come up in flight mode. This is much safer than standing on the top
177 step of a rickety step-ladder or hanging off the side of a launch
178 tower with a screw-driver trying to turn on your avionics before
181 TeleMini v1.0 is configured solely via the radio link. Of course, that
182 means you need to know the TeleMini radio configuration values
183 or you won't be able to communicate with it. For situations
184 when you don't have the radio configuration values, TeleMini v1.0
185 offers an 'emergency recovery' mode. In this mode, TeleMini is
186 configured as follows:
189 * Sets the radio frequency to 434.550MHz
190 * Sets the radio calibration back to the factory value.
191 * Sets the callsign to N0CALL
192 * Does not go to 'pad' mode after five seconds.
194 To get into 'emergency recovery' mode, first find the row of
195 four small holes opposite the switch wiring. Using a short
196 piece of small gauge wire, connect the outer two holes
197 together, then power TeleMini up. Once the red LED is lit,
198 disconnect the wire and the board should signal that it's in
199 'idle' mode after the initial five second startup period.
203 TeleMetrum and TeleMega include a complete GPS receiver. A
204 complete explanation of how GPS works is beyond the scope of
205 this manual, but the bottom line is that the GPS receiver
206 needs to lock onto at least four satellites to obtain a solid
207 3 dimensional position fix and know what time it is.
209 The flight computers provide backup power to the GPS chip any time a
210 battery is connected. This allows the receiver to “warm start” on
211 the launch rail much faster than if every power-on were a GPS
212 “cold start”. In typical operations, powering up
213 on the flight line in idle mode while performing final air-frame
214 preparation will be sufficient to allow the GPS receiver to cold
215 start and acquire lock. Then the board can be powered down during
216 RSO review and installation on a launch rod or rail. When the board
217 is turned back on, the GPS system should lock very quickly, typically
218 long before igniter installation and return to the flight line are
221 === Controlling An Altimeter Over The Radio Link
223 One of the unique features of the Altus Metrum system is the
224 ability to create a two way command link between TeleDongle
225 and an altimeter using the digital radio transceivers
226 built into each device. This allows you to interact with the
227 altimeter from afar, as if it were directly connected to the
230 Any operation which can be performed with a flight computer can
231 either be done with the device directly connected to the
232 computer via the USB cable, or through the radio
233 link. TeleMini v1.0 doesn't provide a USB connector and so it is
234 always communicated with over radio. Select the appropriate
235 TeleDongle device when the list of devices is presented and
236 AltosUI will interact with an altimeter over the radio link.
238 One oddity in the current interface is how AltosUI selects the
239 frequency for radio communications. Instead of providing
240 an interface to specifically configure the frequency, it uses
241 whatever frequency was most recently selected for the target
242 TeleDongle device in Monitor Flight mode. If you haven't ever
243 used that mode with the TeleDongle in question, select the
244 Monitor Flight button from the top level UI, and pick the
245 appropriate TeleDongle device. Once the flight monitoring
246 window is open, select the desired frequency and then close it
247 down again. All radio communications will now use that frequency.
249 * Save Flight Data—Recover flight data from the
250 rocket without opening it up.
252 * Configure altimeter apogee delays, main deploy
253 heights and additional pyro event conditions to
254 respond to changing launch conditions. You can also
255 'reboot' the altimeter. Use this to remotely enable
256 the flight computer by turning TeleMetrum or
257 TeleMega on in “idle” mode, then once the air-frame
258 is oriented for launch, you can reboot the
259 altimeter and have it restart in pad mode without
260 having to climb the scary ladder.
262 * Fire Igniters—Test your deployment charges without snaking
263 wires out through holes in the air-frame. Simply assemble the
264 rocket as if for flight with the apogee and main charges
265 loaded, then remotely command the altimeter to fire the
268 Operation over the radio link for configuring an
269 altimeter, ground testing igniters, and so forth uses
270 the same RF frequencies as flight telemetry. To
271 configure the desired TeleDongle frequency, select the
272 monitor flight tab, then use the frequency selector
273 and close the window before performing other desired
276 The flight computers only enable radio commanding in
277 'idle' mode. TeleMetrum and TeleMega use the
278 accelerometer to detect which orientation they start
279 up in, so make sure you have the flight computer lying
280 horizontally when you turn it on. Otherwise, it will
281 start in 'pad' mode ready for flight, and will not be
282 listening for command packets from TeleDongle.
284 TeleMini listens for a command packet for five seconds
285 after first being turned on, if it doesn't hear
286 anything, it enters 'pad' mode, ready for flight and
287 will no longer listen for command packets. The easiest
288 way to connect to TeleMini is to initiate the command
289 and select the TeleDongle device. At this point, the
290 TeleDongle will be attempting to communicate with the
291 TeleMini. Now turn TeleMini on, and it should
292 immediately start communicating with the TeleDongle
293 and the desired operation can be performed.
295 You can monitor the operation of the radio link by watching the
296 lights on the devices. The red LED will flash each time a packet
297 is transmitted, while the green LED will light up on TeleDongle when
298 it is waiting to receive a packet from the altimeter.
302 An important aspect of preparing a rocket using electronic deployment
303 for flight is ground testing the recovery system. Thanks
304 to the bi-directional radio link central to the Altus Metrum system,
305 this can be accomplished in a TeleMega, TeleMetrum or TeleMini equipped rocket
306 with less work than you may be accustomed to with other systems. It
309 Just prep the rocket for flight, then power up the altimeter
310 in “idle” mode (placing air-frame horizontal for TeleMetrum or TeleMega, or
311 selecting the Configure Altimeter tab for TeleMini). This will cause
312 the firmware to go into “idle” mode, in which the normal flight
313 state machine is disabled and charges will not fire without
314 manual command. You can now command the altimeter to fire the apogee
315 or main charges from a safe distance using your computer and
316 TeleDongle and the Fire Igniter tab to complete ejection testing.
320 TeleMetrum, TeleMini and TeleMega all incorporate an RF transceiver, but
321 it's not a full duplex system... each end can only be transmitting or
322 receiving at any given moment. So we had to decide how to manage the
325 By design, the altimeter firmware listens for the radio link when
326 it's in “idle mode”, which
327 allows us to use the radio link to configure the rocket, do things like
328 ejection tests, and extract data after a flight without having to
329 crack open the air-frame. However, when the board is in “flight
330 mode”, the altimeter only
331 transmits and doesn't listen at all. That's because we want to put
332 ultimate priority on event detection and getting telemetry out of
334 the radio in case the rocket crashes and we aren't able to extract
337 We don't generally use a 'normal packet radio' mode like APRS
338 because they're just too inefficient. The GFSK modulation we
339 use is FSK with the base-band pulses passed through a Gaussian
340 filter before they go into the modulator to limit the
341 transmitted bandwidth. When combined with forward error
342 correction and interleaving, this allows us to have a very
343 robust 19.2 kilobit data link with only 10-40 milliwatts of
344 transmit power, a whip antenna in the rocket, and a hand-held
345 Yagi on the ground. We've had flights to above 21k feet AGL
346 with great reception, and calculations suggest we should be
347 good to well over 40k feet AGL with a 5-element yagi on the
348 ground with our 10mW units and over 100k feet AGL with the
349 40mW devices. We hope to fly boards to higher altitudes over
350 time, and would of course appreciate customer feedback on
351 performance in higher altitude flights!
355 TeleMetrum v2.0 and TeleMega can send APRS if desired, and the
356 interval between APRS packets can be configured. As each APRS
357 packet takes a full second to transmit, we recommend an
358 interval of at least 5 seconds to avoid consuming too much
359 battery power or radio channel bandwidth. You can configure
360 the APRS interval using AltosUI; that process is described in
361 the Configure Altimeter section of the AltosUI chapter.
363 AltOS uses the APRS compressed position report data format,
364 which provides for higher position precision and shorter
365 packets than the original APRS format. It also includes
366 altitude data, which is invaluable when tracking rockets. We
367 haven't found a receiver which doesn't handle compressed
368 positions, but it's just possible that you have one, so if you
369 have an older device that can receive the raw packets but
370 isn't displaying position information, it's possible that this
373 APRS packets include an SSID (Secondary Station Identifier)
374 field that allows one operator to have multiple
375 transmitters. AltOS allows you to set this to a single digit
376 from 0 to 9, allowing you to fly multiple transmitters at the
377 same time while keeping the identify of each one separate in
378 the receiver. By default, the SSID is set to the last digit of
379 the device serial number.
381 The APRS packet format includes a comment field that can have
382 arbitrary text in it. AltOS uses this to send status
383 information about the flight computer. It sends four fields as
384 shown in the following table.
386 .Altus Metrum APRS Comments
387 [options="header",cols="1,1,1"]
389 |Field |Example |Description
393 |GPS Status U for unlocked, L for locked
397 |Number of Satellites in View
401 |Altimeter Battery Voltage
405 |Apogee Igniter Voltage
409 |Main Igniter Voltage
413 |Device Serial Number
416 Here's an example of an APRS comment showing GPS lock with 6
417 satellites in view, a primary battery at 4.0V, and
418 apogee and main igniters both at 3.7V from device 1286.
421 L6 B4.0 A3.7 M3.7 1286
424 Make sure your primary battery is above 3.8V, any
425 connected igniters are above 3.5V and GPS is locked
426 with at least 5 or 6 satellites in view before
427 flying. If GPS is switching between L and U regularly,
428 then it doesn't have a good lock and you should wait
429 until it becomes stable.
431 If the GPS receiver loses lock, the APRS data
432 transmitted will contain the last position for which
433 GPS lock was available. You can tell that this has
434 happened by noticing that the GPS status character
435 switches from 'L' to 'U'. Before GPS has locked, APRS
436 will transmit zero for latitude, longitude and
439 === Configurable Parameters
441 Configuring an Altus Metrum altimeter for flight is
442 very simple. Even on our baro-only TeleMini and
443 EasyMini boards, the use of a Kalman filter means
444 there is no need to set a “mach delay”. The few
445 configurable parameters can all be set using AltosUI
446 over USB or or radio link via TeleDongle. Read the
447 Configure Altimeter section in the AltosUI chapter
448 below for more information.
452 Altus Metrum boards support radio frequencies
453 in the 70cm band. By default, the
454 configuration interface provides a list of 10
455 “standard” frequencies in 100kHz channels
456 starting at 434.550MHz. However, the firmware
457 supports use of any 50kHz multiple within the
458 70cm band. At any given launch, we highly
459 recommend coordinating when and by whom each
460 frequency will be used to avoid interference.
461 And of course, both altimeter and TeleDongle
462 must be configured to the same frequency to
463 successfully communicate with each other.
467 This sets the callsign used for telemetry,
468 APRS and the packet link. For telemetry and
469 APRS, this is used to identify the device. For
470 the packet link, the callsign must match that
471 configured in AltosUI or the link will not
472 work. This is to prevent accidental
473 configuration of another Altus Metrum flight
474 computer operating on the same frequency
477 ==== Telemetry/RDF/APRS Enable
479 You can completely disable the radio while in
480 flight, if necessary. This doesn't disable the
481 packet link in idle mode.
483 ==== Telemetry baud rate
485 This sets the modulation bit rate for data
486 transmission for both telemetry and packet
487 link mode. Lower bit rates will increase range
488 while reducing the amount of data that can be
489 sent and increasing battery consumption. All
490 telemetry is done using a rate 1/2 constraint
491 4 convolution code, so the actual data
492 transmission rate is 1/2 of the modulation bit
497 This selects how often APRS packets are
498 transmitted. Set this to zero to disable APRS
499 without also disabling the regular telemetry
500 and RDF transmissions. As APRS takes a full
501 second to transmit a single position report,
502 we recommend sending packets no more than once
507 This selects the SSID reported in APRS
508 packets. By default, it is set to the last
509 digit of the serial number, but you can change
510 this to any value from 0 to 9.
514 Apogee delay is the number of seconds after
515 the altimeter detects flight apogee that the
516 drogue charge should be fired. In most cases,
517 this should be left at the default of 0.
518 However, if you are flying redundant
519 electronics such as for an L3 certification,
520 you may wish to set one of your altimeters to
521 a positive delay so that both primary and
522 backup pyrotechnic charges do not fire
525 The Altus Metrum apogee detection algorithm
526 fires exactly at apogee. If you are also
527 flying an altimeter like the PerfectFlite
528 MAWD, which only supports selecting 0 or 1
529 seconds of apogee delay, you may wish to set
530 the MAWD to 0 seconds delay and set the
531 TeleMetrum to fire your backup 2 or 3 seconds
532 later to avoid any chance of both charges
533 firing simultaneously. We've flown several
534 air-frames this way quite happily, including
535 Keith's successful L3 cert.
539 Apogee lockout is the number of seconds after
540 boost where the flight computer will not fire
541 the apogee charge, even if the rocket appears
542 to be at apogee. This is often called 'Mach
543 Delay', as it is intended to prevent a flight
544 computer from unintentionally firing apogee
545 charges due to the pressure spike that occurrs
546 across a mach transition. Altus Metrum flight
547 computers include a Kalman filter which is not
548 fooled by this sharp pressure increase, and so
549 this setting should be left at the default
550 value of zero to disable it.
552 ==== Main Deployment Altitude
554 By default, the altimeter will fire the main
555 deployment charge at an elevation of 250
556 meters (about 820 feet) above ground. We
557 think this is a good elevation for most
558 air-frames, but feel free to change this to
559 suit. In particular, if you are flying two
560 altimeters, you may wish to set the deployment
561 elevation for the backup altimeter to be
562 something lower than the primary so that both
563 pyrotechnic charges don't fire simultaneously.
565 ==== Maximum Flight Log
567 Changing this value will set the maximum
568 amount of flight log storage that an
569 individual flight will use. The available
570 storage is divided into as many flights of the
571 specified size as can fit in the available
572 space. You can download and erase individual
573 flight logs. If you fill up the available
574 storage, future flights will not get logged
575 until you erase some of the stored ones.
577 Even though our flight computers (except TeleMini v1.0) can store
578 multiple flights, we strongly recommend downloading and saving
579 flight data after each flight.
583 Instead of firing one charge at apogee and
584 another charge at a fixed height above the
585 ground, you can configure the altimeter to
586 fire both at apogee or both during
587 descent. This was added to support an airframe
588 Bdale designed that had two altimeters, one in
589 the fin can and one in the nose.
591 Providing the ability to use both igniters for
592 apogee or main allows some level of redundancy
593 without needing two flight computers. In
594 Redundant Apogee or Redundant Main mode, the
595 two charges will be fired two seconds apart.
599 TeleMetrum, TeleMega and EasyMega measure
600 acceleration along the axis of the
601 board. Which way the board is oriented affects
602 the sign of the acceleration value. Instead of
603 trying to guess which way the board is mounted
604 in the air frame, the altimeter must be
605 explicitly configured for either Antenna Up or
606 Antenna Down. The default, Antenna Up, expects
607 the end of the board connected to the 70cm
608 antenna to be nearest the nose of the rocket,
609 with the end containing the screw terminals
612 ==== Configurable Pyro Channels
614 In addition to the usual Apogee and Main pyro
615 channels, TeleMega and EasyMega have four
616 additional channels that can be configured to
617 activate when various flight conditions are
618 satisfied. You can select as many conditions
619 as necessary; all of them must be met in order
620 to activate the channel. The conditions
623 include::pyro-channels.raw[]