-
Notifications
You must be signed in to change notification settings - Fork 686
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESP32 bug: user is forced to repair when they should not be #266
Comments
This issue has been mentioned on Meshtastic. There might be relevant details there: https://meshtastic.discourse.group/t/bluetooth-connection/152/7 |
This issue has been mentioned on Meshtastic. There might be relevant details there: https://meshtastic.discourse.group/t/alpha-tester-thread-please-try-device-code-0-7-11/298/185 |
possibly related: espressif/esp-idf#3968 |
yeah - this portion of esp32-hal-misc.c seems bad:
|
misc notes to self: ok - NVS is not filling up, but this looks plausible: alas - not related (it was in nimble). though it did make me realize that the idf 3.3 in the arduino build is pretty old. Looking at commits. |
alas - just had a failure. will now try logging all NVS writes. |
misc notes to self: after a failure node 0x38 has 178 used entries. Therefore it must have done a GC on the NVS. good description of how RPA addressing works https://www.electronicdesign.com/technologies/communications/article/21801870/ble-v42-creating-faster-more-secure-powerefficient-designspart-2 (which seems related to the problem) Someone encountered the same problem but never followed up: espressif/esp-idf#3968 ooh super interesting! espressif/esp-idf#1811 (comment) MITM_BOND might be the fix! Alas no. After failure when phone tries to connect it just looks like hte normal auth flow?
|
…#266 (and it is good / more secure anyways - the old code was just based on the example docs)
This issue has been mentioned on Meshtastic. There might be relevant details there: |
ooh - someone with the same problem: https://www.bountysource.com/issues/61707647-whitelisting-still-does-not-allow-connections-idfgh-322. The bluedroid support for RPA is broken on ESP32 and they don't seem to be fixing it. Instead people are moving to Nimble. Which is a bummer - because I wouldn't want to make such a big change in the project that this point. But it seems unavoidable (because I'm not going to be fixing bluedroid ;-). So I'll need to switch to Nimble (like the commerical devs seem to be doing). It will provide a few benefits:
|
This issue has been mentioned on Meshtastic. There might be relevant details there: https://meshtastic.discourse.group/t/an-update-on-the-esp-32-loss-of-pairing-bug/776/4 |
…EDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266
…EDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266
Meshtastic patched version esp-idf commit #e7f316d5a4eb64ca52d40575cb20815d456a9c4f used. In support of: meshtastic/firmware#266
Meshtastic patched version esp-idf commit #e7f316d5a4eb64ca52d40575cb20815d456a9c4f used. In support of: meshtastic/firmware#266
Meshtastic patched version esp-idf commit #e7f316d5a4eb64ca52d40575cb20815d456a9c4f used. In support of: meshtastic#266
…EDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266
…BLED (#4497) * Change check for CONFIG_BT_ENABLE to really be a check for CONFIG_BLUEDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266 * Change check for CONFIG_BT_ENABLE to really be a check for CONFIG_BLUEDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266 * wifi prov changes * merge fixes Co-authored-by: geeksville <kevinh@geeksville.com>
…BLED (#4497) * Change check for CONFIG_BT_ENABLE to really be a check for CONFIG_BLUEDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266 * Change check for CONFIG_BT_ENABLE to really be a check for CONFIG_BLUEDROID_ENABLED Which is really what should have been tested. This allows use of the Arduino layer with the newer Nimble stack for those that don't want to use Bluedroid. In support of meshtastic/firmware#266 * wifi prov changes * merge fixes Co-authored-by: geeksville <kevinh@geeksville.com>
It seems sometimes the device forgets its bluetooth pairing state. The bug is definitely on the device side and independent of the GATT services used. I suspect that the ESP32 bluetooth's persistent NVS data might be getting discarded/corrupted somehow? Next steps are to print the entire NVS contents just before we try to start bluetooth and see if it is changing.
The text was updated successfully, but these errors were encountered: