ESP32 Arduino BLE Refactoring
SuGlider opened this issue · 13 comments
Related area
BLE refactoring using NimBLE
Hardware specification
Any
Is your feature request related to a problem?
This is part of an effort to improve ESP32 Arduino.
Describe the solution you'd like
Starting point for a BLE refactoring Plan.
Targets:
- Move from Blueroid to NimBLE library.
- Redesign the Arduino BLE interface to make it more Arduino API alike.
Suggestion:
- Change the actual BLE API to be similar to https://github.com/arduino-libraries/ArduinoBLE
Examples:
- There many examples in case we decide to go with ArduinoBLE API model: https://github.com/arduino-libraries/ArduinoBLE/tree/master/examples
Describe alternatives you've considered
None.
Additional context
None.
I have checked existing list of Feature requests and the Contribution Guide
- I confirm I have checked existing list of Feature requests and Contribution Guide.
ArduinoBLE already supports esp32. Only change to do here would be to configure BLE to be controller only and import the ArduinoBLE library, no Bluedroid or NimBLE required.
ArduinoBLE already supports esp32. Only change to do here would be to configure BLE to be controller only and import the ArduinoBLE library, no Bluedroid or NimBLE required.
Yes, it supports the ESP32-S3 module from the UNO R4 board and the boards that use Nina-W102 that has an ESP32 module.
But those are used as WiFi/Bluetooth modem using AT commands.
The idea here is to implement the ArduinoBLE API as part of ESP32 Arduino BLE Library as direct ESP-IDF calls, instead of using a UART to send and receive AT commands.
It also has the VHCI driver here: https://github.com/arduino-libraries/ArduinoBLE/blob/98ff550988912ffbaeb1d877970e9e05f1de0599/src/utility/HCIVirtualTransport.cpp#L138
Added in arduino-libraries/ArduinoBLE#252
@h2zero - Thanks for the information!
It also has the VHCI driver here: https://github.com/arduino-libraries/ArduinoBLE/blob/98ff550988912ffbaeb1d877970e9e05f1de0599/src/utility/HCIVirtualTransport.cpp#L138
I see, this is way to implement it with internal channel AT commands.
I'll try it.
Added in [arduino-libraries/ArduinoBLE#252](arduino-libraries/ArduinoBLE#25
I like the table showing resource utilization after compiling the different libraries' respective scan example!
related discussion: #9836