Repository navigation
Releases: sfaber02/CHOMPI-MULTI-FIRMWARE
Release list
Multi-Firmware Launcher v1.6 — keys in colour
A community release
Run TAPE, TEMPO and WAVE from one SD card, with USB storage, and set up the whole card from your computer. Power on and CHOMPI lights one key per firmware, each in its own colour. Press a key and that firmware starts. Power cycle to come back to the picker.
Nothing modifies the bootloader, and nothing is written to the processor's internal flash. It installs like any ordinary firmware update, and swapping back to a stock card returns you to normal. Unofficial and as-is: back up your existing card before reusing it.
Install
- Format a microSD card as FAT32 (32 GB or smaller).
- Copy everything inside
chompi-multi-firmware-card/to the root of the card. - Insert it and power on. The first boot shows the rainbow while the bootloader installs the launcher. After that it goes straight to the picker.
| Key | Firmware |
|---|---|
| 1 | TAPE 2.0 |
| 2 | TEMPO 1.0 |
| 3 | WAVE 1.0 |
| 15 | USB storage |
Samples and settings are stock factory.
Already on v1.1 or later? You don't need to redo the card. Open the setup page and let it update the launcher (from v1.5 on), or copy just the new CHOMPI.bin to the root of your card.
If CHOMPI seems stuck right after the update (keys frozen on one colour), switch it off and on once.
New in v1.6
Launcher 1.6.0 (#4):
- Keys in colour. Every key breathes in its firmware's colour, and flashes in it when you press it. The colours are the ones on the setup page, which sends them when you connect and after each write.
- A firmware the page doesn't know gets a colour made from its name, so it stays the same on every card.
- Colours live in
/FIRMWARE/key_colors.txt, one line per key (05 8A4DFF 05_MYTHING.bin). Edit it by hand if you like. The card in this release comes with the setup page's colours for the stock keys. - Over USB MIDI: set a key's colour, and the list of what's on each key now includes its colour.
- TAPE, TEMPO, WAVE and USB storage are the same builds as v1.5.
The launcher in this release was rebuilt from main and is byte-identical to the 1.6.0 the setup page installs.
Notes
- On a Mac, if USB storage appears but won't mount, quit apps that grab USB devices (Garmin Express is one) and replug.
- Build it yourself:
- Run
makein eachcode/src. Use ARM GCC 10.3-2021.10, except TEMPO, which needs 13.3.rel1. - Run
firmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. - Add the USB storage v1.5 release
.binasFIRMWARE/15_USB_STORAGE.bin.
- Run
- USB storage v1.5 is lnetzel's own build. Everything else was rebuilt from published source.
sha256 a6eb94beb9d349b6194b5e3a4fd1740d28cc33dfa07d5ac9702734c777012460 chompi-multi-firmware-card.zip
sha256 d8cb61595ae3fe3effa4db217632120ccd9764e697f122981917bf0e265bf58e CHOMPI.bin
Built from CHOMPI Club's open-source release, MIT licensed. A community modification, not an official CHOMPI Club release.
Multi-Firmware Launcher v1.5 — set up the card from your computer
A community release
Run TAPE, TEMPO and WAVE from one SD card, with USB storage, and now set up the whole card from your computer. Power on and CHOMPI lights one key per firmware. Press a key and that firmware starts. Power cycle to come back to the picker.
Nothing modifies the bootloader, and nothing is written to the processor's internal flash. It installs like any ordinary firmware update, and swapping back to a stock card returns you to normal. Unofficial and as-is: back up your existing card before reusing it.
Install
- Format a microSD card as FAT32 (32 GB or smaller).
- Copy everything inside
chompi-multi-firmware-card/to the root of the card. - Insert it and power on. The first boot shows the rainbow while the bootloader installs the launcher. After that it goes straight to the picker.
| Key | Firmware |
|---|---|
| 1 | TAPE 2.0 |
| 2 | TEMPO 1.0 |
| 3 | WAVE 1.0 |
| 15 | USB storage |
Samples and settings are stock factory.
Already on v1.1 or later? You don't need to redo the card. Open the setup page and let it update the launcher, or copy just the new CHOMPI.bin to the root of your card.
New in v1.5
- The setup page. With the picker showing, plug CHOMPI into a computer and open https://ugrossek.github.io/CHOMPI/setup/ in Chrome or Edge. Pick a firmware for each key, from the stock ones or community firmwares, and the page writes them all in one go. By @ugrossek.
- The launcher updates itself over the same connection. It keeps the old one as
/CHOMPI.oldand restarts so the bootloader installs the new one. It refuses anything that isn't a launcher. - More over USB MIDI:
- list what's on each key;
- empty a key;
- store a firmware without starting it;
- start any slot (@ZUHcYa).
- Uploads are about 8× faster: 2048-byte messages instead of 256.
- TAPE, TEMPO, WAVE and USB storage are the same builds as v1.3.
The launcher in this release was rebuilt from main and is byte-identical to the 1.5.0 the setup page installs.
Notes
- On a Mac, if USB storage appears but won't mount, quit apps that grab USB devices (Garmin Express is one) and replug.
- Build it yourself:
- Run
makein eachcode/src. Use ARM GCC 10.3-2021.10, except TEMPO, which needs 13.3.rel1. - Run
firmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. - Add the USB storage v1.5 release
.binasFIRMWARE/15_USB_STORAGE.bin.
- Run
- USB storage v1.5 is lnetzel's own build. Everything else was rebuilt from published source.
sha256 2d3f705c0e2cf14f917b710f3d72a19da37b0b9c457c4ba05b9e44f5d022af62 chompi-multi-firmware-card.zip
Built from CHOMPI Club's open-source release, MIT licensed. A community modification, not an official CHOMPI Club release.
Multi-Firmware Launcher v1.3 — USB storage v1.5
A community release
Run TAPE, TEMPO and WAVE from one SD card, now with USB storage and firmware install over USB MIDI. Power on and CHOMPI lights one key per firmware — press a key, that firmware starts. Power cycle to come back to the picker.
Nothing modifies the bootloader, and nothing is written to the processor's internal flash. It installs like any ordinary firmware update, and swapping back to a stock card returns you to normal. Unofficial and as-is — back up your existing card before reusing it.
Install
- Format a microSD as FAT32 (32GB or smaller).
- Copy everything inside
chompi-multi-firmware-card/to the root of the card. - Insert and power on. First boot shows the rainbow while the bootloader installs the launcher; after that it goes straight to the picker.
| Key | Firmware |
|---|---|
| 1 | TAPE 2.0 |
| 2 | TEMPO 1.0 |
| 3 | WAVE 1.0 |
| 15 | USB storage |
Samples and settings are stock factory.
New in v1.3
- USB storage v1.5 on key 15, from @lnetzel. Includes v1.1's faster transfers, plus:
- Card-usage meter. At boot, keys 1–15 fill blue from left to right to show how full the card is.
- Restart without the power switch. Press Overdub, then confirm with the CHOMPI key.
- TAPE, TEMPO and WAVE are the same builds as v1.1. This replaces v1.2, which shipped a modified TAPE.
New in v1.1
- USB storage on key 15. The SD card shows up as a drive on your computer — copy samples without pulling the card. ~0.8 MB/s write, ~1 MB/s read (the limit of CHOMPI's full-speed USB). Renames the card
CHOMPI-SD. Firmware by @lnetzel. - Install firmware over USB MIDI. While the picker is showing, send a
.binto a slot from https://ugrossek.github.io/CHOMPI/ (Chrome/Edge) ormidi-send.py(Linux). It is saved to/FIRMWARE/NN_NAME.binand started. Sending to a slot replaces what is in it. By @ugrossek (#1). - The number in a firmware's filename is its key.
05_X.binis key 5; empty keys stay dark. - Fixed the 64 MHz bug. CHOMPI's app linker scripts left libDaisy's
boot_infoin uninitialised RAM. When the leftover value was 0, libDaisy skipped clock and SDRAM setup: blinding white LEDs, SD timeouts, no sound, USB hangs — on some units and builds and not others. TAPE, TEMPO and WAVE now putboot_infowhere the bootloader writes it, and the launcher pads unused RAM with0xFFbefore handing over, which also protects firmwares without the fix.
Notes
- On a Mac, if USB storage appears but won't mount, quit apps that grab USB devices (Garmin Express is one) and replug.
- Build it yourself:
makein eachcode/src(ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), thenfirmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. Add the USB storage v1.5 release.binasFIRMWARE/15_USB_STORAGE.bin. - USB storage v1.5 is lnetzel's own build. Everything else was rebuilt from published source. All of them have run on hardware.
sha256 e586dafebfa1bad0f98ec5754af51ff0bc91de6ecb1439f819d62f9616ffd57d chompi-multi-firmware-card.zip
Built from CHOMPI Club's open-source release, MIT licensed. A community modification, not an official CHOMPI Club release.
Multi-Firmware Launcher v1.2 — TAPE 2.1 + USB storage v1.5
A community release
Run TAPE, TEMPO and WAVE from one SD card, now with USB storage and firmware install over USB MIDI. Power on and CHOMPI lights one key per firmware — press a key, that firmware starts. Power cycle to come back to the picker.
Nothing modifies the bootloader, and nothing is written to the processor's internal flash. It installs like any ordinary firmware update, and swapping back to a stock card returns you to normal. Unofficial and as-is — back up your existing card before reusing it.
Install
- Format a microSD as FAT32 (32GB or smaller).
- Copy everything inside
chompi-multi-firmware-card/to the root of the card. - Insert and power on. First boot shows the rainbow while the bootloader installs the launcher; after that it goes straight to the picker.
| Key | Firmware |
|---|---|
| 1 | TAPE 2.1 |
| 2 | TEMPO 1.0 |
| 3 | WAVE 1.0 |
| 15 | USB storage |
Samples and settings are stock factory.
New in v1.2
- TAPE 2.1 on key 1, built for the launcher card (keeps everything in
/TAPE). Build by @lnetzel.- Paste-append to the looper. Copying a preset into the looper used to always replace what was there. Now the destination you pick decides: Play replaces the loop as before, and Overdub adds the preset onto the end of it. Hold the CHOMPI key, press Copy (green LED), release, pick a source preset, then press Overdub as the destination.
- USB storage v1.5 on key 15, from @lnetzel. Includes v1.1's faster transfers, plus:
- Card-usage meter. At boot, keys 1–15 fill blue from left to right to show how full the card is.
- Restart without the power switch. Press Overdub, then confirm with the CHOMPI key.
New in v1.1
- USB storage on key 15. The SD card shows up as a drive on your computer — copy samples without pulling the card. ~0.8 MB/s write, ~1 MB/s read (the limit of CHOMPI's full-speed USB). Renames the card
CHOMPI-SD. Firmware by @lnetzel. - Install firmware over USB MIDI. While the picker is showing, send a
.binto a slot from https://ugrossek.github.io/CHOMPI/ (Chrome/Edge) ormidi-send.py(Linux). It is saved to/FIRMWARE/NN_NAME.binand started. Sending to a slot replaces what is in it. By @ugrossek (#1). - The number in a firmware's filename is its key.
05_X.binis key 5; empty keys stay dark. - Fixed the 64 MHz bug. CHOMPI's app linker scripts left libDaisy's
boot_infoin uninitialised RAM. When the leftover value was 0, libDaisy skipped clock and SDRAM setup: blinding white LEDs, SD timeouts, no sound, USB hangs — on some units and builds and not others. TAPE, TEMPO and WAVE now putboot_infowhere the bootloader writes it, and the launcher pads unused RAM with0xFFbefore handing over, which also protects firmwares without the fix.
Notes
- On a Mac, if USB storage appears but won't mount, quit apps that grab USB devices (Garmin Express is one) and replug.
- Build it yourself:
makein eachcode/src(ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), thenfirmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. Add TAPE 2.1 and the USB storage v1.5 release.binasFIRMWARE/01_TAPE.binandFIRMWARE/15_USB_STORAGE.bin. - TAPE 2.1 and USB storage v1.5 are their authors' builds. Everything else was rebuilt from published source. All of them have run on hardware.
sha256 debba033f120e45867a574218dae4ac047db5c30e3958041cc58e0e89a183ef5 chompi-multi-firmware-card.zip
Built from CHOMPI Club's open-source release, MIT licensed. A community modification, not an official CHOMPI Club release.
Multi-Firmware Launcher v1.1 — USB storage + USB MIDI upload
A community release
Run TAPE, TEMPO and WAVE from one SD card, now with USB storage and firmware install over USB MIDI. Power on and CHOMPI lights one key per firmware — press a key, that firmware starts. Power cycle to come back to the picker.
Nothing modifies the bootloader, and nothing is written to the processor's internal flash. It installs like any ordinary firmware update, and swapping back to a stock card returns you to normal. Unofficial and as-is — back up your existing card before reusing it.
Install
- Format a microSD as FAT32 (32GB or smaller).
- Copy everything inside
chompi-multi-firmware-card/to the root of the card. - Insert and power on. First boot shows the rainbow while the bootloader installs the launcher; after that it goes straight to the picker.
| Key | Firmware |
|---|---|
| 1 | TAPE 2.0 |
| 2 | TEMPO 1.0 |
| 3 | WAVE 1.0 |
| 15 | USB storage |
Samples and settings are stock factory.
New in v1.1
- USB storage on key 15. The SD card shows up as a drive on your computer — copy samples without pulling the card. ~0.8 MB/s write, ~1 MB/s read (the limit of CHOMPI's full-speed USB). Renames the card
CHOMPI-SD. Firmware by @lnetzel. - Install firmware over USB MIDI. While the picker is showing, send a
.binto a slot from https://ugrossek.github.io/CHOMPI/ (Chrome/Edge) ormidi-send.py(Linux). It is saved to/FIRMWARE/NN_NAME.binand started. Sending to a slot replaces what is in it. By @ugrossek (#1). - The number in a firmware's filename is its key.
05_X.binis key 5; empty keys stay dark. - Fixed the 64 MHz bug. CHOMPI's app linker scripts left libDaisy's
boot_infoin uninitialised RAM. When the leftover value was 0, libDaisy skipped clock and SDRAM setup: blinding white LEDs, SD timeouts, no sound, USB hangs — on some units and builds and not others. TAPE, TEMPO and WAVE now putboot_infowhere the bootloader writes it, and the launcher pads unused RAM with0xFFbefore handing over, which also protects firmwares without the fix.
Notes
- On a Mac, if USB storage appears but won't mount, quit apps that grab USB devices (Garmin Express is one) and replug.
- Build it yourself:
makein eachcode/src(ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), thenfirmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. The USB storage firmware is built from the branch of lnetzel/CHOMPI-lnetzel#5 (perf/faster-transfers,firmware/chompi-usb-storage). - Every binary here was rebuilt from published source and has run on hardware.
sha256 743a1b67c1c0b07feb5c1ae9a64c074cf93729053d3a08680b2698908f20ba73 chompi-multi-firmware-card.zip
Built from CHOMPI Club's open-source release, MIT licensed. A community modification, not an official CHOMPI Club release.
Multi-Firmware Launcher v1.0 — ready-to-use SD card
Run TAPE, TEMPO and WAVE from one SD card. Power on and CHOMPI lights one key per firmware — press a key, that firmware starts. Power cycle to come back to the picker.
Nothing modifies the bootloader, and nothing is written to the processor's internal flash. It installs like any ordinary firmware update, and swapping back to a stock card returns you to normal.
Install
- Format a microSD as FAT32 (32GB or smaller).
- Copy everything inside
chompi-multi-firmware-card/to the root of the card. - Insert and power on. First boot shows the rainbow while the bootloader installs the launcher; after that it goes straight to the picker.
Key 1 = TAPE 2.0, key 2 = TEMPO 1.0, key 3 = WAVE 1.0. Samples and settings are stock factory.
How it works
CHOMPI apps are BOOT_SRAM images, so every app runs from the same SRAM address and where it was stored is irrelevant. The launcher lives in QSPI, reads the chosen image off the card into SDRAM, validates its vector table, and hands over.
The bootloader skips directories when it hunts for a .bin to install, so firmwares in /FIRMWARE are invisible to it and only the launcher ever reaches QSPI. That is what makes the picker come back on every power cycle.
Handover copies the image with a position-independent routine relocated into ITCMRAM, then sets boot_info and resets — letting the bootloader's own startup_process() do the jump from clean hardware, exactly as it does for a normal install. Branching into the image directly does not work reliably; the stock bootloader's own direct-jump code is commented out next to a note that masking interrupts "seem[s] to cause errors for the target application".
One folder per firmware
Stock firmwares keep everything in the card root, which breaks on a shared card — WAVE scans the root for .wav, sorts, and preloads the first seven, so beside TAPE's 168 samples it loads drum hits as wavetables and comes up silent. All three also keep options.json/presets.json there in incompatible formats.
The three firmwares here are patched to f_chdir() into their own directory at startup. Each falls back to the root if its folder is missing, so these binaries still work on a stock single-firmware card.
Adding your own firmware: drop a .bin in /FIRMWARE (up to 15, assigned by filename order) and have it chdir into its own folder.
Notes
- TAPE is tight on memory: this leaves 264 bytes free of SRAM_EXEC's 240896.
- Found along the way: CHOMPI's application linker scripts define no
BACKUP_SRAMregion, so libDaisy'sboot_infosilently lands in.datarather than at0x38800000. That breaksSystem::ResetToBootloader()in the stock firmwares too. - Build it yourself:
makein eachcode/src(ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), thenfirmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD.
sha256 1d97e20d6ced81872e47e8a8a3768b5bdf3d383bc32980ad4b4bae9655b8cdf0
Built from CHOMPI Club's open-source release, MIT licensed. A community modification, not an official CHOMPI Club release.