This project is based on the ESP-IDF A2DP-SINK demo with a number of changes:
- Volume control (but initial volume still needs fixes)
- Dithering to improve audio quality at lower volumes (kicking in at half the maximum volume)
- Over-the-air updates with configurable update server (currently only via http, not https)
- Send log out to syslog server
The last two items are intended for putting the ESP32+DAC inside a closed speaker, but still be able to update it and observe its operation.
Source Code Repository
https://github.com/treitmayr/esp32-bluetooth-speaker
Example
I currently use the above application in the compact cubic speacker shown on the right.
- Speacker Chassis: Visatron VS-FRS8M, output power 30/50 W, freqency range 100 – 20000 Hz
- Walls: MDF 10 mm
- Outer dimensions: 160 x 160 x 160 mm
- Bass reflex tube: Simple sewage pipe (PP), diameter 30 mm, length 67 mm (from inner opening to outer enclosure plain), pulls lower frequency boundary down to around 60 Hz
- DAC: Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A (delivers more than enough power to make this little speaker roar)
- Power supply (not shown in the picture): Power bank with 5000 mAh, good for >8 hours of operation (guessed)