TeleStern/doc/updating-firmware.inc

418 lines
14 KiB
PHP

[appendix]
== Updating Device Firmware
ifdef::telemega[]
TeleMega, TeleMetrum v2 and newer, EasyMega, EasyMini and TeleDongle v3
are all
endif::telemega[]
ifndef::telemega[]
EasyMini is
endif::telemega[]
programmed directly over their USB connectors (self
programming).
ifdef::telemega[]
TeleMetrum v1, TeleMini v1.0 and TeleDongle v0.2 are
all programmed by using another device as a programmer (pair
programming). It's important to recognize which kind of devices
you have before trying to reprogram them.
endif::telemega[]
TeleMini v3 can be updated directly over USB, but has no USB connector
on the board. Instead, the USB signals are present on a row of 6
holes adjacent to the copyright assertion in the silk screen. Thus,
updating firmware on TeleMini v3 requires making up a special cable,
after which you can treat it just like TeleMetrum or TeleMega. Many
USB cables seem to follow the color code of red is +5V, black is GND,
green is USB +, and white is USB -. On TeleMini v3, pin 3 which has
a square copper pad is ground, pin 1 is USB -, and pin 2 is USB +.
You may wish to begin by ensuring you have current firmware
images. These are distributed as part of the AltOS software
bundle that also includes the AltosUI ground station program.
Newer ground station versions typically work fine with older
firmware versions, so you don't need to update your devices
just to try out new software features. You can always
download the most recent version from
http://www.altusmetrum.org/AltOS/
ifdef::telemega[]
=== Updating TeleMega, TeleMetrum v2 or newer, TeleMini v3, EasyMega, EasyMini, TeleDongle v3 or TeleBT v3 Firmware
endif::telemega[]
ifndef::telemega[]
=== Updating EasyMini Firmware
endif::telemega[]
Self-programmable devices are reprogrammed by
connecting them to your computer over USB.
. Attach a battery if necessary and power switch to
the target device. Power up the device.
. Using a Micro USB cable, connect the target device to your
computer's USB socket. If the target is a TeleMini v3,
make up and attach a special USB cable.
. Run AltosUI, and select 'Flash Image' from the File menu.
. Select the target device in the Device Selection dialog.
. Select the image you want to flash to the device,
which should have a name in the form
<product>-v<product-version>-<software-version>.ihx,
such as EasyMini-v1.0-1.6.0.ihx.
. Make sure the configuration parameters are
reasonable looking. If the serial number and/or RF
configuration values aren't right, you'll need to
change them.
. Hit the 'OK' button and the software should proceed
to flash the device with new firmware, showing a
progress bar.
. Verify that the device is working by using the
'Configure Altimeter' or 'Configure Groundstation'
item to check over the configuration.
==== Recovering From Self-Flashing Failure
If the firmware loading fails, it can leave the device
unable to boot. Not to worry, you can force the device to
start the boot loader instead, which will let you try to
flash the device again.
On each device, connecting two pins from one of the exposed
connectors will force the boot loader to start, even if the
regular operating system has been corrupted in some way.
ifdef::telemega[]
TeleMega::
Connect pin 6 and pin 1 of the companion
connector. Pin 1 can be identified by the square pad
around it, and then the pins count sequentially across
the board. Be very careful to *not* short pin 8 to
anything as that is connected directly to the
battery. Pin 7 carries 3.3V and the board will crash
if that is connected to pin 1, but shouldn't damage
the board.
endif::telemega[]
ifdef::easymega[]
EasyMega::
Connect pin 6 and pin 1 of the companion
connector. Pin 1 can be identified by the square pad
around it, and then the pins count sequentially across
the board. Be very careful to *not* short pin 8 to
anything as that is connected directly to the
battery. Pin 7 carries 3.3V and the board will crash
if that is connected to pin 1, but shouldn't damage
the board.
endif::easymega[]
ifdef::easytimer[]
EasyTimer::
Connect pin 5 and pin 1 of the debug connector, which
is the six holes next to the beeper. Pin 1 can be
identified by the square pad around it, and then the
pins count sequentially across the board, making Pin 5
the one on the other end of the row.
endif::easytimer[]
ifdef::telemetrum[]
TeleMetrum v2 and newer::
Connect pin 6 and pin 1 of the companion
connector. Pin 1 can be identified by the square pad
around it, and then the pins count sequentially across
the board. Be very careful to *not* short pin 8 to
anything as that is connected directly to the
battery. Pin 7 carries 3.3V and the board will crash
if that is connected to pin 1, but shouldn't damage
the board.
endif::telemetrum[]
ifdef::easymini[]
EasyMini::
Connect pin 6 and pin 1 of the debug connector, which
is the six holes next to the beeper. Pin 1 can be
identified by the square pad around it, and then the
pins count sequentially across the board, making Pin 6
the one on the other end of the row.
endif::easymini[]
TeleGPS v1::
Connect pin 32 on the CPU to ground. Pin 32 is the
right-most pin on the bottom edge of the CPU when the
board is oriented with the USB and battery connectors
to the right.
TeleGPS v2::
Connect together pins 1 and 5 of the Debug connector.
Pin 1 is the pin with the square pad around the hole.
ifdef::telemetrum[]
TeleDongle v3::
Connect pin 32 on the CPU to ground. Pin 32 is closest
to the USB wires on the row of pins towards the center
of the board. Ground is available on the capacitor
next to it, on the end towards the USB wires.
TeleBT v3::
Connect pin 4 on the CPU to 3.3V, which can be done by
connecting pin 1 to pin 4. Pin 1 is the left pin on
the lower edge of the chip when the unit is oriented
such that the SMA is at the top.
TeleBT v4::
Connect pin 30 on the CPU to ground. Pin 30 is the 6th
pin from the right on the top when the unit is oriented
such that the SMA is at the top.
endif::telemetrum[]
Once you've located the right pins:
. Turn the altimeter power off.
. Connect a battery.
. Connect the indicated terminals together with a
short piece of wire. Take care not to accidentally
connect anything else.
. Connect USB
. Turn the board power on.
The board should now be visible over USB as
'AltosFlash' and be ready to receive firmware. Once
the board has been powered up, you can remove the
piece of wire.
ifdef::telemetrum,telemini[]
=== Pair Programming
The big concept to understand is that you have to use
a TeleMetrum v1.0, TeleBT v1.0 or TeleDongle v0.2 as a
programmer to update a pair programmed device. Due to
limited memory resources in the cc1111, we don't
support programming directly over USB for these
devices.
If you need to update the firmware on a TeleDongle
v0.2, we recommend updating the altimeter first,
before updating TeleDongle. However, note that
TeleDongle rarely need to be updated. Any firmware
version 1.0.1 or later will work, version 1.2.1 may
have improved receiver performance slightly.
==== Updating TeleMetrum v1.x Firmware
. Find the 'programming cable' that you got as
part of the starter kit, that has a red
8-pin MicroMaTch connector on one end and a
red 4-pin MicroMaTch connector on the other
end.
. Take the 2 screws out of the TeleDongle v0.2
or TeleBT v1.0 case to get access to the
circuit board.
. Plug the 8-pin end of the programming cable
to the matching connector on the TeleDongle
v0.2 or TeleBT v1.0, and the 4-pin end to
the matching connector on the TeleMetrum.
Note that each MicroMaTch connector has an
alignment pin that goes through a hole in
the PC board when you have the cable
oriented correctly.
. Attach a battery to the TeleMetrum board.
. Plug the TeleDongle v0.2 or TeleBT v1.0 into
your computer's USB port, and power up the
TeleMetrum.
. Run AltosUI, and select 'Flash Image' from
the File menu.
. Pick the TeleDongle v0.2 or TeleBT v1.0
device from the list, identifying it as the
programming device.
. Select the image you want put on the
TeleMetrum, which should have a name in the
form telemetrum-v1.2-1.0.0.ihx. It should
be visible in the default directory, if not
you may have to poke around your system to
find it.
. Make sure the configuration parameters are
reasonable looking. If the serial number
and/or RF configuration values aren't right,
you'll need to change them.
. Hit the 'OK' button and the software should
proceed to flash the TeleMetrum with new
firmware, showing a progress bar.
. Confirm that the TeleMetrum board seems to
have updated OK, which you can do by
plugging in to it over USB and using a
terminal program to connect to the board and
issue the 'v' command to check the version,
etc.
If something goes wrong, give it another try.
==== Updating TeleMini v1.0 Firmware
You'll need a special 'programming cable' to
reprogram the TeleMini v1.0. You can make your own
using an 8-pin MicroMaTch connector on one end
and a set of four pins on the other.
. Take the 2 screws out of the TeleDongle v0.2
or TeleBT v1.0 case to get access to the
circuit board.
. Plug the 8-pin end of the programming cable
to the matching connector on the TeleDongle
v0.2 or TeleBT v1.0, and the 4-pins into the
holes in the TeleMini v1.0 circuit board. Note
that the MicroMaTch connector has an
alignment pin that goes through a hole in
the PC board when you have the cable
oriented correctly, and that pin 1 on the
TeleMini v1.0 board is marked with a square pad
while the other pins have round pads.
. Attach a battery to the TeleMini v1.0 board.
. Plug the TeleDongle v0.2 or TeleBT v1.0 into
your computer's USB port, and power up the
TeleMini v1.0
. Run AltosUI, and select 'Flash Image' from
the File menu.
. Pick the TeleDongle v0.2 or TeleBT v1.0
device from the list, identifying it as the
programming device.
. Select the image you want put on the
TeleMini v1.0, which should have a name in the
form telemini-v1.0-1.0.0.ihx. It should be
visible in the default directory, if not you
may have to poke around your system to find
it.
. Make sure the configuration parameters are
reasonable looking. If the serial number
and/or RF configuration values aren't right,
you'll need to change them.
. Hit the 'OK' button and the software should
proceed to flash the TeleMini v1.0 with new
firmware, showing a progress bar.
. Confirm that the TeleMini v1.0 board seems to
have updated OK, which you can do by
configuring it over the radio link through
the TeleDongle, or letting it come up in
“flight” mode and listening for telemetry.
If something goes wrong, give it another try.
==== Updating TeleDongle v0.2 Firmware
Updating TeleDongle v0.2 firmware is just like
updating TeleMetrum v1.x or TeleMini v1.0 firmware, but you
use either a TeleMetrum v1.x, TeleDongle v0.2 or
TeleBT v1.0 as the programmer.
. Find the 'programming cable' that you got as part of
the starter kit, that has a red 8-pin MicroMaTch
connector on one end and a red 4-pin MicroMaTch
connector on the other end.
. Find the USB cable that you got as part of the
starter kit, and plug the “mini” end in to the
mating connector on TeleMetrum v1.x, TeleDongle v0.2
or TeleBT v1.0.
. Take the 2 screws out of the TeleDongle v0.2 or
TeleBT v1.0 case to get access to the circuit board.
. Plug the 8-pin end of the programming cable to the
matching connector on the programmer, and the 4-pin
end to the matching connector on the TeleDongle
v0.2. Note that each MicroMaTch connector has an
alignment pin that goes through a hole in the PC
board when you have the cable oriented correctly.
. Attach a battery to the TeleMetrum v1.x board if
you're using one.
. Plug both the programmer and the TeleDongle into
your computer's USB ports, and power up the
programmer.
. Run AltosUI, and select 'Flash Image' from the File
menu.
. Pick the programmer device from the list,
identifying it as the programming device.
. Select the image you want put on the TeleDongle
v0.2, which should have a name in the form
teledongle-v0.2-1.0.0.ihx. It should be visible in
the default directory, if not you may have to poke
around your system to find it.
. Make sure the configuration parameters are
reasonable looking. If the serial number and/or RF
configuration values aren't right, you'll need to
change them. The TeleDongle v0.2 serial number is
on the “bottom” of the circuit board, and can
usually be read through the translucent blue plastic
case without needing to remove the board from the
case.
. Hit the 'OK' button and the software should proceed
to flash the TeleDongle v0.2 with new firmware,
showing a progress bar.
. Confirm that the TeleDongle v0.2 board seems to have
updated OK, which you can do by plugging in to it
over USB and using a terminal program to connect to
the board and issue the 'v' command to check the
version, etc. Once you're happy, remove the
programming cable and put the cover back on the
TeleDongle v0.2.
If something goes wrong, give it another try.
Be careful removing the programming cable from the
locking 8-pin connector on TeleMetrum. You'll need a
fingernail or perhaps a thin screwdriver or knife
blade to gently pry the locking ears out slightly to
extract the connector. We used a locking connector on
TeleMetrum to help ensure that the cabling to
companion boards used in a rocket don't ever come
loose accidentally in flight.
endif::telemetrum,telemini[]