Ich komm gerade nicht weiter bei der Migration von Bluedroid auf NimBLE.
Das Arduino Framework v3.x (based on ESP-IDF 5.x) für den esp32 classic ESP32-WROOM-32E (ESP32-D0WD-V3) läuft noch auf Bluedroid, während alle anderen (esp32c3, ...) bereits auf NimBLE migriert sind.
https://github.com/espressif/arduino-esp32/discussions/10991
Im alten Bluedroid habe ich einen BLE-Server und einen BLE-Beacon Scanner gleichzeitig laufen. Nun hab ich den Code auf h2zero/NimBLE-Arduino v2.5.0 aktualisiert, nun bekommt der BLE Scanner keinen Zugriff mehr, der BLE Server dominiert.
Bisheriger Workaround (für NimBLE-Arduino) ist, das Advertising zu stoppen, zu warten bis der Controller frei wird, dann zu scannen, und vice versa.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
Das funktioniert miserabel bis gar nicht, Timeslots sind viel zu kurz um den BLE Beacon zu finden, und der BLE-Server ist auch nicht mehr responsive.
Sollte ich auf das Arduino Framework v4.0 warten (Stage 2) und wird dieses dann besser funktionieren als der h2zero Port? Oder komme ich nicht umhin auf der ESP-IDF Ebene zu programmieren, an allen Wrappern vorbei?