Machinedrum firmware
New firmware for a 2001 drum machine. Six independent mono outputs, a compressor on every output bus, and the safety tooling to flash it without bricking anything.
- DSP56300 assembly
- ColdFire 68k
- Python
- emulation
- MIDI SysEx
The Elektron Machinedrum is a much-loved drum machine from 2001. Inside are a ColdFire CPU running the interface and sequencer, and two Motorola DSP56303 chips that make the sound. The official firmware stopped changing years ago.
I’ve been writing new firmware for it: reading how the original works, then changing it carefully.
What it adds
- Six independent mono outputs. Every output jack becomes its own bus. You route tracks to any of them.
- A compressor on every bus. Each output has its own compressor, filter and wavefolder, driven from dedicated bus tracks. You set them once and they stay put when you change kits.
- Stability work. I found and fixed timing faults between the two DSPs that could freeze the machine under load.
How it’s built
No hardware debugger and no source code, so most of the work is making the machine observable:
- An emulator-backed test bench that renders every change before it reaches the hardware.
- Safety checks that refuse to build an image that could touch the boot loader, so a bad update can always be recovered.
- Cycle-budget measurement on the real hardware, because the emulator’s numbers turned out to be optimistic.
Coming later
A browser tool that applies the outputs and bus compressors to your own copy of the firmware. Your file never leaves your computer, and no Elektron code is distributed.