digitone-2-modding-skill
An agent skill (Claude Code, Codex, Cursor, … via skills.sh) for developing your own firmware mods for the Elektron Digitone II (OS 1.11):
- patch the ColdFire MAIN OS in C (UI, sequencer, parameters, p-locks, LFOs, screen, keys);
- add SHARC DSP audio code (effects, per-track processing, new machines);
- verify both in two emulators: the real OS on digikit, and a whole-DSP SHARC emulator included here;
- read stock code through a firmware atlas: functions, callers, C++ classes and vtables recovered from your own image;
- rebuild, re-sign and flash the
.syxover USB.
It packs the reverse-engineering notes (stock addresses, hook sites, the ColdFire → DSP frame, free memory), the hardware rules that the emulators cannot see (each one once silenced a real unit), and the tools: a ColdFire mod builder, a SHARC boot-stream block adder, a DSP kernel DSL with a bit-exact model, static hardware-rule checks, a USB flasher, and two worked examples that pass their emulator tests.
Install
npx skills add complex-ping/digitone-2-modding-skill
Then ask your agent to set up the workspace (scripts/dn2setup.py). It checks every dependency and tells you what is
missing.
You need
- your own copy of Elektron's Digitone II OS 1.11
.syx(not included; sha2562af43e65…72e0); - Python 3.11+, dnfw (container, signing, C builds), an m68k
GCC (
gcc-m68k-linux-gnu), digikit for the ColdFire emulator; recommended PyPy,cffi,mido+python-rtmidi.
Details: skills/digitone-2-modding-skill/references/setup.md.
Reading the firmware
scripts/cfatlas.py turns your copy of the OS into a queryable database in seconds. The ColdFire OS kept its C++ RTTI, so classes,
vtables and many method names come back from the image itself:
python3 scripts/cfatlas.py build
python3 scripts/cfatlas.py class '^PatternGridView$'
python3 scripts/cfatlas.py fn 0x40063F56
Examples
double_time: a ColdFire C hook. The sequencer clock runs at 2x; checked in the ColdFire emulator (4 → 8 sixteenths in 300 blocks).track_trim: a SHARC DSP mod. Track 1 is 6 dB down in the main mix, from a new L2 code block, a CALL hook and an fxdsl kernel; checked by an A/B render against stock (ratio 0.5000, track 2 unchanged).
Made with this skill
Overtone: custom firmware for the Digitone II (OS 1.12) with per-track insert effects, the THRU, SOPHIE, LOOP and MACHINEDRUM machines, envelope followers, two arpeggiators, parameter slides and GROOVE. Ready to install: its patcher makes the build from Elektron's own OS file.
Disclaimer
Unofficial and not affiliated with or endorsed by Elektron. Elektron and Digitone are trademarks of Elektron Music Machines. Flashing modified firmware is at your own risk. A unit can always be recovered by reflashing the stock OS over DIN MIDI (hold [FUNC] at power-on, [TRIG 4]). Do not redistribute Elektron's firmware or modified images of it.
Checks without any firmware: python tests/skill_check.py, python -m unittest discover -s tests -p 'test_*.py' (also in CI).
Licenses: MIT, except the digikit-derived files (GPL-2.0); see THIRD-PARTY.md.
