Page 1 of 16

History of MegaDrum firmware versions

PostPosted: Mon Nov 19, 2007 11:19 pm
by dmitri
All-in-one archive of MegaDrum32 firmware:
megadrum_20091217.zip

All firmware files in the archive have the following naming scheme:
megadrumppp_hh_yyyymmdd.hex for 22 inputs versions
megadrumppp_hh_32_yyyymmdd.hex for 32 inputs versions
megadrumppp_hh_40_yyyymmdd.hex for 40 inputs versions
megadrumppp_hh_48_yyyymmdd.hex for 48 inputs versions
megadrumppp_hh_56_yyyymmdd.hex for 56 inputs versions
where
ppp - AVR type. 32 - for Atmega32, 324 - for Atmega324(p), 644 - for Atmega644
hh - crystal clock in MHz. Atmega32 versions with a clock above 16MHz are overclocked, Atmega324(p)/644 versions with a clock above 20MHz are overclocked.
yyyymmdd - date(version) of the firmware.

Changes in version 20091217:

1. Oops, MIDI optimization in the previous release broke Sysex functionality. Reverted MIDI optimization changes until some date later.

Changes in version 20091216:

1. Fixed a bug which could cause instability/crushes/unexpected behaviour.
2. Optimized MIDI messages handling.

Changes in version 20091122:

1. Further optimization. Sampling rate increased by about 10-20%.

Changes in version 20091101:

1. Further optimization. When upgrading to this version using MIDI-OX make sure you set Output Buffer Size to 64000.

Changes in version 20091028:

1. Fixed key delays when navigating the menu.

Changes in version 20091027:

1. Even more internal optimization. Compared to version 20090825 inputs sampling rate almost doubled and compared to version 20091007 sampling rate increased by about 30%.

Changes in version 20091007:

1. Fixed the issue with a switch type HH pedal where it was not possible to get proper results without using a pull up resistor.

Changes in version 20091004:

1. Further optimized some firmware internals. No kidding!

Changes in version 20090927:

1. Further optimized some firmware internals.

Changes in version 20090926:

1. Added an "InputsPriority" option. When set to Yes the first 3/4th of Head/Bow inputs are given slightly higher priority (sampled more often) then the rest of inputs.
2. Considerably optimized some firmware internals which should have positive effect on overall performance.

Changes in 20090825 version:

1. Fixed a bug that prevented custom curves from being saved/loaded to/from EEPROM.

Changes in 20090818 version:

1. Added options to automatically set Threshold for Edges and Bells for 2 and 3 zone piezo/switch and piezo/switch/switch pads/cymbals: 'Set All EdgwSw' and 'Set All BellSw'

Changes in 20090814 version:

1. Custom curves 1, 2, 3 and 4 by default are now copies of Linear, Log2, Exp2 and Strong curves respectively.
2. Made LCD contrast range wider.

Changes in 20090729 version:

1. Improved separation between edge and bell zones for Yamaha style 3 zone cymbals.

Changes in 20090718 version:

1. Added support for MIDI PC messages 32-63 (0x20-0x3f) which change drum maps without changing curves.
2. Modified false triggering suppression algorithm when AltFalseTrSupp is set to Yes.
3. Some internal changes to optimize memory usage which should not effect how MegaDrum performs.

Changes in 20090705 version:

1. Fixed a bug introduced in 20090703 which caused to ignore pad setting when loading over Sysex.

Changes in 20090703 version:

1. In this version channel numbers and curves are moved from Configs to Drum Maps
2. Notes numbers are removed from configs. When saving/loading a Config it saves/loads a Drum Map with the same number.

Changes in 20090624 version:

1. Changes to MIDI Program Change messages. The format of the message is: 0xCn 0xpp where n is MegaDrum Chain ID and 0xpp is a drum map or a config to load. If 0xpp is less than 0x40 (64) it will load a drum map 0xpp+1. If 0xpp is equal to or more than 0x40 (64) it will load a config 0xpp-0x40+1. Note that in Program Change messages n corresponds to a MIDI channel number and where n=0 corresponds to MIDI channel number 1.

Changes in 20090623 version:

1. Added support for 4 custom Curves. See viewtopic.php?f=3&t=797 for details.

Changes in 20090617 version:

1. MegaDrum now recognise MIDI Program Change messages. The format of the message is 0xCn 0xpp where n is MegaDrum Chain ID and 0xpp is a number of a drum map to load. Note that in Program Change messages n corresponds to a MIDI channel number and where n=0 corresponds to MIDI channel number 1.
2. MIDI LED now comes on on incoming MIDI messages.

Changes in 20090609 version:

1. Corrected misplaced Chick nad Splsh labels in the Pedal submenu.

Changes in 20090607 version:

1. Aftertouch MIDI messages are not sent for a disabled (note set to 0) 3rd zone on 3 zones pads/cymbals.
2. Added 56 inputs version.

Changes in 20090528 version:

1. Implemented soft chick when pedal not fully pressed.
2. Added 'Reverse Levels' (LvlsRevers) option for HiHat pedals.

Changes in 20090517 version:

1. Fixed applying AltFalseTrSupp bit when receiving 'Misc Settings Sysex'

Changes in 20090516 version:

1. VU meters pause at peaks.
2. Optimized LCD update speed.

Changes in 20090515 version:

1. HiHat pedal now supports Yamaha style 3 zone cymbals.
2. Added an option in the HiHat Pedal configuration to choose an input for the HiHat cymbal.
3. I had to change the format of the HiHat pedal Sysex configuration message. Don't use MCT yet to change pedal's settings.
4. Fixed an issue from the previous firmware version where quick pedal step on/off didn't cause an exit from the menu unless ChickDelay was set and a Splash actually was triggered.

Changes in 20090512 version:

1. More changes to HiHat pedal chick/splash handling.
2. Improvements to LCD handling.

Changes in 20090508 version:

1. XTalk suppression algorithm adjustment. This fixes the issue where some hits are being missed for 'rim shots' with dual zone piezo/piezo pads.

Changes in 20090504 version:

1. Added adjustable 'Open Level' and 'Closed Level' for HH pedal.
2. Added 'Short Chick Level' (Threshold) and 'Long Chick Level' (Threshold) for HH pedal.

Changes in 20090430 version:

1. Made adjustments to HH pedal handling to get better variable 'chick' velocity.

Changes in 20090427 version:

1. Made improvements in false triggering suppression algorithm which should have positive affect on both elimination of ghost notes and better fast rolls.
2. Introduced an alternative false triggering suppression algorithm. It can be enabled if 'AltFalseTrSupp' set to Yes in the menu. With this algorithm you may want to decrease 'Retrigger' by 2-4 and DynLvl by 1-2 compared to what you usually set them to. Based on feedback I may make changes to this algorithm in later versions so effect of XTalk, Retrigger/DynLvl/DynTime settings may change as well.

Changes in 20090326 version:

1. Made 'Autoload Conf' option consistent. MIDI Speed is now saved/loaded into/from config slots along with all other settings.
2. Fixed loading default settings with the key RIGHT pressed while powering up.

Changes in 20090306 version:

1. A small modification for HH pedal handling to eliminate small negative effect on sensitivity of CrashB and Tom4H, and Aux6H inputs.

Changes in 20090301 version:

1. Fixed displaying incorrect 'AutoLoad Conf'. It always displayed 'No' on power up even if it was set to 'Yes'.

Changes in 20090211 version:

1. Corrected keys/buttons algorithm to prevent contact bounce.
2. Corrected encoders algorithm to allow 1 step increments for wide values.
3. Inputs with a note set to 0 are now considered as disabled.
4. Included support for 40/48 inputs (not tested by me)

Changes in 20081222 version:

1. Added 'All Gains Low' setting. Setting this to Yes will disable all individual input Gain levels and make Gain even lower than 'Gain Level' 0. It could be used if all your pads are 'hot' and to get a better dynamic range with such pads.
2. Added Rim shot support for dual piezo/piezo pads. It is still an experimental feature. Right settings for HighLevel on both the head and the rim inputs is very important. Raising MinScan on both the head and the rim can also improve rim shot reliability. See details in viewtopic.php?f=3&t=377

Changes in 20081218 version:

1. Added firmware version SysEx mesage.
2. Fixed Sysex bug where the order of data in pad config SysEx messages was incorrect.

Changes in 20081214 version:

1. There was a bug with auto detection of pedal levels which in some rare circumstances could make MegaDrum hang. This version fixes it.
2. Format of gain level bits in Sysex has changed slightly. Sorry elrules!

Changes in 20081204 version:

1. The Latency setting would not get updated via Sysex. This version fixes this.

Changes in 20081202 version:

1. Added a Latency setting to SysEx configuration which I previously mistakenly omitted from SysEx. MCT (MegaDrum Config Tool) should still work fine even before it is updated to support it).
2. Fixed a bug with BigVu meter and QuickAccess settings when AutoloadConf is set yo Yes but BigVu meter and QuickAccess have never been changed before. See viewtopic.php?p=5078#p5078

Changes in 20081020 version:

1. Added support for 3 zone Yamaha style cymbals. See the forum for details on configuring such cymbals.
2. Made a change to a 'note off' setting in Sysex. See menu_layout.pdf for details.

Changes in 20081012 version:

1. For those who may have experienced false rim hits while doing hard "head on" rolls on dual piezo/piezo pads this version may have fixed the issue.
2. Fixed a bug in switch handling in dual piezo/switch pads.

Changes in 20081006 version:

1. Adds two settings in the 'HiHat Pedal' section: Curve and ChckDelay. With the first setting you can counteract logarithmic HiHat pedal output. With the second setting you can assign chick delay in milliseconds. With a default value 0 Chick/Splash behaviour is just like in previous firmware versions. When I set it to 20 I can avoid a chick with a splash and still have not badly noticeable chick delays but I must press/release a pedal really fast. When set to 50 chick delays become very noticeable although getting splash without a chick is much easier.
2. Modified Sysex handling. It is still compatible with the old type of Sysex handling where a config is loaded/sent as a big single dump. This version adds possibility to send/request a configuration for every single pad input, pedal and miscellaneous (Note off delay only for current configs). In the future this will allow to add new configuration options without breaking compatibility with previous versions of sysex configs or sysex handling utilities. Details will be published in menu_layout.pdf (I really should come up with a better name for this document).

Note: Previously saved EEPROM and SysEx configs are not compatible with this version so if upgrading with a bootloader either set 'AuloadConf' to No before the upgrade or load default settings after the upgrade (holding key RIGHT while powering up).

Changes in 20080909 version:

1. Curiously, but nobody has noticed that MegaDrum has been showing incorrect note names in the menu. This version fixes it.

Changes in 20080813 version:

1. Added two more hit curves: Log3 and and Log4. Now Log2 is a curve which corresponds to Log1, and Log4 is a curve which corresponds to Log2 in previous firmwares. Log1 is intermediate between Linear and Log2, Log3 is intermediate between Log2 and Log4.
2. Firmware is now both in .hex and .syx formats.

Changes in 20080720 version:

1. Added a 'Quick Access' configuration option in the menu. 'Quick Access' with HiHat pedal pressed down (jumping to a pad hit while in the menu or loading drum maps with keys UP/DOWN while in 'VU meter' mode) has always been enabled before. It might have caused problems trying to access the configuration menu if HiHat Pedal was unconnected or misconfigured. Now you can disable/enable this feature. By default 'Quick Access' is now disabled.

Changes in 20080717 version:

1. Added a 'Quick Drum Map load' feature. While in VU meter mode and holding a HH pedal pressed down, use keys UP/DOWN to load next/previous drum map.

Changes in 20080705 version:

1. Modified handling for the HiHat pedal input so that simple switch type pedals could be used without an additional pull-up resistor.
2. Improved auto updating HighLevel for pads with HiLvlAuto set to 'Yes'.
3. Improved auto updating Low/High levels for a HiHat pedal if LevelsAuto is set to 'Yes'.

Changes in 20080702 version:

1. If for a Rim/Edge channel pad type was set as 'Switch', HiLevelAuto as 'Yes' and the Head/Bow 'Dual Head' was set to 'No' than HighLevel for the Rim/Edge channel would be incorrectly set to a negative value. This version fixes it.
2. Fixed a pad name for Aux6R. It incorrectly displayed it as Aux6H. I guess nobody uses so many inputs since this typo hasn't been noticed since beginnings of time.

Changes in 20080621 version:

1. I accidentally left debug flag on in the previous version which disabled MIDI LED and Up/Down rotary encoder. This version fixes it.

Changes in 20080619 version:

1. LCD contrast is now controlled from firmware. No need for an LCD contrast pot any more! While in the menu where it shows:
<MegaDrum.info >
(c)D.Skachkov
pressing Up/Down or rotating the Up/Down encoder changes LCD contrast. See updated schematics for required changes - minus a pot, plus a resistor and a capacitor.

Changes in 20080615 version:

1. Fixed a bug with setting pedal notes introduced in version 20080530 along with AltIn option.

Changes in 20080613 version:

1. Friday 13th edition featuring themed screen saver.
2. Added support for rotary encoders. See viewtopic.php?f=3&t=214

Changes in 20080604 version:

1. Added Crosstalk grouping. You can now place each pad in one of 4 crosstalk groups.
2. Small changes to handling settings saving to prevent accidental EEPROM wear.

Changes in 20080530 version:

1. Added support for 3way triggers. I'm not able to test it myself so until someone proves opposite I claim it works with cymbals like CY-12/CY-15.
2. Added 'auto Chain ID'. When several MegaDrum modules connected in a chain and powered up simultaneously each of them gets a unique Chain ID so that all of them could be controlled from a PC.
3. Added an option to connect a high impedance HiHat controller to 32 inputs version of MegaDrum. That required small changes to the schematics. You can see in the Analogue Board schematic for 32 inputs version that pin 2 of J1.1 (only in the first of two Analogue boards) can now be used as an input for HiHat pedal controllers with high impedance. There is a relevant setting in the menu for this: HiHat Pedal->AltIn

Changes in 20080503 version:

1. Fixed a bug which was effecting dual zone pads (both piezo/piezo and piezo/switch) with some settings combinations.

Changes in 20080501 version:

1. SysEx config is now sent/received in one page. If you're using MIDI-OX for saving/restoring configs, make sure you set Input and Output Buffer sizes to at least 512 in Options->Configure Buffers. If you're using Bootloader to update firmware, you've probably already set Output Buffer size to 40000.
2. Added SysEx Chain ID. Allows connecting several MegaDrum modules in a chain to be controlled from a PC. Assign a unique Chain ID to each MegaDrum in a chain.
3. Added Level Compression and Level Shift. Level Compression can be set between 0 (no compression or level = original level * 128/128) and 7 (level = original level * 72/128). Level Shift can be set to 0,8,16,24,32,40,48 or 56. Level Shift is added after the level compression (or no compression for that matter). See more details in this thread.
All new changes are reflected in the MegaDrum Menu layout/Configuration document.

Changes in 20080410 version:

1. Slightly changed parameters for crosstalk handling.
2. Modified dual zone piezo/piezo pads handling.

Changes in 20080406 version:

1. Added per input adjustable "Dynamic Threshold" parameters: Dynamic Threshold Level and Dynamic Threshold Decay Time.
2. Slightly adjusted parameter for dual piezo/switch pads handling which may (or may not) enable piezo/piezo cymbals with Keith Raper's circuit to choke.

Changes in 20080331 version:

1. Adjusted a parameter for dual piezo/switch pads so that choking could be done faster.

Changes in 20080329 version:

1. Fixed a bug where in some circumstances "Latency" value was incorrectly set/displayed.

Changes in 20080324 version:

1. This version replaces global Crosstalk suppression level with per input Crosstalk suppression levels. As a result you can even disable crosstalk suppression for individual inputs.
2. Improved algorithm for switch inputs for dual piezo/switch pads.
Note, the SysEx config has slightly increased in size so it is not compatible with configs you may have saved before.

Changes in 20080209 version:

1. This version introduces a new setting per each input: MinScan - Minimum Scan time. In the menu it is shown/measured in 1/10th of millisecond. It can be changed between 1 and 100 which correspond to 0.1ms and 10ms respectively. Important, if you have a dual piezo/piezo pad you should set MinScan for this pad equal or close to each other between Head/Bow and Rim/Edge inputs.
2. Substantially modified algorithm for sampling input signals. In short it does a kind of "caching" for choosing inputs to sample and trigger.
Note, this version breaks compatibility with MegaDrum Controller for 22 inputs

Changes in 20080125 version:

1. Improved "dynamic threshold" algorithm. It allows to set Retrigger parameters lower and still avoid "ghost notes" and positively effects drum rolls even with non-optimal other parameters. In my kit I could set Retrigger to 4-8ms whereas before I had to set it above 12ms.

Changes in 20071221 version:

1. Optimization of dual piezo/switch pads handling

Changes in 20071220 version:

1. More optimization in input signal handling.

Changes in 20071219 version:

1. LCD handling optimization.

Changes in 20071218 version:

1. Added an option to change latency between 1 and 10ms in 1/10th of ms steps.

Changes in 20071211 version:

1. Fixed MIDI LED not flashing when sending SysEx.
2. Added Atmega324 20MHz support

Changes in 20071210 version:

1. Some code optimization which deserves a new firmware release

Changes in 20071206 version:

1. Added an option to choose between standard and big VU meter.

Changes in 20071205 version (important update!):

1. Revised LCD handling. The old type of LCD handling negatively effected fast drum rolls.

Changes in 20071204 version:

1. Fixed a bug with saving/loading drum maps

Changes in 20071203 version:

1. Added an option to change MIDI channel, curve, threshold, retrigger delay to all inputs simultaneously.
2. Fixed a bug where 'gain' changed in menu would not take effect.
3. Decreased latency to 0.5 nanosecond.

Changes in 20071124 version:

1. Skip 'Autoload Conf' if the key 'RIGHT' is pressed during powering up.
2. Set 'Autoload Conf' to yes if MIDI Sysex command 'Save config' is received.
3. MIDI activity on a LED connected over 1K resistor between pin 27 on Atmega32 and Vcc (+5V).
4. Feeds excess electricity from drum pads to USB bus and to your power socket, keeps your electricity bills low.

Changes in 20071121 version:

1. Exit menu with a splash (quickly press and release HiHat pedal)
2. Improved Auto level detection for HiHat pedal
3. Fixed a bug with Crosstalk level 5 (pads were not responding with this level)
4. Something else which I don't remember
5. Introduced 5 more bugs

Re: Latest MegaDrum32 firmware versions

PostPosted: Tue Feb 19, 2008 1:49 pm
by Bluebass
Dmitri,

Is there a working version posted somewhere for ATMEGA32_16_(22 input)? The newest firmware build, 20080209 breaks the 22 input version as you stated in the release notes.
I built the HW for the 16 MHz/22 input version loaded with release 20071210 and left it that way to debug the HW. Now that my diy zendrum is done, I wanted to load the 20080125 version.
Thanks.

Re: Latest MegaDrum32 firmware versions

PostPosted: Tue Feb 19, 2008 2:20 pm
by Synthex
Bluebass wrote:Is there a working version posted somewhere for ATMEGA32_16_(22 input)? The newest firmware build, 20080209 breaks the 22 input version as you stated in the release notes.
I built the HW for the 16 MHz/22 input version loaded with release 20071210 and left it that way to debug the HW. Now that my diy zendrum is done, I wanted to load the 20080125 version.
Thanks.

This new version breaks compatibility with MegaDrum Controller for 22 inputs.
"megadrum32_16_20080209.hex" works with your 16 MHz/22 input version.

Re: Latest MegaDrum32 firmware versions

PostPosted: Tue Feb 19, 2008 4:07 pm
by Bluebass
Thanks Synthex. However, I am saying I loaded new fw and it did break the controller. Will not save maps or configs. Did your testing of this version work on your 22 input 16 MHz HW?

Re: Latest MegaDrum32 firmware versions

PostPosted: Fri Feb 22, 2008 11:17 am
by estregan
Dmitri,

May I request for 12Mhz version for 32 inputs? I just made Synthex' all in one pcb but I still used my existing 12Mhz crystal as I can't find any 16Mhz and up here.

Thanks.

Re: Latest MegaDrum32 firmware versions

PostPosted: Fri Feb 22, 2008 11:33 am
by Synthex
estregan wrote:Dmitri,

May I request for 12Mhz version for 32 inputs? I just made Synthex' all in one pcb but I still used my existing 12Mhz crystal as I can't find any 16Mhz and up here.

Thanks.

12 MHz will not be enough to control 32 inputs ...

Re: Latest MegaDrum32 firmware versions

PostPosted: Fri Feb 22, 2008 2:36 pm
by estregan
Synthex wrote:12 MHz will not be enough to control 32 inputs ...
Hey Synthex,

I'm only using up to 24 inputs since I only have 3 MAX4558 ICs. Do I still need 16MHz crystal?

Re: Latest MegaDrum32 firmware versions

PostPosted: Fri Feb 22, 2008 2:39 pm
by Synthex
estregan wrote:
Synthex wrote:12 MHz will not be enough to control 32 inputs ...
Hey Synthex,

I'm only using up to 24 inputs since I only have 3 MAX4558 ICs. Do I still need 16MHz crystal?

Yes, the Atmega didn't know that there was only 3 MAX4558 ICs !

Re: Latest MegaDrum32 firmware versions

PostPosted: Sat Feb 23, 2008 4:46 am
by estregan
Only frequency available here is 17.1MHz and 16.9MHz. Can I use that?

Re: Latest MegaDrum32 firmware versions

PostPosted: Sat Feb 23, 2008 11:39 am
by Synthex
estregan wrote:Only frequency available here is 17.1MHz and 16.9MHz. Can I use that?

No.
Where do you live ?