ESP32 Bluetooth Speaker

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

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)