-
Notifications
You must be signed in to change notification settings - Fork 7.6k
feat(NimBLE): Add support for NimBLE #11424
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: release/v3.3.x
Are you sure you want to change the base?
Conversation
👋 Hello lucasssvaz, we appreciate your contribution to this project! 📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more. 🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project. Click to see more instructions ...
Review and merge process you can expect ...
|
Test Results 76 files 76 suites 12m 47s ⏱️ Results for commit 4931b99. ♻️ This comment has been updated with latest results. |
9e8fa2d
to
8b36322
Compare
Co-authored-by: h2zero <ryan@nable-embedded.io>
982fbbd
to
4931b99
Compare
Description of Change
This pull request introduces support (ExtAdv still not implemented) for the NimBLE Bluetooth stack alongside the existing Bluedroid stack in the ESP32 BLE library. It includes updates to ensure compatibility with both stacks, adds new functionality, and improves documentation. Below is a summary of the most important changes grouped by theme.
Compatibility with NimBLE and Bluedroid
cores/esp32/esp32-hal-bt.c
to support bothCONFIG_BLUEDROID_ENABLED
andCONFIG_NIMBLE_ENABLED
. This ensures the Bluetooth stack is selected dynamically based on the configuration.BLE2901
,BLE2902
, andBLE2904
classes to work with both NimBLE and Bluedroid, including adding new NimBLE-specific logic for notifications and indications.New Features and Improvements
BLE2902
class with NimBLE-specific methods for getting and setting notifications and indications, while marking the class as deprecated for NimBLE users since such descriptors are automatically managed.BLE2904
class to ensure consistency across both stacks.Documentation Updates
README.md
to clarify the origins of the library, acknowledge contributions from h2zero (also added as co-author) for NimBLE, and provide guidance on where to raise issues.Example and Configuration Changes
ci.json
files) to requireCONFIG_BLUEDROID_ENABLED
for compatibility with features not yet supported by NimBLE.Maintenance and Metadata
library.properties
tolucasssvaz
, reflecting updated project ownership.These changes collectively improve the flexibility and usability of the ESP32 BLE library by supporting multiple Bluetooth stacks while maintaining backward compatibility.
Parts of the NimBLE implementation are based on older versions of NimBLE-Arduino. In future versions where breaking API changes are allowed, NimBLE-Arduino can be used as a submodule if optimal.
Tests scenarios
Tested some examples like
Scan.ino
. More tests still needed, including checking if Bluedroid still works as expected for esp32 as some changes where made to common functions.Related links
#9878
espressif/esp32-arduino-lib-builder#296