altoslib: Don't record 'pad' state in FlightSeries
[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                 ifdef::easymega,telemega[]
171                 |Additional Igniters
172                 |four very short beeps
173                 |Continuity indication for the four additional pyro
174                  channels on TeleMega and EasyMega. One high tone for
175                  no continuity, one low tone for continuity. These are
176                  produced after the continuity indicators for the two
177                  primary igniter channels.
178                 endif::easymega,telemega[]
179
180                 |====
181
182                 ifdef::radio[]
183                 For devices with a radio transmitter, in addition to
184                 the digital and APRS telemetry signals, you can also
185                 receive audio tones with a standard amateur
186                 70cm FM receiver. While on the pad, you will hear
187                 igniter status once every five seconds.
188
189                 .Pad Radio Indications
190                 [options="header",cols="1,1,3"]
191                 |====
192                 |Name           |Beeps          |Description
193
194                 |Neither
195                 |½ second tone
196                 |No continuity detected on either apogee or main igniters.
197
198                 |Apogee
199                 |dit
200                 |Continuity detected only on apogee igniter.
201
202                 |Main
203                 |dit dit
204                 |Continuity detected only on main igniter.
205
206
207                 |Both
208                 |dit dit dit
209                 |Continuity detected on both igniters.
210
211                 |====
212
213                 During ascent, the tones will be muted to allow the
214                 telemetry data to consume the full radio bandwidth.
215
216                 During descent and after landing, a ½ second tone will
217                 be transmitted every five seconds. This can be used to
218                 find the rocket using RDF techniques when the signal
219                 is too weak to receive GPS information via telemetry
220                 or APRS.
221                 endif::radio[]
222
223         === Turning On the Power
224
225                 Connect a battery and power switch and turn the switch
226                 to "on". The flight computer will signal power on by
227                 reporting the battery voltage and then perform an internal self
228                 test and sensor calibration.
229
230                 Once the self test and calibration are complete, there
231                 are two modes that an Altus Metrum flight computer can
232                 operate in:
233
234                 Flight/Pad::
235                 The flight computer is waiting to detect
236                 launch and then fly the rocket. In this mode, the USB
237                 link is
238                 ifdef::radio[disabled, and the radio goes into transmit-only mode.]
239                 ifndef::radio[disabled.]
240                 The only way to get out of this
241                 mode is to power the flight computer down.
242
243                 Idle::
244                 The flight computer is ready to communicate over USB
245                 ifdef::radio[and in packet mode over the radio.]
246                 You can configure
247                 the flight computer, download data or display
248                 the current state.
249
250                 ifdef::telemetrum,easymega,telemega[]
251                 For flight computers with accelerometers (TeleMetrum,
252                 EasyMega and TeleMega), the mode is selected by the
253                 orientation of the board during the self test
254                 interval. If the board is pointing upwards as if ready
255                 to fly, it will enter Flight/Pad mode. Otherwise, it will
256                 enter Idle mode.
257                 endif::telemetrum,easymega,telemega[]
258
259                 ifdef::easymini[]
260                 For EasyMini, if the USB cable is connected to a
261                 computer, it will enter Idle mode. Otherwise, it will
262                 enter Flight/Pad mode.
263                 endif::easymini[]
264
265                 ifdef::telemini[]
266                 For TeleMini v1.0, if a packet link is waiting to
267                 connect when the device is powered on, it will enter
268                 Idle mode, otherwise it will enter Flight/Pad mode.
269                 endif::telemini[]
270
271                 You can see in <<_understanding_beeps>>
272                 how to tell which mode the flight computer is in.
273
274         === Using an External Active Switch Circuit
275
276                 You can use an active switch circuit, such as the
277                 Featherweight Magnetic Switch, with any Altus Metrum
278                 flight computer. These require three connections, one to
279                 the battery, one to the positive power input on the flight
280                 computer and one to ground. Find instructions on how to
281                 hook these up for each flight computer below. Then follow
282                 the instructions that come with your active switch to
283                 connect it up.
284
285         === Using a Separate Pyro Battery
286
287                 As mentioned above in <<_hooking_up_pyro_charges>>, one
288                 lead for each of the pyro charges is connected through
289                 the power switch directly to the positive battery
290                 terminal. The other lead is connected to the pyro
291                 circuit, which connects it to the negative battery
292                 terminal when the pyro circuit is fired. The pyro
293                 circuit on all of the flight computers is designed to
294                 handle up to 16V.
295
296                 To use a separate pyro battery, connect the negative pyro
297                 battery terminal to the flight computer ground terminal,
298                 the positive battery terminal to the igniter and the other
299                 igniter lead to the negative pyro terminal on the flight
300                 computer. When the pyro channel fires, it will complete the
301                 circuit between the negative pyro terminal and the ground
302                 terminal, firing the igniter. Specific instructions on how
303                 to hook this up for each flight computer will be found
304                 in the section below for that flight computer.
305
306         === Using a Different Kind of Battery
307
308                 EasyMini
309                 ifdef::telemini[and TeleMini v2 are]
310                 ifndef::telemini[is]
311                 designed to use either a
312                 lithium polymer battery or any other battery producing
313                 between 4 and 12 volts, such as a rectangular 9V
314                 battery.
315
316                 ifdef::telemega,easymega,telemetrum[]
317                 [WARNING]
318                 TeleMega, EasyMega and TeleMetrum are only designed to
319                 operate off a single-cell Lithium Polymer battery and
320                 cannot be used with any other kind. Connecting a
321                 different kind of battery to any of these will destroy
322                 the board.
323                 endif::telemega,easymega,telemetrum[]