# Bluetooth sink restarted board

**URL:** <https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414>\
**Category:** Bugreports / Fehlersuche\
**Created:** [9. Dezember 2024 um 19:37 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414 "2024-12-09T19:37:04Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![thebino](https://forum.espuino.de/user_avatar/forum.espuino.de/thebino/32/416_2.png) [@thebino](https://forum.espuino.de/u/thebino)\
**Post date:** [9. Dezember 2024 um 19:37 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/1 "2024-12-09T19:37:04Z")

</div>

Ich habe ein [ESPuino-mini 4Layer](https://forum.espuino.de/t/espuino-mini-4layer/1661) von @biologist  
Und verwende einen [Lolin D32 pro](https://www.wemos.cc/en/latest/d32/d32_pro.html)

Sobald ich jedoch das Bluetooth Kopfhörer Feature versuche zu aktivieren, started das Board neu.

```auto
N [4714] RFID-Karte erkannt: 8a-7e-e5-80 
N [4715] Card type: ISO-14443
I [4719] RFID-Karte empfangen: 138126229128
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1344
load:0x40078000,len:14460
load:0x40080400,len:3652
entry 0x400805f0
E (771) esp_core_dump_flash: No core dump partition found!
E (771) esp_core_dump_flash: No core dump partition found!
I [122] Maximale Inaktivitätszeit wurde aus NVS geladen: 5 Minuten

```

Hat jemand ein ähnliches verhalten schon beobachtet? Vielleicht @tueddy?

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [9. Dezember 2024 um 20:10 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/2 "2024-12-09T20:10:44Z")

</div>

> [@thebino](#):
>
> `SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)`

Etwas sparsam der Aufrufstack, sieht ein bisschen nach Watchdog Reset aus. Verwendest Du den aktuellen Master oder DEV branch? Wurde der Kopfhörer bereits gekoppelt (Pairing)?

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [9. Dezember 2024 um 20:13 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/3 "2024-12-09T20:13:03Z")

</div>

```auto
monitor_filters = esp32_exception_decoder

```

Ist diese Zeile in der `platform.ini` aktiv? Weil dann sollten etwas mehr Infos zum Absturz/Reset kommen…

---

<div class="post-metadata">

**Author:** ![thebino](https://forum.espuino.de/user_avatar/forum.espuino.de/thebino/32/416_2.png) [@thebino](https://forum.espuino.de/u/thebino)\
**Post date:** [9. Dezember 2024 um 21:34 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/4 "2024-12-09T21:34:22Z")

</div>

master branch, monitor filters aktiv.  
Kopfhörer noch nicht gepaired. Hab das Feature gerade das erste mal testen wollen.

---

<div class="post-metadata">

**Author:** ![thebino](https://forum.espuino.de/user_avatar/forum.espuino.de/thebino/32/416_2.png) [@thebino](https://forum.espuino.de/u/thebino)\
**Post date:** [9. Dezember 2024 um 21:41 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/5 "2024-12-09T21:41:16Z")

</div>

Hier mal noch ein längerer Auszug, aber nicht hilfreich.

```auto
N [36233] RFID-Karte erkannt: 8a-7e-e5-80 
N [36233] Card type: ISO-14443
I [36237] RFID-Karte empfangen: 138126229128
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1344
load:0x40078000,len:14460
load:0x40080400,len:3652
entry 0x400805f0
E (761) esp_core_dump_flash: No core dump partition found!
E (761) esp_core_dump_flash: No core dump partition found!
I [146] Maximale Inaktivitätszeit wurde aus NVS geladen: 5 Minuten
D [196] RFID-Tags koennen jetzt gescannt werden...
N [197] Port-expander gefunden
N [199] Interrupt für Port-Expander aktiviert
I [200] Zyklus für Batteriemessung fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
I [211] Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00V
I [223] Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20V
I [224] Spannungslevel (Batterie) fuer Niedrig-Warnung via Neopixel aus NVS geladen: 3.40V
I [236] Spannungslevel (Batterie) fuer Kritisch-Warnung via Neopixel aus NVS geladen: 3.10V
E [239] Lautstärke vor dem letzten Shutdown wird wiederhergestellt. Dies überschreibt die Einstellung der initialen Lautstärke aus der GUI.
I [249] Initiale Lautstärke wurde aus NVS geladen: 5
I [260] Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 15
I [260] Maximale Lautstärke für Kopfhörer wurde aus NVS geladen: 1
N [271] Lautsprecher ausgeschaltet
I [271] Maximale Lautstärke wurde gesetzt auf: 1
I [335] Initiale LED-Helligkeit wurde aus NVS geladen: 50
I [335] LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 0

 _________  ____ _
| ____| /___ | | _ \ _ _ (_) _ _____
| _| \__ \ | |_) | | | | | | | | '_ \ / _ \
| | ______ ) | | __/ | |_| | | | | | | | | (_) |
| _____| |____ / |_| \ __,_| |_| |_| |_| \___ /
         Rfid-controlled musicplayer

```

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [10. Dezember 2024 um 10:35 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/6 "2024-12-10T10:35:19Z")

</div>

Beim Moduswechsel Normal → Bluetooth wird immer ein Reset/Neustart ausgelöst, das ist „by design“.  
Das Log sieht zunächst OK aus. Dann sollten aber die ersten BT-Scanmeldungen erscheinen. Deine Log-Ausgabe kommt direkt vom COM-Port? Weil Weblog ist im BT-Modus nicht verfügbar & enthält nach Neustart nicht die gewünschten Infos.

---

<div class="post-metadata">

**Author:** ![thebino](https://forum.espuino.de/user_avatar/forum.espuino.de/thebino/32/416_2.png) [@thebino](https://forum.espuino.de/u/thebino)\
**Post date:** [10. Dezember 2024 um 12:44 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/7 "2024-12-10T12:44:43Z")

</div>

Ja, kam vom tty.  
Evtl. könnt man das hier noch ins verbose ins Log schreiben: [add verbose log to indicate, that the restart is on purpose by thebino · Pull Request #354 · biologist79/ESPuino · GitHub](https://github.com/biologist79/ESPuino/pull/354)

Aus dem bluetooth mode konnte ich weder per tasten, not per RFID wieder zurück togglen. Falls das hilft bei der analyse

```auto
#define BUTTON_MULTI_12 CMD_TOGGLE_BLUETOOTH_SINK_MODE

```

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [10. Dezember 2024 um 13:37 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/8 "2024-12-10T13:37:46Z")

</div>

Das mit dem erweiterten Log finde ich gut!  
@thebino Evt. verwechselst du die Modi?

BT-Sink → Musik vom Handy auf den ESPuino-Lautsprecher streamen  
BT-Source → Musik vom ESPuino auf einen Kopfhörer abspielen

Daher wird mit deinem Kopfhörer hier gar nix passieren. Du kannst dem BT-Modus auch entkommen, indem Du eine unbekannte Karte auflegst, `CMD_TOGGLE_BLUETOOTH_SINK_MODE` sollte aber auch funktionieren, wenn nicht ist es ein Bug.

---

<div class="post-metadata">

**Author:** ![thebino](https://forum.espuino.de/user_avatar/forum.espuino.de/thebino/32/416_2.png) [@thebino](https://forum.espuino.de/u/thebino)\
**Post date:** [10. Dezember 2024 um 14:23 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/9 "2024-12-10T14:23:45Z")

</div>

Werd die nächsten Tage mal noch einen Versuch unternehmen, hab noch eine extra Platine da die erste Box ein Upgrade bekommt sobald die zweite fertig ist.

BT-Source & BT-Sink hatte ich tatsächlich anders verstanden. Werde es dann anpassen und tauschen

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [18. Dezember 2024 um 21:38 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/10 "2024-12-18T21:38:46Z")

</div>

Es wird nun ein zusätzlicher Log-Eintrag für den **geplanten** Neustart ausgegeben, vielen Dank @thebino!

Der Neustart ist notwendig um den Speicher freizugeben, WiFi + Bluetooth zusammen sprengen den Speicher des ESP32…

Ich habe nochmal alle Bluetooth Modi im DEV-Zweig getestet:

- Gute Nachricht: ESPuino als Lautsprecher (BT-Sink) funktioniert einwandfrei!
- Schlechte Nachricht: ESPuino als Audioquelle für BT-Kopfhörer (BT-Source) hat deutliche Aussetzer. Ab und zu ist für eine halbe Sekunde kein Ton zu hören. Auch die Bedienung per Drehregler funktioniert nur sporadisch bis gar nicht.

Grund für die Aussetzer sind wohl die Neuerungen in der Audiobibliothek. Die hat neuerdings einen eigenen Task für asynchrone Wiedergabe.  
Wir hatten aber schon immer einen eigenen Abspiel-Task, also haben wir jetzt eine Task im Task Situation. Wahrscheinlich kann man das nur wieder hinkriegen, wenn man den ESPuino Task „mp3play“ entfernt und das Ganze in die normale Arduino Loop() verschiebt.

Neuer Audio-I2S Task „PeriodicTask“ hier:

> <https://github.com/schreibfaul1/ESP32-audioI2S/blob/6d129fd0aaa0f2dd7523cd21e85077b6246daa89/src/Audio.cpp#L6292>

Bestehender ESPuino Abspiel Task „mp3play“ hier:

> <https://github.com/biologist79/ESPuino/blob/7204eddb83dcd40339cdab9793f6ace42bb50b84/src/AudioPlayer.cpp#L152>

Ich erreiche eine bessere Bedienbarkeit (Drehgeber), wenn ich den „mp3play“ Task von Core 1 nach Core 0 verschiebe. Die Aussetzer bleiben aber.  
Durch den Task im Task scheint die doppelte CPU-Zeit verbrannt zu werden.

Evt. gibt es hier einen FreeRTOS Experten der das besser erklären kann oder eine Lösung parat hat?

---

<div class="post-metadata">

**Author:** ![sfields](https://forum.espuino.de/letter_avatar_proxy/v4/letter/s/f08c70/32.png) [@sfields](https://forum.espuino.de/u/sfields)\
**Post date:** [20. Dezember 2024 um 21:11 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/11 "2024-12-20T21:11:42Z")

</div>

> [@tueddy](#):
>
> Der Neustart ist notwendig um den Speicher freizugeben, WiFi + Bluetooth zusammen sprengen den Speicher des ESP32…

Gibt es Hoffnung, dass das irgendwann mal möglich sein wird, oder never ever? Wäre toll.

> [@](#):
>
> - Schlechte Nachricht: ESPuino als Audioquelle für BT-Kopfhörer (BT-Source) hat deutliche Aussetzer. Ab und zu ist für eine halbe Sekunde kein Ton zu hören. Auch die Bedienung per Drehregler funktioniert nur sporadisch bis gar nicht.

Ich habe dafür keine Erklärung, kann aber nur bestätigen, dass es mit dem DEV-Stand von vor einem halben Jahr noch einwandfrei ging, Wiedergabe und Drehregler. Gerade erst neue Kopfhörer für die Box angeschafft. D.h. wenn man Bluetooth Kopfhörer verwendet, sollte man derzeit nicht auf den aktuellen DEV gehen?

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [27. Dezember 2024 um 17:43 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/12 "2024-12-27T17:43:48Z")

</div>

> [@sfields](#):
>
> Gibt es Hoffnung, dass das irgendwann mal möglich sein wird, oder never ever? Wäre toll.

Es wäre schön, wenn man das Webinterface auch im Bluetooth Modus bedienen könnte. Aber ich glaube nicht, dass es möglich sein wird, WiFi & Bluetooth-Audio gleichzeitig laufen zu lassen, die teilen sich ja das Funkmodul. Vielleicht mit der neuesten ESP-IDF Version?

Die Audio Aussetzer konnte ich beheben: Der Audio/Bluetooth-Task verbraucht jetzt nicht mehr so viel Rechenzeit, dass es zu Aussetzern kommt, es war vielmehr ein fehlendes vTaskDelay(), um ein vernünftiges Task-Switching zu ermöglichen.  
Außerdem wurde bisher jedes Audiosample einzeln in den Ringpuffer geschrieben. Jetzt wird der ganze Block mit einem Aufruf übertragen [hier](https://github.com/biologist79/ESPuino/blob/f1d75de634a6f6c122158dd2daf82b7f846b400b/src/Bluetooth.cpp#L333).

Frage an @wolle: Wir sind wahrscheinlich die einzigen, die diesen Callback benutzen:

`void audio_process_i2s(int16_t *outBuff, uint16_t validSamples, uint8_t bitsPerSample, uint8_t channels, bool *continueI2S);`

bitsPerSample ist immer 16, channels immer 2 (auch bei Mono). Sind diese Parameter jetzt nicht überflüssig?

Bei mir laufen jetzt alle Modi ruckelfrei, auch mit dem noch experimentellen Ardiuno 3.1.0. Gerne im aktuellen [DEV-Zweig](https://github.com/biologist79/ESPuino/tree/dev) ausprobieren.

---

<div class="post-metadata">

**Author:** ![Wolle](https://forum.espuino.de/user_avatar/forum.espuino.de/wolle/32/202_2.png) [@Wolle](https://forum.espuino.de/u/Wolle)\
**Post date:** [29. Dezember 2024 um 08:48 UTC](https://forum.espuino.de/t/bluetooth-sink-restarted-board/3414/13 "2024-12-29T08:48:10Z")

</div>

Du hat recht, es sind immer 16 Bit und zwei Kanäle. Das ist seit der IDF V5… so, die I2S Einstellungen bereiten sonst nur Probleme.  
Ich kann die überflüssigen Parameter gerne rausnehmen.  
audio\_process\_i2s() wird gelegentlich für eine FFT Analyse verwendet, aber das ist selten.
