Blutiger Anfänger benötigt Hilfe mit ESP32 und BLE

Hallo zusammen,

hatte bis jetzt noch nie Kontakt mit einem Arduino. Dadurch das ich über folgenden GitHub gestolpert bin habe ich mir die Einzelteile bestellt und das ganze nachgebaut:

https://github.com/jstiefel/esp32_komoot_ble

Leider stellt sich jetzt heraus das es nur mit IPhone funktioniert da bei Android der BLE mit Guru Meditation abstürzt.

Ich habe jetzt verschiedene Android Handys und verschiedene Arduino Librarys für BLE versucht aber es bleibt beim Absturz und ich bin mit meinem Latein am Ende.

Vielleicht kann mich jemand hier unterstützen?

Anbei die Debug Ausgabe:

11:56:41.428 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 6
11:56:41.476 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
11:56:41.476 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 6
11:56:41.476 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
11:56:41.476 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: SearchCmplEvt (0x3ffde0f4), owner: getServices
11:56:41.476 -> [W][Connection.cpp:175] my_gattc_event_handler(): custom gattc event handler, event: 6
11:56:41.476 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: SearchCmplEvt (0x3ffde0f4), owner: <N/A>
11:56:41.476 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
11:56:41.476 -> [V][BLEClient.cpp:430] getServices(): << getServices
11:56:41.476 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
11:56:41.476 -> [V][BLEClient.cpp:390] getService(): << getService: found the service with uuid: 71c1e128-d92f-4fa8-a2b2-0f171db343
11:56:41.476 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
11:56:41.476 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
11:56:41.520 -> [V][BLERemoteService.cpp:162] retrieveCharacteristics(): >> getCharacteristics() for service: 71c1e128-d92f-4fa8-a2b2-0f171db343
11:56:41.520 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
11:56:41.520 -> [D][BLERemoteService.cpp:193] retrieveCharacteristics(): Found a characteristic: Handle: 56, UUID: 503dd605-9bcb-4f6e-b235-270a574830
11:56:41.520 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
11:56:41.599 -> [V][BLERemoteCharacteristic.cpp:36] BLERemoteCharacteristic(): >> BLERemoteCharacteristic: handle: 56 0x56, uuid: 503dd605-9bcb-4f6e-b235-270a574830
11:56:41.599 -> [V][BLERemoteCharacteristic.cpp:250] retrieveDescriptors(): >> retrieveDescriptors() for characteristic: 503dd605-9bcb-4f6e-b235-270a574830
11:56:41.599 -> [W][Connection.cpp:175] my_gattc_event_handler(): custom gattc event handler, event: 18
11:56:41.599 -> [D][BLERemoteCharacteristic.cpp:280] retrieveDescriptors(): Found a descriptor: Handle: 57, UUID: 4a982902-1cc4-e7c1-c757-f1267dd021
11:56:41.640 -> [V][BLERemoteCharacteristic.cpp:294] retrieveDescriptors(): << retrieveDescriptors(): Found 1 descriptors.
11:56:41.640 -> [V][BLERemoteCharacteristic.cpp:45] BLERemoteCharacteristic(): << BLERemoteCharacteristic
11:56:41.640 -> [V][BLERemoteService.cpp:209] retrieveCharacteristics(): << getCharacteristics()
11:56:41.640 ->  - Found our characteristic
11:56:41.640 -> CanRead : 1
11:56:41.640 -> CanWrite : 0
11:56:41.640 -> CanNotify : 1
11:56:41.640 -> CanIndicate : 0
11:56:41.640 -> [V][BLERemoteCharacteristic.cpp:323] getDescriptor(): >> getDescriptor: uuid: 2902-0000-1000-8000-00805f9b34fb
11:56:41.640 -> [V][BLERemoteCharacteristic.cpp:331] getDescriptor(): << getDescriptor: Not found
11:56:41.678 -> Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
11:56:41.678 -> Core 1 register dump:
11:56:41.678 -> PC      : 0x400d7efc  PS      : 0x00060530  A0      : 0x800d7ff1  A1      : 0x3ffc8920  
11:56:41.678 -> A2      : 0x3ffc6378  A3      : 0x00000000  A4      : 0x3ffc89b4  A5      : 0x3ffbee78  
11:56:41.678 -> A6      : 0x3ffc554c  A7      : 0x00000038  A8      : 0x00000000  A9      : 0x00000000  
11:56:41.678 -> A10     : 0x0000004b  A11     : 0x00000062  A12     : 0x00000001  A13     : 0x00000000  
11:56:41.736 -> A14     : 0x00000000  A15     : 0xffffffac  SAR     : 0x00000004  EXCCAUSE: 0x0000001c  
11:56:41.736 -> EXCVADDR: 0x00000000  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffc  
11:56:41.736 -> 
11:56:41.736 -> Backtrace: 0x400d7efc:0x3ffc8920 0x400d7fee:0x3ffc8990 0x400d2082:0x3ffc89f0 0x400d23c7:0x3ffc8a40 0x400d24a3:0x3ffc8a60 0x400d3817:0x3ffc8aa0 0x400dd08f:0x3ffc8af0 0x4008e5f1:0x3ffc8b10
11:56:41.736 -> 
11:56:41.736 -> Rebooting...
11:56:41.736 -> ets Jun  8 2016 00:22:57

Musste Ausgabe etwas kürzen wegen Maximaler Länge…

Wie kann ich den Fehler eingrenzen?

Hier noch die Ausgabe vom ExceptionDecoder:

PC: 0x400d7efc: BLERemoteDescriptor::toString[abi:cxx11]() at C:\Users\User\Documents\Arduino\hardware\Espressif\esp32\libraries\BLE\src\BLERemoteDescriptor.cpp line 117
EXCVADDR: 0x00000000

Decoding stack results
0x400d7efc: BLERemoteDescriptor::toString[abi:cxx11]() at C:\Users\User\Documents\Arduino\hardware\Espressif\esp32\libraries\BLE\src\BLERemoteDescriptor.cpp line 117
0x400d7fee: BLERemoteDescriptor::writeValue(unsigned char*, unsigned int, bool) at C:\Users\User\Documents\Arduino\hardware\Espressif\esp32\libraries\BLE\src\BLERemoteDescriptor.cpp line 132
0x400d2082: connectToServer() at C:\Users\User\AppData\Local\Temp\arduino_build_877457\sketch\Connection.cpp line 91
0x400d23c7: connect() at C:\Users\User\AppData\Local\Temp\arduino_build_877457\sketch\Connection.cpp line 163
0x400d24a3: scan() at C:\Users\User\AppData\Local\Temp\arduino_build_877457\sketch\Connection.cpp line 108
0x400d3817: setup() at C:\Users\User\Documents\Arduino\esp32_komoot_ble/esp32_komoot_ble.ino line 65
0x400dd08f: loopTask(void*) at C:\Users\User\Documents\Arduino\hardware\Espressif\esp32\cores\esp32\main.cpp line 14
0x4008e5f1: vPortTaskWrapper at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/port.c line 143

Kauf dir ein gebrauchtes Iphone. Da sparst du dir viel Zeit. Ich denke, da ist nicht nur die BT Anbindung das Problem, sondern eher OS interne Unterschiede.

Das wollte ich vermeiden und nicht zwei Geräte mitschleppen... :frowning:

Kann doch nicht unlösbar sein das Problem?

Wenn ich diese zwei Zeilen auskommentiere läuft das Script ohne Absturz durch aber dafür werden keine Nachrichten übertragen:

    //pRemoteCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)notificationOn, 2, true);
    
    //pRemoteCharacteristic->registerForNotify(notifyCallback);