summaryrefslogtreecommitdiff
path: root/docs/esp32/tutorial/index.rst
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2025-07-20 22:01:54 +1000
committerDamien George <damien@micropython.org>2025-07-23 12:53:28 +1000
commitc6423d5d8e47ee0dc6b60fe150b4a2b540116940 (patch)
treef3e6b85712b1f37a64285df022dcd939cd16f933 /docs/esp32/tutorial/index.rst
parent10ef3e4ac2767b68f746f0ebb995672076eee67d (diff)
tests/multi_bluetooth: Synchronise MTU exchange in BLE MTU tests.
With the recent update to ESP-IDF 5.4.2, there is a change in BLE event behaviour which makes `tests/multi_bluetooth/ble_mtu.py` and `tests/multi_bluetooth/ble_mtu_peripheral.py` now fail on ESP32 with IDF 5.4.2. The change in behaviour is that MTU_EXCHANGE events can now occur before CENTRAL_CONNECT/PERIPHERAL_CONNECT events. That seems a bit strange, because the MTU exchange occurs after the connection. And looking at the timing of the events there is exactly 100ms between them, ie MTU_EXCHANGE fires and then exactly 100ms later CENTRAL_CONNECT/PERIPHERAL_CONNECT fires. It's unknown if this is a bug in (Espressif's) NimBLE, a subtle change in scheduling with still valid behaviour, an intended change, a change allowed under the BLE spec, or something else. But in order to move forward with updating to IDF 5.4.2, the relevant tests have been adjusted so they can pass. The test just needs to wait a bit between doing the connect and doing the MTU exchange, so the other side sees the original/correct ordering of events. This wait is done using the multitest synchronisation primitives (broadcast and wait). Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'docs/esp32/tutorial/index.rst')
0 files changed, 0 insertions, 0 deletions