Hardware Requirements:

  • Original ESP32/WROOM-32 with Bluetooth Classic
  • PCM5102A DAC
  • Arduino IDE


What we are Building

  • Bluetooth A2DP receiver
  • Stereo bass, mid and treble EQ
  • Flat, Rock, Jazz and Classical presets
  • Serial control for initial tuning

It uses the current ESP32-A2DP and Arduino Audio Tools approach. ESP32-A2DP receives SBC audio as 16-bit stereo PCM, and Audio Tools provides the I²S output layer.

Required Libraries

In Arduino IDE → Library Manager, install:

Select an original ESP32 board, such as ESP32 Dev Module. The ESP32-S3 and C3 are unsuitable because they do not support Bluetooth Classic A2DP.



Pinout

PCM5102AESP32
BCKGPIO 26
LCK, LRCK or WSGPIO 27
DINGPIO 25
SCKGND
GNDGND
VIN5 V


If exposed:

  • FMT → GND for standard I²S
  • XSMT → 3.3 V for unmuted operation
  • SCK → GND on the common PLL-equipped modules

These pin assignments correspond to the established ESP32-A2DP PCM5102 setup.


Code

Using btAudio

#include <btAudio.h>

// Sets the name of the audio device
btAudio audio = btAudio("ESP_Speaker");

void setup() {
 
 // Streams audio data to the ESP32   
 audio.begin();
 
 // Re-connects to last connected device
 audio.reconnect();
 
 // Outputs the received data to an I2S DAC, e.g. https://www.adafruit.com/product/3678
 int bck = 26; 
 int ws = 27;
 int dout = 25;
 audio.I2S(bck, dout, ws);
}

void loop() {

}


References


  • No labels