ESP32 A2DP Wiedergabe wird ständig unterbrochen

OP #7579333
Lesenswert?

Hallo.

Ich versuche mit einem ESP32 (WEMOS D1 mini) über Bluetooth Ton an Kopfhörer zu schicken. Verwenden möchte ich die Bibliothek von Phil Schatzmann (ESP32-A2DP).

Ich konnte zwar das Beispiel

bt_music_sender

ausführen und höre auch was auf meinen Kopfhörern. Ich hatte aber eine konstante Sinusschwingung erwartet. Was ich höre ist allerdings eine Schwingung die in (ca) Sekundentakt unterbrochen wird (duty cycle etwa 50:50) Dazu kommt noch, dassnach einigen Minuten die Frequenz leicht reduziert wird.

Kennt jemand das Beispiel und hat ggf. eine Lösung?

LG Blacky

OP #7579383
Lesenswert?

Steve van de Grens schrieb:

Aus dem Bauch heraus: Vielleicht ist die CPU zu langsam getaktet. Oder du hast ein Modell mit nur einem Kern, brauchst aber zwei.

Es sollten 2-Kerne verbaut sein. Laut Einstellungen laufen sie mit 240 MHz. Allerdings scheint nur Kern 1 benutzt zu werden, ich habe mir mit

1
xPortGetCoreID()

die Core IDs zeigen lassen. Ich versuche mal den Bluetooth teil auf core0 zu verschieben.

OP #7579389
Lesenswert?

Alex W. schrieb:

Steve van de Grens schrieb:

Aus dem Bauch heraus: Vielleicht ist die CPU zu langsam getaktet. Oder du hast ein Modell mit nur einem Kern, brauchst aber zwei.

Es sollten 2-Kerne verbaut sein. Laut Einstellungen laufen sie mit 240 MHz. Allerdings scheint nur Kern 1 benutzt zu werden, ich habe mir mit

1
xPortGetCoreID()

die Core IDs zeigen lassen. Ich versuche mal den

Bluetooth teil auf core0 zu verschieben.

Hmm, die Callback-Funktion läuft auf core 0. Ich habe Spasseshalber mal die Berechnung der frames vorab durchgeführt, ändert nichts, auch wenn die Funktion jetzt wesentlich schneller ist.

Interessant ist auch, dass das andere Beispiel (in dem ein PCM Sample aus einem .h geladen wird) einwandfrei läuft. Da ist der Prozessor dann also hinreichend schnell.

OP #7579428
Lesenswert?

Ich habe es mit versucht mit

ESP32 2.0.1: hier bricht die Wiedergabe nach ein paar Sekunden ganz ab ESP32 2.0.9: lief mit den besagten Aussetzern. ESP32 2.0.13: stürzt bei a2dp_source.start("get_sound_data"); ab ESP32 2.0.14: stürzt bei a2dp_source.start("get_sound_data"); ab

ich werde jetzt noch 2.0.10...11...12 probieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren