From today, 4th December, I introduce a new MegaDrum hardware version. It is STM32F103RCT6 (Cortex M3 ARM) based running at 72MHz with built-in USB support.
For now the main advantage of the new version is a reduced by around 2ms latency over USB thanks to elimination of an intermediate USB chip.
To assure all MegaDrum owners I have to state:
1. I will continue to support Atmega644 and Atmega1284 based MegaDrum hardware and release new Atmega644/1284 firmware versions for any foreseeable future.
2. I will continue to offer Atmega1284 based modules/kits (if they remain in demand) along with ARM based kits/modules with a small price difference between them.
3. Everyone, who ordered Atmega based kits/modules in the past, will get a 15% discount when ordering ARM based kits/modules.
This is the view of the top and the bottom of the ARM based board:
This is the view of STM32F103RCT6 on the board:
The ARM based board is slightly smaller then the Atmega based board, see the comparison:
And these are the test results showing the difference in latency between ARM and Atmega based hardware. The test was done on a MacBook Pro with Intel Core i7 and built-in Audio running GarageBand. Both ARM and Atmega boards were configured with 1ms Latency (10) and 1ms MinScan (10) on an input. The latency was measured between the signal on the pads output and the signal on the headphone output.
These are minimal and maximum latency on the ARM board:
These are minimal and maximum latency on the Atmega board:
As you can see the total latency (MegaDrum internal latency + USB latency + Audio latency) with the ARM board varies between ~6ms and ~8ms.
The total latency with the Atmega board varies between ~8ms and ~10ms. The difference between the boards is 2ms on average.
Just to show the MegaDrum's internal latency I measured the latency between the signal on the pads output and the moment data is sent over USB (MIDI LED pin signal goes down):
As you can see the MegaDrum's internal latency varies between 1.2ms and 1.8ms.