How to play any audio file on Elecrow Display 4.3 inch
I am trying to play an MP3 file using ESP32-audioI2S** on my CrowPanel display. However, I am not hearing any audio output even though the MP3 decoding process seems to work fine.
Here is the serial log output when playing test1.mp3:
SD card initialized successfully. Now Playing: test1.mp3
Audio Info: MP3Decoder has been initialized, free Heap: 257352 bytes, free stack 5752 DWORDs
Audio Info: Content-Length: 372513
Audio Info: ID3 framesSize: 113
Audio Info: ID3 version: 2.4
Audio Info: ID3 normal frames
Audio Info: Audio-Length: 372400
Audio Info: stream ready
Here everything looks fine but I am not able to hear any audio from my speaker
Code I used:
include <Wire.h>
include <SPI.h>
include <SD.h>
include <FS.h>
include "Audio.h"
Audio audio;
define I2S_DOUT 20
define I2S_BCLK 35
define I2S_LRC 19
define SD_MOSI 11
define SD_MISO 13
define SD_SCK 12
define SD_CS 10
void setup() {
Serial.begin(9600);
while (!Serial);
pinMode(SD_CS, OUTPUT);
digitalWrite(SD_CS, HIGH);
SPI.begin(SD_SCK, SD_MISO, SD_MOSI);
SPI.setFrequency(1000000);
if (!SD.begin(SD_CS)) {
Serial.println("❌ SD card initialization failed!");
return; // Stop execution if SD card is not found
}
Serial.println("✅ SD card initialized successfully.");
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(21); // Volume range: 0...21
Serial.println("🎵 Now Playing: test1.mp3");
audio.connecttoFS(SD, "/test1.mp3");
}
void loop() {
audio.loop(); // Necessary for continuous playback
}
void audio_info(const char *info) {
Serial.print("🔍 Audio Info: ");
Serial.println(info);
}
void audio_id3data(const char *info) {
Serial.print("📌 ID3 Metadata: ");
Serial.println(info);
}
void audio_eof_mp3(const char *info) {
Serial.println("✅ Song playback finished.");
}
void audio_showstation(const char *info) {
Serial.print("📡 Station: ");
Serial.println(info);
}
void audio_showstreamtitle(const char *info) {
Serial.print("🎶 Stream Title: ");
Serial.println(info);
}
My Questions
1. Are my I2S pin definitions compatible with the CrowPanel display?
2. Do I need any additional configuration for ESP32-audioI2S on CrowPanel?
3. Is there a way to verify if the I2S signal is actually being transmitted?
4. Any suggestions on debugging why no sound is output?