A self-contained groovebox firmware for the M5 Cardputer (ESP32-S3, ES8311 codec) β synth + sequencer + sampler + microphone recorder + song library, all in one firmware. No M5Unified dependency: uses LovyanGFX for the screen, a small I2C driver for the keyboard, and the legacy ESP-IDF i2s driver for ES8311 record/playback (so the mic actually records).
Don't want to install a build environment? Grab the prebuilt firmware.
- Go to the Releases page and download
cardputer-studio-v1.1.bin. - Flash it to your Cardputer at offset
0x0with M5Burner (GUI) or esptool:esptool.py --chip esp32s3 --port <PORT> --baud 921600 write_flash 0x0 cardputer-studio-v1.1.bin - Set up the SD card (FAT32/exFAT):
- Download
cardputer-studio-drums-v1.1.zipfrom the release and unzip it. - Put the whole
drumsfolder at the card root β<card>/drums/BD808.wav β¦ - Insert the card and reset.
/samples(your recordings) and/songs(saves) are created automatically.
- Download
The drum kits read their samples from /drums; if a file is missing that pad falls back to a synth drum. Recordings, samples and songs all live on the card.
A one-page printable key map: English Β· δΈζ
- SYNTH / sequencer β 2 melodic tracks (A/B) + 8-pad drum track + a phrase track that plays a trimmed slice of a long recording.
- Wavetable voices (saw / square / triangle / sine), tone (brightness) control
- 6 drum kits (
1cycles): ACOU (synth) + real-sample 808 / 909 / acoustic / lo-fi / retro, loaded from/drums - Per-step note length, accent/velocity, slide, probability, chords, swing
- Per-track effects: delay, octave, sub, fifth, chorus; master space FX (echo / reverb)
- Live FX: bitcrush, tape-stop, arpeggiator, reverse
- Phrase track per-step controls: stack effects (OCT/SUB/CHO/DLY/REV/STUT), movable window, length, pitch
- 16 song save slots (saved to SD, including the drum-kit choice)
- SAMPLER β play any 16-bit WAV on the SD card pitched across the keyboard; trim + effects (normalize, reverse, lo-fi, drive, fade) saved as a new sample, with a preview that plays the processed result
- RECORDER β record the mic straight to SD (streamed, low RAM), play back
- SONGS β browse / preview / rename / open saved songs
- LIBRARY β browse / play / delete / rename recordings
- Display: ST7789 on SPI2 (sclk 36, mosi 35, dc 34, cs 37, rst 33)
- Keyboard: TCA8418 on internal I2C (SDA 8, SCL 9, addr 0x34)
- Codec: ES8311 on internal I2C (addr 0x18); I2S BCLK 41, LRCK 43, DIN 46, DOUT 42
- SD card: separate SPI (sck 40, miso 39, mosi 14, cs 12)
Arduino + arduino-cli with the ESP32 core:
arduino-cli compile --fqbn esp32:esp32:esp32s3:PSRAM=disabled,FlashSize=8M,PartitionScheme=default_8MB studio
arduino-cli upload -p <PORT> --fqbn esp32:esp32:esp32s3:PSRAM=disabled,FlashSize=8M,PartitionScheme=default_8MB studio
Drum-kit WAVs go in /drums on the SD card; put your own 16-bit PCM WAVs in /samples for the sampler / phrase sources.
Press ctrl inside SYNTH for the on-device key map. Menu: 1 SYNTH Β· 2 SAMPLER Β·
3 RECORDER Β· 4 SONGS Β· 5 LIBRARY Β· ` back.
Made on a Cardputer, for fun. ποΈ
Made by Yuan Β· GitHub
Licensed under the MIT License.
