Skip to content

Releases: sfaber02/CHOMPI-MULTI-FIRMWARE

Multi-Firmware Launcher v1.6 — keys in colour

Choose a tag to compare

@ugrossek ugrossek released this 15 Oct 08:11
d35ad99

A community release

  • chomplex music theory (@ugrossek): the unified launcher, firmware install over USB MIDI, key colours, and the setup page
  • ZUHcYa (@ZUHcYa): starting a slot over USB MIDI
  • lnetzel (@lnetzel): the USB storage firmware
  • hiwatts (@sfaber02): the multi-firmware launcher

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

  1. Format a microSD card as FAT32 (32 GB or smaller).
  2. Copy everything inside chompi-multi-firmware-card/ to the root of the card.
  3. 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:
    1. Run make in each code/src. Use ARM GCC 10.3-2021.10, except TEMPO, which needs 13.3.rel1.
    2. Run firmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD.
    3. Add the USB storage v1.5 release .bin as FIRMWARE/15_USB_STORAGE.bin.
  • 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

Choose a tag to compare

@sfaber02 sfaber02 released this 10 Oct 16:37
dc7c747

A community release

  • chomplex music theory (@ugrossek): the unified launcher, firmware install over USB MIDI, and the setup page
  • ZUHcYa (@ZUHcYa): starting a slot over USB MIDI
  • lnetzel (@lnetzel): the USB storage firmware
  • hiwatts (@sfaber02): the multi-firmware launcher

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

  1. Format a microSD card as FAT32 (32 GB or smaller).
  2. Copy everything inside chompi-multi-firmware-card/ to the root of the card.
  3. 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

Launcher 1.5.0 (#2, #3):

  • 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.old and 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:
    1. Run make in each code/src. Use ARM GCC 10.3-2021.10, except TEMPO, which needs 13.3.rel1.
    2. Run firmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD.
    3. Add the USB storage v1.5 release .bin as FIRMWARE/15_USB_STORAGE.bin.
  • 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

Choose a tag to compare

@sfaber02 sfaber02 released this 04 Oct 21:08

A community release

  • lnetzel (@lnetzel) — the USB storage firmware
  • chomplex music theory (@ugrossek) — firmware install over USB MIDI, and the unified launcher
  • hiwatts (@sfaber02) — the multi-firmware launcher

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

  1. Format a microSD as FAT32 (32GB or smaller).
  2. Copy everything inside chompi-multi-firmware-card/ to the root of the card.
  3. 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 .bin to a slot from https://ugrossek.github.io/CHOMPI/ (Chrome/Edge) or midi-send.py (Linux). It is saved to /FIRMWARE/NN_NAME.bin and 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.bin is key 5; empty keys stay dark.
  • Fixed the 64 MHz bug. CHOMPI's app linker scripts left libDaisy's boot_info in 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 put boot_info where the bootloader writes it, and the launcher pads unused RAM with 0xFF before 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: make in each code/src (ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), then firmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. Add the USB storage v1.5 release .bin as FIRMWARE/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

Choose a tag to compare

@sfaber02 sfaber02 released this 04 Oct 20:10

A community release

  • lnetzel (@lnetzel) — the USB storage firmware
  • chomplex music theory (@ugrossek) — firmware install over USB MIDI, and the unified launcher
  • hiwatts (@sfaber02) — the multi-firmware launcher

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

  1. Format a microSD as FAT32 (32GB or smaller).
  2. Copy everything inside chompi-multi-firmware-card/ to the root of the card.
  3. 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 .bin to a slot from https://ugrossek.github.io/CHOMPI/ (Chrome/Edge) or midi-send.py (Linux). It is saved to /FIRMWARE/NN_NAME.bin and 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.bin is key 5; empty keys stay dark.
  • Fixed the 64 MHz bug. CHOMPI's app linker scripts left libDaisy's boot_info in 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 put boot_info where the bootloader writes it, and the launcher pads unused RAM with 0xFF before 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: make in each code/src (ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), then firmware/chompi-launcher/make-card.sh /Volumes/YOUR_CARD. Add TAPE 2.1 and the USB storage v1.5 release .bin as FIRMWARE/01_TAPE.bin and FIRMWARE/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

Choose a tag to compare

@sfaber02 sfaber02 released this 02 Oct 23:47

A community release

  • lnetzel (@lnetzel) — the USB storage firmware
  • chomplex music theory (@ugrossek) — firmware install over USB MIDI, and the unified launcher
  • hiwatts (@sfaber02) — the multi-firmware launcher

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

  1. Format a microSD as FAT32 (32GB or smaller).
  2. Copy everything inside chompi-multi-firmware-card/ to the root of the card.
  3. 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 .bin to a slot from https://ugrossek.github.io/CHOMPI/ (Chrome/Edge) or midi-send.py (Linux). It is saved to /FIRMWARE/NN_NAME.bin and 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.bin is key 5; empty keys stay dark.
  • Fixed the 64 MHz bug. CHOMPI's app linker scripts left libDaisy's boot_info in 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 put boot_info where the bootloader writes it, and the launcher pads unused RAM with 0xFF before 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: make in each code/src (ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), then firmware/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

Choose a tag to compare

@sfaber02 sfaber02 released this 01 Oct 19:14

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

  1. Format a microSD as FAT32 (32GB or smaller).
  2. Copy everything inside chompi-multi-firmware-card/ to the root of the card.
  3. 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_SRAM region, so libDaisy's boot_info silently lands in .data rather than at 0x38800000. That breaks System::ResetToBootloader() in the stock firmwares too.
  • Build it yourself: make in each code/src (ARM GCC 10.3-2021.10, except TEMPO which needs 13.3.rel1), then firmware/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.