Updating MegaDrum firmware via bootloader with MIDI-OX
Posted: Tue Mar 17, 2009 10:40 pm
This post will always contain up to date information on how to update MegaDrum firmware via bootloader using MIDI-OX.
This is the latest MegaDrum bootloader you need to program your Atmega with:
This is the source code of the bootloader (you don't need it unless you want to compile it yourself):
I should point out that the part of the source code written by me is provided under GPL license.
It is sad I had to mention it since there already has been an incident of publishing/using this code under
other names without acknowledgement/reference to the original author.
MegaDrum_bootloader.zip contains 3 files: bootloader32.hex, bootloader324.hex and bootloader644.hex compiled for Atmega32, Atmega324, Atmega644 respectively. You will need only one matching Atmega MCU used in your MegaDrum.
This screenshot shows how fuses must be programmed for Atmega32:
This screenshot shows how fuses must be programmed for Atmega324:
This screenshot shows how fuses must be programmed for Atmega644:
The procedure for programming Atmega is described in MegaDrum documentation at http://www.megadrum.info/content/programming-mcus
Once you have the bootloader programmed follow this procedure:
See the video demonstration of the procedure: MegaDrum firmware upgrade using MIDI-OX
Many thanks to Firelord for creating this video!
1. Power MegaDrum up while holding the key LEFT pressed. If you connect over USB and it is the first time you connect your MegaDrum to your PC, let Windows install drivers.
2. Start MIDI-OX (don't start it before connecting MegaDrum!). In MIDI-OX menu go to Options->Configure Buffers and set Output, NOT Input, Buffers Size to 64000. Be sure it is actually set to 64000 and not to 6400 since the input field shows only 4 characters.
3. If your MegaDrum is connected over USB, in MIDI-OX menu go to Options->MIDI Devices and in 'MIDI Outputs' select MegaDrum USB (it may be called USB Audio). If your MegaDrum is connected over a standard MIDI, in MIDI-OX menu go to Options->MIDI Devices and in 'MIDI Outputs' select MIDI port your MegaDrum is connected to for output.
4. In MegaDrum select correct frequency for your Atmega crystal by pressing the key UP. Each time you press UP it will cycle one step through 16MHz-20MHz-24MHz-12MHz. If you use a 16MHz crystal for Atmega, you don't need to press UP since 16MHz is a default start up frequency for the bootloader.
5. In MegaDrum press the key DOWN. It will display 'Send Sysex now'.
6. Skip this step if your MegaDrum has an old type of the bootloader, i.e. without protection from accidental firmware erasure. In MIDI-OX go to View->SysEx... In the SysEx window go to Command Window-> Load File... and load this file: .
Still in the SysEx window go to Command Window->Send Sysex. After a couple of seconds MegaDrum should show 'ERASED'. If it doesn't, then you didn't select bootloader frequency matching your Atmega crystal or you have hardware problem in your MegaDrum board or your Windows installation is screwed up.
7. In MIDI-OX go to View->SysEx... In the SysEx window go to Command Window-> Load File... and load the MegaDrum firmware .syx file matching your MegaDrum hardware, e.g. for 32 inputs MegaDrum with Atmega32 at 16MHz it will be megadrum32_16_32_20090306.syx where first '32' is type of Atmega, '16' - crystal frequency, second '32' - number of inputs and '20090306' - firmware version. Still in the SysEx window go to Command Window->Send Sysex. It will start sending the new firmware to MegaDrum. The MIDI LED should be flashing around twice a second. After around 10-15 seconds the update should finish, MegaDrum should show 'Updated finished' and it will restart automatically in a couple of seconds. If it doesn't work, then you didn't select bootloader frequency matching your Atmega crystal or you have hardware problem in your MegaDrum board or your Windows installation is screwed up.
This is the latest MegaDrum bootloader you need to program your Atmega with:
This is the source code of the bootloader (you don't need it unless you want to compile it yourself):
I should point out that the part of the source code written by me is provided under GPL license.
It is sad I had to mention it since there already has been an incident of publishing/using this code under
other names without acknowledgement/reference to the original author.
MegaDrum_bootloader.zip contains 3 files: bootloader32.hex, bootloader324.hex and bootloader644.hex compiled for Atmega32, Atmega324, Atmega644 respectively. You will need only one matching Atmega MCU used in your MegaDrum.
This screenshot shows how fuses must be programmed for Atmega32:
This screenshot shows how fuses must be programmed for Atmega324:
This screenshot shows how fuses must be programmed for Atmega644:
The procedure for programming Atmega is described in MegaDrum documentation at http://www.megadrum.info/content/programming-mcus
Once you have the bootloader programmed follow this procedure:
See the video demonstration of the procedure: MegaDrum firmware upgrade using MIDI-OX
Many thanks to Firelord for creating this video!
1. Power MegaDrum up while holding the key LEFT pressed. If you connect over USB and it is the first time you connect your MegaDrum to your PC, let Windows install drivers.
2. Start MIDI-OX (don't start it before connecting MegaDrum!). In MIDI-OX menu go to Options->Configure Buffers and set Output, NOT Input, Buffers Size to 64000. Be sure it is actually set to 64000 and not to 6400 since the input field shows only 4 characters.
3. If your MegaDrum is connected over USB, in MIDI-OX menu go to Options->MIDI Devices and in 'MIDI Outputs' select MegaDrum USB (it may be called USB Audio). If your MegaDrum is connected over a standard MIDI, in MIDI-OX menu go to Options->MIDI Devices and in 'MIDI Outputs' select MIDI port your MegaDrum is connected to for output.
4. In MegaDrum select correct frequency for your Atmega crystal by pressing the key UP. Each time you press UP it will cycle one step through 16MHz-20MHz-24MHz-12MHz. If you use a 16MHz crystal for Atmega, you don't need to press UP since 16MHz is a default start up frequency for the bootloader.
5. In MegaDrum press the key DOWN. It will display 'Send Sysex now'.
6. Skip this step if your MegaDrum has an old type of the bootloader, i.e. without protection from accidental firmware erasure. In MIDI-OX go to View->SysEx... In the SysEx window go to Command Window-> Load File... and load this file: .
Still in the SysEx window go to Command Window->Send Sysex. After a couple of seconds MegaDrum should show 'ERASED'. If it doesn't, then you didn't select bootloader frequency matching your Atmega crystal or you have hardware problem in your MegaDrum board or your Windows installation is screwed up.
7. In MIDI-OX go to View->SysEx... In the SysEx window go to Command Window-> Load File... and load the MegaDrum firmware .syx file matching your MegaDrum hardware, e.g. for 32 inputs MegaDrum with Atmega32 at 16MHz it will be megadrum32_16_32_20090306.syx where first '32' is type of Atmega, '16' - crystal frequency, second '32' - number of inputs and '20090306' - firmware version. Still in the SysEx window go to Command Window->Send Sysex. It will start sending the new firmware to MegaDrum. The MIDI LED should be flashing around twice a second. After around 10-15 seconds the update should finish, MegaDrum should show 'Updated finished' and it will restart automatically in a couple of seconds. If it doesn't work, then you didn't select bootloader frequency matching your Atmega crystal or you have hardware problem in your MegaDrum board or your Windows installation is screwed up.