wiki:Stuff/FirmwareUpdate

Version 5 (modified by art, 13 years ago) (diff)

--

Firmware update

Firmware

As the firmware we call the software running on the OpenBM device, so which is programmed into the uC to control the button fields. Here I would like to show a protocol which I developed in order to update the firmware of the OpenBM device through IBus. Hence no extra hardware is required. A special application can send the firmware using this protocol to the OpenBM device. If sending was ok, no error, then the firmware will be written to the device flash.

Bootloader

Since I am using AVR ATmega32 as the uC the update of the firmware can only be done in the bootloader mode. Special code is written to the bootloader section of the uC and is executed on the start or reset. The bootloader checks for special commands and if nothing received it passes the execution to the main software. So in order to activate bootloader mode on the OpenBM device we do following:

  • reset OpenBM:
    • manually: hold MENU+SELECT+EJECT and the release MENU
    • ibus command: F0 07 .. FA BA AD FE ED .. (dst = BMBT:0xF0, src = ..(ignored), msg = OpenBM_Request:0xFA, data = [0xBA, 0xAD, 0xFE, 0xED])