submodule madness
[fw/altos] / doc / updating-firmware.inc
1 [appendix]
2 == Updating Device Firmware
3
4         ifdef::telemega[]
5         TeleMega, TeleMetrum v2, EasyMega, EasyMini and TeleDongle v3
6         are all
7         endif::telemega[]
8         ifndef::telemega[]
9         EasyMini is
10         endif::telemega[]
11         programmed directly over their USB connectors (self
12         programming).
13         ifdef::telemega[]
14         TeleMetrum v1, TeleMini and TeleDongle v0.2 are
15         all programmed by using another device as a programmer (pair
16         programming). It's important to recognize which kind of devices
17         you have before trying to reprogram them.
18         endif::telemega[]
19
20         You may wish to begin by ensuring you have current firmware
21         images.  These are distributed as part of the AltOS software
22         bundle that also includes the AltosUI ground station program.
23         Newer ground station versions typically work fine with older
24         firmware versions, so you don't need to update your devices
25         just to try out new software features.  You can always
26         download the most recent version from
27         http://www.altusmetrum.org/AltOS/
28
29         ifdef::telemega[]
30         === Updating TeleMega, TeleMetrum v2, EasyMega, EasyMini or TeleDongle v3 Firmware
31         endif::telemega[]
32         ifndef::telemega[]
33         === Updating EasyMini Firmware
34         endif::telemega[]
35
36                 Self-programmable devices are reprogrammed by
37                 connecting them to your computer over USB.
38
39                 . Attach a battery if necessary and power switch to
40                   the target device. Power up the device.
41
42                 . Using a Micro USB cable, connect the target device to your
43                   computer's USB socket.
44
45                 . Run AltosUI, and select 'Flash Image' from the File menu.
46
47                 . Select the target device in the Device Selection dialog.
48
49                 . Select the image you want to flash to the device,
50                   which should have a name in the form
51                   <product>-v<product-version>-<software-version>.ihx,
52                   such as EasyMini-v1.0-1.6.0.ihx.
53
54                 . Make sure the configuration parameters are
55                   reasonable looking. If the serial number and/or RF
56                   configuration values aren't right, you'll need to
57                   change them.
58
59                 . Hit the 'OK' button and the software should proceed
60                   to flash the device with new firmware, showing a
61                   progress bar.
62
63                 . Verify that the device is working by using the
64                   'Configure Altimeter' or 'Configure Groundstation'
65                   item to check over the configuration.
66
67                 ==== Recovering From Self-Flashing Failure
68
69                         If the firmware loading fails, it can leave the device
70                         unable to boot. Not to worry, you can force the device to
71                         start the boot loader instead, which will let you try to
72                         flash the device again.
73
74                         On each device, connecting two pins from one of the exposed
75                         connectors will force the boot loader to start, even if the
76                         regular operating system has been corrupted in some way.
77
78                         ifdef::telemega[]
79                         TeleMega::
80
81                         Connect pin 6 and pin 1 of the companion
82                         connector. Pin 1 can be identified by the square pad
83                         around it, and then the pins could sequentially across
84                         the board. Be very careful to *not* short pin 8 to
85                         anything as that is connected directly to the
86                         battery. Pin 7 carries 3.3V and the board will crash
87                         if that is connected to pin 1, but shouldn't damage
88                         the board.
89                         endif::telemega[]
90
91                         ifdef::easymega[]
92                         EasyMega::
93
94                         Connect pin 6 and pin 1 of the companion
95                         connector. Pin 1 can be identified by the square pad
96                         around it, and then the pins could sequentially across
97                         the board. Be very careful to *not* short pin 8 to
98                         anything as that is connected directly to the
99                         battery. Pin 7 carries 3.3V and the board will crash
100                         if that is connected to pin 1, but shouldn't damage
101                         the board.
102                         endif::easymega[]
103
104                         ifdef::telemetrum[]
105                         TeleMetrum v2::
106
107                         Connect pin 6 and pin 1 of the companion
108                         connector. Pin 1 can be identified by the square pad
109                         around it, and then the pins could sequentially across
110                         the board. Be very careful to *not* short pin 8 to
111                         anything as that is connected directly to the
112                         battery. Pin 7 carries 3.3V and the board will crash
113                         if that is connected to pin 1, but shouldn't damage
114                         the board.
115                         endif::telemetrum[]
116
117                         ifdef::easymini[]
118                         EasyMini::
119
120                         Connect pin 6 and pin 1 of the debug connector, which
121                         is the six holes next to the beeper. Pin 1 can be
122                         identified by the square pad around it, and then the
123                         pins could sequentially across the board, making Pin 6
124                         the one on the other end of the row.
125                         endif::easymini[]
126
127                         ifdef::telemetrum[]
128                         TeleDongle v3::
129
130                         Connect pin 32 on the CPU to ground. Pin 32 is closest
131                         to the USB wires on the row of pins towards the center
132                         of the board. Ground is available on the capacitor
133                         next to it, on the end towards the USB wires.
134                         endif::telemetrum[]
135
136                         Once you've located the right pins:
137
138                         . Turn the altimeter power off.
139
140                         . Connect a battery.
141
142                         . Connect the indicated terminals together with a
143                           short piece of wire. Take care not to accidentally
144                           connect anything else.
145
146                         . Connect USB
147
148                         . Turn the board power on.
149
150                         The board should now be visible over USB as
151                         'AltosFlash' and be ready to receive firmware.  Once
152                         the board has been powered up, you can remove the
153                         piece of wire.
154
155         ifdef::telemetrum,telemini[]
156         === Pair Programming
157
158                 The big concept to understand is that you have to use
159                 a TeleMetrum v1.0, TeleBT v1.0 or TeleDongle v0.2 as a
160                 programmer to update a pair programmed device. Due to
161                 limited memory resources in the cc1111, we don't
162                 support programming directly over USB for these
163                 devices.
164
165                 If you need to update the firmware on a TeleDongle
166                 v0.2, we recommend updating the altimeter first,
167                 before updating TeleDongle.  However, note that
168                 TeleDongle rarely need to be updated.  Any firmware
169                 version 1.0.1 or later will work, version 1.2.1 may
170                 have improved receiver performance slightly.
171
172                 ==== Updating TeleMetrum v1.x Firmware
173
174                         . Find the 'programming cable' that you got as
175                           part of the starter kit, that has a red
176                           8-pin MicroMaTch connector on one end and a
177                           red 4-pin MicroMaTch connector on the other
178                           end.
179
180                         . Take the 2 screws out of the TeleDongle v0.2
181                           or TeleBT v1.0 case to get access to the
182                           circuit board.
183
184                         . Plug the 8-pin end of the programming cable
185                           to the matching connector on the TeleDongle
186                           v0.2 or TeleBT v1.0, and the 4-pin end to
187                           the matching connector on the TeleMetrum.
188                           Note that each MicroMaTch connector has an
189                           alignment pin that goes through a hole in
190                           the PC board when you have the cable
191                           oriented correctly.
192
193                         . Attach a battery to the TeleMetrum board.
194
195                         . Plug the TeleDongle v0.2 or TeleBT v1.0 into
196                           your computer's USB port, and power up the
197                           TeleMetrum.
198
199                         . Run AltosUI, and select 'Flash Image' from
200                           the File menu.
201
202                         . Pick the TeleDongle v0.2 or TeleBT v1.0
203                           device from the list, identifying it as the
204                           programming device.
205
206                         . Select the image you want put on the
207                           TeleMetrum, which should have a name in the
208                           form telemetrum-v1.2-1.0.0.ihx.  It should
209                           be visible in the default directory, if not
210                           you may have to poke around your system to
211                           find it.
212
213                         . Make sure the configuration parameters are
214                           reasonable looking. If the serial number
215                           and/or RF configuration values aren't right,
216                           you'll need to change them.
217
218                         . Hit the 'OK' button and the software should
219                           proceed to flash the TeleMetrum with new
220                           firmware, showing a progress bar.
221
222                         . Confirm that the TeleMetrum board seems to
223                           have updated OK, which you can do by
224                           plugging in to it over USB and using a
225                           terminal program to connect to the board and
226                           issue the 'v' command to check the version,
227                           etc.
228
229                         If something goes wrong, give it another try.
230
231                 ==== Updating TeleMini Firmware
232
233                         You'll need a special 'programming cable' to
234                         reprogram the TeleMini.  You can make your own
235                         using an 8-pin MicroMaTch connector on one end
236                         and a set of four pins on the other.
237
238                         . Take the 2 screws out of the TeleDongle v0.2
239                           or TeleBT v1.0 case to get access to the
240                           circuit board.
241
242                         . Plug the 8-pin end of the programming cable
243                           to the matching connector on the TeleDongle
244                           v0.2 or TeleBT v1.0, and the 4-pins into the
245                           holes in the TeleMini circuit board.  Note
246                           that the MicroMaTch connector has an
247                           alignment pin that goes through a hole in
248                           the PC board when you have the cable
249                           oriented correctly, and that pin 1 on the
250                           TeleMini board is marked with a square pad
251                           while the other pins have round pads.
252
253                         . Attach a battery to the TeleMini board.
254
255                         . Plug the TeleDongle v0.2 or TeleBT v1.0 into
256                           your computer's USB port, and power up the
257                           TeleMini
258
259                         . Run AltosUI, and select 'Flash Image' from
260                           the File menu.
261
262                         . Pick the TeleDongle v0.2 or TeleBT v1.0
263                           device from the list, identifying it as the
264                           programming device.
265
266                         . Select the image you want put on the
267                           TeleMini, which should have a name in the
268                           form telemini-v1.0-1.0.0.ihx.  It should be
269                           visible in the default directory, if not you
270                           may have to poke around your system to find
271                           it.
272
273                         . Make sure the configuration parameters are
274                           reasonable looking. If the serial number
275                           and/or RF configuration values aren't right,
276                           you'll need to change them.
277
278                         . Hit the 'OK' button and the software should
279                           proceed to flash the TeleMini with new
280                           firmware, showing a progress bar.
281
282                         . Confirm that the TeleMini board seems to
283                           have updated OK, which you can do by
284                           configuring it over the radio link through
285                           the TeleDongle, or letting it come up in
286                           “flight” mode and listening for telemetry.
287
288                         If something goes wrong, give it another try.
289
290                 ==== Updating TeleDongle v0.2 Firmware
291
292                 Updating TeleDongle v0.2 firmware is just like
293                 updating TeleMetrum v1.x or TeleMini firmware, but you
294                 use either a TeleMetrum v1.x, TeleDongle v0.2 or
295                 TeleBT v1.0 as the programmer.
296
297                 . Find the 'programming cable' that you got as part of
298                   the starter kit, that has a red 8-pin MicroMaTch
299                   connector on one end and a red 4-pin MicroMaTch
300                   connector on the other end.
301
302                 . Find the USB cable that you got as part of the
303                   starter kit, and plug the “mini” end in to the
304                   mating connector on TeleMetrum v1.x, TeleDongle v0.2
305                   or TeleBT v1.0.
306
307                 . Take the 2 screws out of the TeleDongle v0.2 or
308                   TeleBT v1.0 case to get access to the circuit board.
309
310                 . Plug the 8-pin end of the programming cable to the
311                   matching connector on the programmer, and the 4-pin
312                   end to the matching connector on the TeleDongle
313                   v0.2.  Note that each MicroMaTch connector has an
314                   alignment pin that goes through a hole in the PC
315                   board when you have the cable oriented correctly.
316
317                 . Attach a battery to the TeleMetrum v1.x board if
318                   you're using one.
319
320                 . Plug both the programmer and the TeleDongle into
321                   your computer's USB ports, and power up the
322                   programmer.
323
324                 . Run AltosUI, and select 'Flash Image' from the File
325                   menu.
326
327                 . Pick the programmer device from the list,
328                   identifying it as the programming device.
329
330
331                 . Select the image you want put on the TeleDongle
332                   v0.2, which should have a name in the form
333                   teledongle-v0.2-1.0.0.ihx.  It should be visible in
334                   the default directory, if not you may have to poke
335                   around your system to find it.
336
337                 . Make sure the configuration parameters are
338                   reasonable looking. If the serial number and/or RF
339                   configuration values aren't right, you'll need to
340                   change them.  The TeleDongle v0.2 serial number is
341                   on the “bottom” of the circuit board, and can
342                   usually be read through the translucent blue plastic
343                   case without needing to remove the board from the
344                   case.
345
346                 . Hit the 'OK' button and the software should proceed
347                   to flash the TeleDongle v0.2 with new firmware,
348                   showing a progress bar.
349
350                 . Confirm that the TeleDongle v0.2 board seems to have
351                   updated OK, which you can do by plugging in to it
352                   over USB and using a terminal program to connect to
353                   the board and issue the 'v' command to check the
354                   version, etc.  Once you're happy, remove the
355                   programming cable and put the cover back on the
356                   TeleDongle v0.2.
357
358                 If something goes wrong, give it another try.
359
360                 Be careful removing the programming cable from the
361                 locking 8-pin connector on TeleMetrum.  You'll need a
362                 fingernail or perhaps a thin screwdriver or knife
363                 blade to gently pry the locking ears out slightly to
364                 extract the connector.  We used a locking connector on
365                 TeleMetrum to help ensure that the cabling to
366                 companion boards used in a rocket don't ever come
367                 loose accidentally in flight.
368         endif::telemetrum,telemini[]