Skip to content

Firmware update via bootloader

paradajz edited this page Jun 2, 2022 · 22 revisions

Firmware on boards already loaded with OpenDeck firmware can be updated using built-in bootloader, which eliminates the need for an external tool. Bootloader is the very first thing running on OpenDeck board which has two functions:

  • Bootloader verifies the integrity of the firmware once the board is powered on. If the firmware is corrupted in any way, firmware update mode will become active, but otherwise, normal firmware will run.
  • While the board is in bootloader mode, firmware on the board can be updated.

Bootloader entry

Most OpenDeck boards have two ways of activating firmware update (bootloader) mode. First one is through software and is always available if OpenDeck firmware is already loaded on board, and second through hardware. Hardware triggering differs depending on the board - some boards don't have dedicated pin for this. Once the board is in bootloader mode all integrated LEDs on board will be turned on, if those are supported.

Software-based entry

To reset the board into bootloader mode using software trigger, Web interface can be used. Alternative is sending special SysEx command directly to the board without Web interface.

Web UI

In the "Hardware settings" section of Web configurator, click on Firmware section.

Next, click on "Bootloader mode". Clicking on "Check for updates" will check if there is a new firmware available. If there is, you can download .sysex file from that screen which contains the latest firmware.

If the board has been successfully put into bootloader mode, the following interface should appear:

Clicking on "Update firmware" will show file-picker using which a .sysex file containing the firmware can be selected. Once selected, this file will be loaded on the board. Depending on the board, firmware update can take up to 2 minutes.

SysEx

Check bootloader mode section in SysEx wiki page.

Hardware-based entry

Hardware-based bootloader entry can always be used even if OpenDeck firmware is corrupted. For this reason, it is not possible to "brick" the OpenDeck boards when firmware update is performed. This method varies on different boards.

Official OpenDeck boards

These board variants have two-pin header marked BTLDR underneath MIDI out connector, on the far-left side of the board. The board can be rebooted into bootloader mode with following steps:

  1. Unplug the board from PC
  2. Connect two pins on BTLDR header together
  3. Connect the board to PC
  4. Verify that board is in bootloader mode (both integrated LEDs on board are turned on)
  5. After the board is in bootloader mode make sure pins on BTLDR header aren't connected anymore

Arduino Mega

Connect GND and MISO pins located on the ATmega2560 programming header together while the board is powered down. After the board is powered on, both RX and TX LEDs should be on. If they're not, manually reset the board by pressing the reset button once. Once both LEDs are on, make sure GND and MISO pins aren't connected together anymore. Two pins needed to enter bootloader mode are in red square on the picture below.

Clone this wiki locally