ESP32 Soundboard ================ Soundboard (computer program), a web application or computer program with buttons that play short, often humorous sound clips. ## Hardware * [ESP32] µC * [MAX98357A] PCM Input Class D Audio Power Amplifiers * [SD card] ## Wiring ### SD card SD card pin | ESP32 pin | Notes --------------|---------------|------------ CS | GPIO05 | DI | GPIO23 (MOSI) | SCK | GPIO18 (SCK) | DO | GPIO19 (MISO) | CD | GPIO17 | optional ### Touch ESP32 Touch pad | GPIO | Notes ----------------|------|------- T0 | 04 | T1 | 00 | also bootloader (not usable on dev board) T2 | 02 | also bootloader (not usable on dev board) T3 | 15 | T4 | 13 | T5 | 12 | T6 | 14 | T7 | 27 | T8 | 33 | T9 | 32 | ### I2S MAX98357A | ESP32 pin ----------|----------- LRC | 25 BCLK | 26 DIN | 22 GAIN | (VCC) SD | - ## Build ```bash git clone https://dev.xd0.de/hendrik/soundboard.git cd soundboard virtualenv . source bin/activate pip install -U platformio platformio run -t upload && platformio device monitor -b 115200 ``` * Convert mp3 files: `sox ~/Music/input.mp3 -c 1 -r 11025 output.wav trim 0 30` * SD card is tested with one FAT16 partion ## ToDo * Prototype * reimplement tasks with a queue, see **i2s_push_sample()** from *esp-idf/components/driver/i2s.c* * Keypad layout * internal DAC? * Add-ons? * dynamic keypad thresholds * wav file headers * stack size in play task ## References [ESP32 overview]: http://esp32.net [ESP32]: https://eckstein-shop.de/ESP32-Dev-Board-WiFi-Bluetooth-CP2102-USB-to-Serial-with-LiPo-charger [MAX98357A]: https://eckstein-shop.de/Adafruit-I2S-3W-Class-D-Amplifier-Breakout-MAX98357A