Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.




Image Removed

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

Image Added

Image AddedImage Added

PCM5102AESP32
BCKGPIO 26
LCK, LRCK or WSGPIO
25
27
DINGPIO
22
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

Code Block
#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