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