Mettre à jour le firmware.
Attention ! Pas testé ! Sauvegarde du wiki tuxdroidisalive.com.
Si jamais vous désirez mettre le firmware à jour parce que vous ne l'aviez pas fait à l'époque, suivez bien toutes les étapes de cette page et du README.txt, je me souviens que ce n'était pas sans stress.
Il n'est pas précisé dans cette page que tuxup et dfu-programmer doivent être copiés dans /usr/bin.
How to update firmwares with tuxup
All CPU's in Tux Droid have a bootloader which means you can update all firmware by using tuxup, the Tux Droid Updater application.
Installing
What you need to install :
- tuxsetup
Tuxsetup includes tuxup, the tux droid updater software, dfu-programmer and all firmware hex files. Tuxup is necessary to update the firmware of all AVR CPU's, which means all CPU's inside Tux and the RF CPU of the dongle.
To reprogram the USB firmware, dfu-programmer is used. As dfu-programmer is not that easy to use, tuxup will be used to do the calls to dfu-programmer for you.
Testing your setup
To be sure everything works fine, don't try to bootload all CPU's simultaneously the first time. These few steps will check that dfu-programmer and tuxup are setup correctly.
Checking tuxup and your hex files. Just type the following
$ tuxup --all --pretend /usr/share/tuxdroid/firmware # or /opt/tuxdroid/firmware/ depending of the version Programming /opt/tuxdroid/firmware/fuxusb.hex in the USB CPU Version 0.5.1 Programming /usr/share/tuxdroid/firmware/tuxcore.hex in the tuxcore CPU Version 0.5.1 Programming /usr/share/tuxdroid/firmware/tuxcore.eep in tuxcore CPU Programming /usr/share/tuxdroid/firmware/tuxaudio.hex in the tuxaudio CPU Version 0.5.1 Programming /usr/share/tuxdroid/firmware/tuxaudio.eep in tuxaudio CPU Programming /usr/share/tuxdroid/firmware/fuxrf.hex in the fuxrf CPU Version 0.3.0 Programming /usr/share/tuxdroid/firmware/tuxrf.hex in the tuxrf CPU Version 0.3.0
you should see the version of some of your hex files like above
Checking dfu-programmer
$ tuxup /usr/share/tuxdroid/firmware/fuxusb.hex Programming /usr/share/tuxdroid/firmware/fuxusb.hex in the USB CPU Version 0.5.1 [ OK ] Time elapsed: 9 seconds.
if you get [OK], you just updated the dongle firmware correctly and you can continue, otherwise try again or look at the common problems
Setting Tux Droid in bootloader mode
There is a special mode that needs to be enabled to upgrade the firmware: the bootloader mode.
Follow this sequence to get in the bootloader mode:
- 1. A clean start: disconnect the dongle, turn off Tux Droid and close any audio applications that might be running.
- 2. Connect the AC wall adapter to be sure tux is well powered.
- 3. Unscrew the battery door on the back of Tux (above the power switch).
- 4. Plug the dongle again into the USB port.
- 5. Keep the head button pushed on Tux Droid while switching him back on.
- 6. The left eye LED will be lit, indicating Tux Droid is in the bootloader mode.
- 7. Connect the provided white programming cable between Tux Droid and the USB dongle.
- 8. You're ready to bootload!
Before programming
Notice
- Don't forget to use the wall adapter to power tux, it's safer!
- You should not get any problem if you use the hex files from tuxsetup. If you compile your own firmware or want to mess up with the hex files, read the more complete update manual.
Programming
Just type the following:
tuxup /usr/share/tuxdroid/firmware/fuxusb.hex tuxup /usr/share/tuxdroid/firmware/tux* /usr/share/tuxdroid/firmware/fuxrf.hex
It's very important to flash fuxusb.hex first. Otherwise, the other CPU may be corrupted.
When done, you have to remove the programming cable and cycle power on both the dongle and tux to get them to reconnect.
Common problems
Claim interface failed
As tuxdaemon is started when the dongle is plugged, it's possible that tuxup get some conflicts with tuxdaemon which will show up as:
Claim interface failed: could not claim interface 3: Device or resource busy USB DEVICE INIT ERROR
Just restart tuxup to try again.
ERROR : Your dongle firmware is too old
Your dongle firmware is too old to be able to reflash Tux Droid. You have to flash the dongle first (fuxusb.hex), with a version 0.5.2 or higher.
Versions under 0.5.2 uses a different protocol, and are not compatible with your version of tuxup.
Tuxup manual
Tuxup overview
To display the help, just type
$ tuxup --help
All the available options will be displayed :
./tuxup 0.5.0 (SVN/UNRELEASED) Usage: ./tuxup options [path|file ...] -m --main Reprogram tuxcore and tuxaudio (flash and eeprom) with hex files located in path. -a --all Reprogram all cpu's with hex files located in path. -p --pretend Don't do the programming, just simulate. -h --help Display this usage information. -v --verbose Print verbose messages. -d --debug Print debug messages. -q --quiet Silent mode -V --version Print the version number. Connection: connect the dongle alone, then press on tux's head button while switching it on. Finally, connect the white cable between tux and the dongle. Notes: * Options '-a' and -'m' can't be used simultaneously. * Inputfiles can be specified only if the -a and -m options are not selected. * Any .hex or .eep files compiled for Tux Droid can be used. * The eeprom file names should contain 'tuxcore' or 'tuxaudio' in order to be identified. The usb hex file should contain 'fuxusb'.
--main (-m)
This option specify that you want flash only the tuxcore and tuxaudio CPUs.
Basically, tuxcore contain the standalone behaviour of Tux, and control the switches, motors, etc. Tuxaudio treats all the audio stuff, and is a communication node between the RF card and tuxcore. Most of the time, changes made on the firmwares concern only these two CPUs.
Example :
$ tuxup --main /usr/share/tuxdroid/firmware
--all (-a)
This option specify that you want flash all the CPUs : tuxcore, tuxaudio, tuxrf, fuxrf and fuxusb.
Example :
$ tuxup --all /usr/share/tuxdroid/firmware
--pretend (-p)
The pretend option simulate the command, but don't reflash the CPUs.
This option is very useful if you're not sure that your tuxup installation is good, or to be sure that your firmware files are not corrupted.
This option can be used simultaneously with -a or -m. Example :
$ tuxup --all --pretend /usr/share/tuxdroid/firmware
--help (-h)
This option display the help, and exit.
--verbose (-v)
Using the verbose mode will display additional message during the update process. It's useful if you want to know what's happens.
Example :
$ tuxup --main --verbose /usr/share/tuxdroid/firmware
--debug (-d)
This option display the debug messages.
--quiet (-q)
Silent mode. If this option is set, only the essential messages will be displayed.
$ tuxup --main --quiet /usr/share/tuxdroid/firmware
--version (-V)
Display the version, and exit