Arduino Example Snippet
/*
* ESP32-S3 MP3 Loop Player
*
* USAGE:
* 1. Place a file named "0001.mp3" in the root of your SD card
* 2. Connect SD card module
* - CS -> GPIO 15
* - MOSI -> GPIO 11
* - MISO -> GPIO 12
* - SCK -> GPIO 13
* 3. Connect MAX98357A I2S amplifier:
* - BCLK -> GPIO 14
* - LRC -> GPIO 41
* - DIN -> GPIO 1
* 4. Upload code and the file will play on loop
* 5. Adjust volume by changing the number in audio.setVolume(16)
* (Range: 0-21, where 21 is loudest)
*/
#include <SPI.h>
#include <SD.h>
#include <Audio.h>
// SD Card pins
#define SD_CS 15
#define SD_MOSI 11
#define SD_MISO 12
#define SD_SCK 13
// I2S pins for MAX98357A
#define I2S_DOUT 1
#define I2S_BCLK 14
#define I2S_LRC 41
Audio audio;
void audio_eof_mp3(const char* info) {
Serial.println("Track finished - restarting");
audio.connecttoFS(SD, "/0001.mp3");
}
void setup() {
Serial.begin(115200);
delay(1000);
// Initialize SD card
pinMode(SD_CS, OUTPUT);
digitalWrite(SD_CS, HIGH);
SPI.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);
if (!SD.begin(SD_CS)) {
Serial.println("SD card failed!");
while (1) delay(1000);
}
Serial.println("SD card OK");
// Initialize audio
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(16);
// Play file
if (audio.connecttoFS(SD, "/0001.mp3")) {
Serial.println("Playing 0001.mp3");
} else {
Serial.println("File not found!");
}
}
void loop() {
audio.loop();
delay(5);
}