|
|
|
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
|