doc: Note that EasyMega and TeleMega report A-D continuity
[fw/altos] / doc / usage.inc
1 == Using Altus Metrum Hardware
2
3         Here are general instructions for hooking up an Altus Metrum
4         flight computer. Instructions specific to each model will be
5         found in the section devoted to that model below.
6
7         === Wiring and Electrical Interference
8
9                 To prevent electrical interference from affecting the
10                 operation of the flight computer, it's important to always
11                 twist pairs of wires connected to the board. Twist the switch
12                 leads, the pyro leads and the battery leads. This reduces
13                 interference through a mechanism called common mode rejection.
14
15         === Hooking Up Lithium Polymer Batteries
16
17                 All Altus Metrum flight computers have a two pin JST PH
18                 series connector to connect up a single-cell Lithium Polymer
19                 cell (3.7V nominal). You can purchase matching batteries
20                 from the Altus Metrum store, or other vendors, or you can
21                 make your own. Pin 1 of the connector is positive, pin 2 is
22                 negative. Spark Fun sells a cable with the connector
23                 attached, which they call a
24                 link:https://www.sparkfun.com/products/9914[JST Jumper 2 Wire Assembly]
25
26                 [WARNING]
27                 Many RC vendors also sell lithium polymer batteries with
28                 this same connector. All that we have found use the opposite
29                 polarity, and if you use them that way, you will damage or
30                 destroy the flight computer.
31
32         === Hooking Up Pyro Charges
33
34                 Altus Metrum flight computers always have two screws for
35                 each pyro charge. This means you shouldn't need to put two
36                 wires into a screw terminal or connect leads from pyro
37                 charges together externally.
38
39                 On the flight computer, one lead from each charge is hooked
40                 to the positive battery terminal through the power switch.
41                 The other lead is connected through the pyro circuit, which
42                 is connected to the negative battery terminal when the pyro
43                 circuit is fired.
44
45         === Hooking Up a Power Switch
46
47                 Altus Metrum flight computers need an external power switch
48                 to turn them on. This disconnects both the computer and the
49                 pyro charges from the battery, preventing the charges from
50                 firing when in the Off position. The switch is in-line with
51                 the positive battery terminal.
52
53         === Understanding Beeps
54
55                 Altus Metrum flight computers include a beeper to
56                 provide information about the state of the system.
57                 ifdef::telemini[]
58                 TeleMini doesn't have room for a beeper, so instead it
59                 uses an LED, which works the same, except for every
60                 beep is replaced with the flash of the LED.
61                 endif::telemini[]
62
63                 Here's a short summary of all of the modes and the
64                 beeping
65                 ifdef::telemini[(or flashing, in the case of TeleMini v1)]
66                 that accompanies each mode. In the description of the
67                 beeping pattern, “dit” means a short beep while "dah"
68                 means a long beep (three times as long). “Brap” means
69                 a long dissonant tone.
70
71                 .AltOS Modes
72                 [options="border",cols="1,1,2,2"]
73                 |====
74                 |Mode Name
75                 |Abbreviation
76                 |Beeps
77                 |Description
78
79                 |Startup
80                 |S
81                 |battery voltage in decivolts
82                 |Calibrating sensors, detecting orientation.
83
84                 |Idle
85                 |I
86                 |dit dit
87                 |Ready to accept commands over USB
88                 ifdef::radio[or radio link.]
89
90                 |Pad
91                 |P
92                 |dit dah dah dit
93                 |Waiting for launch. Not listening for commands.
94
95                 |Boost
96                 |B
97                 |dah dit dit dit
98                 |Accelerating upwards.
99
100                 |Fast
101                 |F
102                 |dit dit dah dit
103                 |Decelerating, but moving faster than 200m/s.
104
105                 |Coast
106                 |C
107                 |dah dit dah dit
108                 |Decelerating, moving slower than 200m/s
109
110                 |Drogue
111                 |D
112                 |dah dit dit
113                 |Descending after apogee. Above main height.
114
115                 |Main
116                 |M
117                 |dah dah
118                 |Descending. Below main height.
119
120                 |Landed
121                 |L
122                 |dit dah dit dit
123                 |Stable altitude for at least ten seconds.
124
125
126                 |Sensor error
127                 |X
128                 |dah dit dit dah
129                 |Error detected during sensor calibration.
130                 |====
131
132                 Here's a summary of all of the Pad and Idle mode
133                 indications. In Idle mode, you'll hear one of these
134                 just once after the two short dits indicating idle
135                 mode. In Pad mode, after the dit dah dah dit
136                 indicating Pad mode, you'll hear these once every five
137                 seconds.
138
139                 .Pad/Idle Indications
140                 [options="header",cols="1,1,3"]
141                 |====
142                 |Name           |Beeps          |Description
143
144                 |Neither
145                 |brap
146                 |No continuity detected on either apogee or main igniters.
147
148                 |Apogee
149                 |dit
150                 |Continuity detected only on apogee igniter.
151
152                 |Main
153                 |dit dit
154                 |Continuity detected only on main igniter.
155
156
157                 |Both
158                 |dit dit dit
159                 |Continuity detected on both igniters.
160
161
162                 |Storage Full
163                 |warble
164                 |On-board data logging storage is full. This will
165                  not prevent the flight computer from safely
166                  controlling the flight or transmitting telemetry
167                  signals, but no record of the flight will be
168                  stored in on-board flash.
169
170                 |Additional Igniters
171                 |four very short beeps
172                 |Continuity indication for the four additional pyro
173                 |channels on TeleMega and EasyMega. One high tone for
174                 |no continuity, one low tone for continuity. These are
175                 |produced after the continuity indicators for the two
176                 |primary igniter channels.
177
178                 |====
179
180                 ifdef::radio[]
181                 For devices with a radio transmitter, in addition to
182                 the digital and APRS telemetry signals, you can also
183                 receive audio tones with a standard amateur
184                 70cm FM receiver. While on the pad, you will hear
185                 igniter status once every five seconds.
186
187                 .Pad Radio Indications
188                 [options="header",cols="1,1,3"]
189                 |====
190                 |Name           |Beeps          |Description
191
192                 |Neither
193                 |½ second tone
194                 |No continuity detected on either apogee or main igniters.
195
196                 |Apogee
197                 |dit
198                 |Continuity detected only on apogee igniter.
199
200                 |Main
201                 |dit dit
202                 |Continuity detected only on main igniter.
203
204
205                 |Both
206                 |dit dit dit
207                 |Continuity detected on both igniters.
208
209                 |====
210
211                 During ascent, the tones will be muted to allow the
212                 telemetry data to consume the full radio bandwidth.
213
214                 During descent and after landing, a ½ second tone will
215                 be transmitted every five seconds. This can be used to
216                 find the rocket using RDF techniques when the signal
217                 is too weak to receive GPS information via telemetry
218                 or APRS.
219                 endif::radio[]
220
221         === Turning On the Power
222
223                 Connect a battery and power switch and turn the switch
224                 to "on". The flight computer will signal power on by
225                 reporting the battery voltage and then perform an internal self
226                 test and sensor calibration.
227
228                 Once the self test and calibration are complete, there
229                 are two modes that an Altus Metrum flight computer can
230                 operate in:
231
232                 Flight/Pad::
233                 The flight computer is waiting to detect
234                 launch and then fly the rocket. In this mode, the USB
235                 link is
236                 ifdef::radio[disabled, and the radio goes into transmit-only mode.]
237                 ifndef::radio[disabled.]
238                 The only way to get out of this
239                 mode is to power the flight computer down.
240
241                 Idle::
242                 The flight computer is ready to communicate over USB
243                 ifdef::radio[and in packet mode over the radio.]
244                 You can configure
245                 the flight computer, download data or display
246                 the current state.
247
248                 ifdef::telemetrum,easymega,telemega[]
249                 For flight computers with accelerometers (TeleMetrum,
250                 EasyMega and TeleMega), the mode is selected by the
251                 orientation of the board during the self test
252                 interval. If the board is pointing upwards as if ready
253                 to fly, it will enter Flight/Pad mode. Otherwise, it will
254                 enter Idle mode.
255                 endif::telemetrum,easymega,telemega[]
256
257                 ifdef::easymini[]
258                 For EasyMini, if the USB cable is connected to a
259                 computer, it will enter Idle mode. Otherwise, it will
260                 enter Flight/Pad mode.
261                 endif::easymini[]
262
263                 ifdef::telemini[]
264                 For TeleMini v1.0, if a packet link is waiting to
265                 connect when the device is powered on, it will enter
266                 Idle mode, otherwise it will enter Flight/Pad mode.
267                 endif::telemini[]
268
269                 You can see in <<_understanding_beeps>>
270                 how to tell which mode the flight computer is in.
271
272         === Using an External Active Switch Circuit
273
274                 You can use an active switch circuit, such as the
275                 Featherweight Magnetic Switch, with any Altus Metrum
276                 flight computer. These require three connections, one to
277                 the battery, one to the positive power input on the flight
278                 computer and one to ground. Find instructions on how to
279                 hook these up for each flight computer below. Then follow
280                 the instructions that come with your active switch to
281                 connect it up.
282
283         === Using a Separate Pyro Battery
284
285                 As mentioned above in <<_hooking_up_pyro_charges>>, one
286                 lead for each of the pyro charges is connected through
287                 the power switch directly to the positive battery
288                 terminal. The other lead is connected to the pyro
289                 circuit, which connects it to the negative battery
290                 terminal when the pyro circuit is fired. The pyro
291                 circuit on all of the flight computers is designed to
292                 handle up to 16V.
293
294                 To use a separate pyro battery, connect the negative pyro
295                 battery terminal to the flight computer ground terminal,
296                 the positive battery terminal to the igniter and the other
297                 igniter lead to the negative pyro terminal on the flight
298                 computer. When the pyro channel fires, it will complete the
299                 circuit between the negative pyro terminal and the ground
300                 terminal, firing the igniter. Specific instructions on how
301                 to hook this up for each flight computer will be found
302                 in the section below for that flight computer.
303
304         === Using a Different Kind of Battery
305
306                 EasyMini
307                 ifdef::telemini[and TeleMini v2 are]
308                 ifndef::telemini[is]
309                 designed to use either a
310                 lithium polymer battery or any other battery producing
311                 between 4 and 12 volts, such as a rectangular 9V
312                 battery.
313
314                 ifdef::telemega,easymega,telemetrum[]
315                 [WARNING]
316                 TeleMega, EasyMega and TeleMetrum are only designed to
317                 operate off a single-cell Lithium Polymer battery and
318                 cannot be used with any other kind. Connecting a
319                 different kind of battery to any of these will destroy
320                 the board.
321                 endif::telemega,easymega,telemetrum[]