DFPlayer verschiedene Versionen

Bei mir läuft der Chip auch gut seit gestern Abend. Tolle Zusammenarbeit hier! :slight_smile: Für mich ist der Chip mit den Änderungen so zu 100% nutzbar:

  1. Checksum müssen raus aus der Library und
  2. es muss der zusätzliche Case beim FinishEvent eingebaut werden.

Was ich noch beobachtet habe ist, dass die ersten Abfragen von der SD-Karte immer timeouts liefern:

SERIAL MONITOR:

17:37:48.685 → init mp3
17:37:51.652 → start 1
17:37:51.652 → max 25
17:37:51.652 → menu 1
17:37:51.685 → eq normal
17:37:51.719 → files rx timeout error

CODE:

Serial.println(F(„init mp3“));
mp3.begin();
delay(2000);
Serial.print(F(" start „));
Serial.println(preference.mp3StartVolume);
mp3.setVolume(playback.mp3CurrentVolume = preference.mp3StartVolume);
Serial.print(F(“ max „));
Serial.println(preference.mp3MaxVolume);
Serial.print(F(“ menu „));
Serial.println(preference.mp3MenuVolume);
Serial.print(F(“ eq „));
Serial.println(mp3EqualizerName[preference.mp3Equalizer]);
mp3.setEq((DfMp3_Eq)(preference.mp3Equalizer - 1));
Serial.print(F(“ files "));
Serial.println(mp3.getTotalTrackCount(DfMp3_PlaySource_Sd));
pinMode(mp3BusyPin, INPUT);

Wenn ich

mp3.getTotalTrackCount()

direkt ein 2. Mal dahinter aufrufe, kriege ich eine 0 als Antwort.
Erst beim 3. Aufruf hintereinander bekomme ich wiederholt den richtigen Wert.

Ein längeres delay nach dem mp3.begin() hat auch nicht geholfen.

EDIT: Problem gelöst. Es liegt an den mp3.setVolume und mp3.setEq Aufrufen. Der Chip braucht anscheinend etwas Bearbeitungszeit. Mit einem delay(1000) jeweils dahinter, arbeitet alles zuverlässig.