Updating the firmware

From RobotinoWiki
Revision as of 16:26, 24 May 2011 by 93.104.244.228 (talk) (Created page with '=== Manual firmware update === Normally the firmware is updated by a Debian package. However, sometimes it can be necessary to update it manually. The memory of the controller c…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Manual firmware update

Normally the firmware is updated by a Debian package. However, sometimes it can be necessary to update it manually. The memory of the controller contains a USB bootloader that allows you to replace the firmware. To launch the USB bootloader, use the Arm Debugger and connect to the device. Then check the Enter USB bootloader checkbox and click Reset device. If this is not possible for any reason, turn off the device and turn it on again while pressing both buttons. Make sure that the device is connected via USB.

Once the bootloader has been launched, your OS will report a new removable drive called CRP DISABLD which contains a 496kB file firmware.bin. To update the firmware, just replace this file by a new firmware.bin (don't mind that the new file will probably be significantly smaller than 496kB).

Update procedure on Windows

The file can be copied easily by drag & drop using the Windows Explorer. After a few seconds the device will be reset and launch the new firmware.

Update procedure on Linux

This is a little more complicated: it is not possible to use the cp command or a graphical file manager because this would lead to a corrupt memory and the firmware would not be able to run correctly. Instead, mcopy from the mtools package must be used. If it is not installed on your system, install it using your distribution's package managament system or build it from the sources. Then follow these steps (assumed that the device node is /dev/sdb. The real name depends on your system; on Robotino it is /dev/robotinoarm_bootloader):

  • If the system has mounted the removable drive, unmount it:
umount /dev/sdb
  • Clear the device's file system:
mdel -i /dev/sdb ::*.*
  • Copy the new firmware to the device:
mcopy -i /dev/sdb firmware.bin ::firmware.bin

After a few seconds the device will be reset and launch the new firmware.