#include "Arduino.h" #include "Audio.h" #include "SD.h" #include "SPI.h" // ── SD Card (matches Seeed Studio XIAO ESP32-S3 Sense example) ── #define SD_CS 21 #define SPI_MOSI 9 #define SPI_MISO 8 #define SPI_SCK 7 // ── I2S Pins → MAX98357A ── #define I2S_DOUT D7 // DIN on MAX98357A #define I2S_BCLK D6 // BCLK #define I2S_LRC D1 // LRC (WS) #define AMP_SD D0 Audio audio; void setup() { Serial.begin(115200); // Init SPI for SD card (same as Seeed example) SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI, SD_CS); if (!SD.begin(SD_CS)) { Serial.println("SD Card mount failed!"); return; } Serial.println("SD Card mounted."); // Keep amplifier enabled pinMode(AMP_SD, OUTPUT); digitalWrite(AMP_SD, HIGH); // Setup I2S output to MAX98357A audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT); audio.setVolume(21); // 0–21 // Play the file already on your SD card audio.connecttoFS(SD, "/001.mp3"); Serial.println("Playing 001.mp3..."); } void loop() { audio.loop(); } // Optional debug callbacks void audio_info(const char *info) { Serial.println(info); } void audio_eof_mp3(const char *info) { Serial.println("Finished playing."); }