-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
I'm implementing improv-wifi BLE on ESP32 with IDF 5.1 and NimBLE, but sendRPC calls never reach my device when using Chrome on a Mac. Reading state and capabilities characteristics works, but RPC requests are simply "swallowed" using https://esphome.github.io/esp-web-tools/.
Cross referencing it with the ESP Web Tools firmware showed the exact same behaviour: provisioning is never initiated and the web app gets stuck!
The same issue has been described in #212 but has been closed due to inactivity. So it seems I'm not the only one.
- Chrome 120 with macOS 13.6.4 on M1 Max
- Chrome doesn't show any console warnings or errors when using the identify request or sending wifi credentials.
- Since
sendRPC
doesn't seem to have any error handling (maybe they are bubbled up, but I'm not a JS developer), I've patched it with the developer tools in Chrome and added an error handler around this._rpcCommandChar.writeValueWithoutResponse(i), but it always returns success. The write call returns ok, and debugging shows the correct payload, but the data never reaches the peripheral.
Now the fun part:
- When using Chrome's Bluetooth internals
chrome://bluetooth-internals/#devices
on my Mac I can write the RPC command characteristic and0x020002
triggers the identify command. - I only encounter this on my Mac. It works with Chrome on Linux and on an Android tablet.
I'd like to use improv-wifi BLE in our product and get this working on Mac as well.
I'm happy to provide more information if required to help resolve this issue.
PaulWieland and thenewwazoo
Metadata
Metadata
Assignees
Labels
No labels