-
Notifications
You must be signed in to change notification settings - Fork 7.7k
feat(matter): enables BLE Matter commissioning with NimBLE #11537
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
base: release/v3.3.x
Are you sure you want to change the base?
Conversation
👋 Hello SuGlider, 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 13m 10s ⏱️ Results for commit f4b7ba6. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR enables BLE-based Matter commissioning using NimBLE, refactors the core MatterEndPoint
interface for better separation of interface and implementation, and adjusts example sketches to conditionally include Wi-Fi only when BLE commissioning is disabled.
- Introduced
MatterEndPoint.cpp
with implementations for endpoint management and a new secondary network interface for Thread. - Refactored
MatterEndPoint.h
to declare methods (moving inline implementations into the .cpp) and added Thread commissioning support inMatter.cpp
. - Updated all example sketches to wrap Wi-Fi includes and connection code in
#if !CONFIG_ENABLE_CHIPOBLE
and changed log messages to "connected to the network."
Reviewed Changes
Copilot reviewed 51 out of 51 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
libraries/Matter/src/MatterEndpoints/*.h/.cpp | Bumped copyright year and added blank line before started = true; in begin() methods |
libraries/Matter/src/MatterEndPoint.h | Refactored class interface, added declarations for new methods and secondary network interface support |
libraries/Matter/src/MatterEndPoint.cpp | New implementation for MatterEndPoint methods |
libraries/Matter/src/Matter.cpp | Added conditional Thread commissioning configuration block |
libraries/Matter/examples/*/*.ino | Wrapped Wi-Fi code in BLE-commissioning guard and updated log text |
Comments suppressed due to low confidence (4)
libraries/Matter/src/MatterEndPoint.cpp:26
- Returning
false
when a secondary interface already exists may mislead consumers who only need to know it is available. Consider returningtrue
or using a distinct status code to indicate 'already initialized'.
if (secondary_network_endpoint_id != 0) {
libraries/Matter/src/MatterEndPoint.cpp:33
- The commented-out WiFi feature map entry could be confusing. Add a
TODO
or parameterize feature selection so it's clear whether WiFi commissioning is intended in the future.
//chip::app::Clusters::NetworkCommissioning::Feature::kWiFiNetworkInterface) |
libraries/Matter/src/Matter.cpp:20
- [nitpick] Consider adding a brief comment above this block to explain the Thread commissioning configuration parameters and when this block is enabled.
#if CONFIG_ENABLE_MATTER_OVER_THREAD
Memory usage test (comparing PR against master branch)The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.
Click to expand the detailed deltas report [usage change in BYTES]
|
Description of Change
Given that Arduino Core 3.3.x will support NimBLE, it is now possible to enable Matter network commissioning using BLE.
This PR changes examples and Matter Library code in order to make it work.
This must be done case by case because each SoC has certain limitations:
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_ENABLE_CHIPOBLE=y
(*) some extra chnages are necessary in order to make Matter run the commissioning for a Thread Network.
No Matter Support with Arduino:
Tests scenarios
Using the examples with ESP32, S2, S3, C3, C5, C6, and H2.
Related links
#11531