The nRF Mesh library allows to provision Bluetooth® Mesh devices into a mesh network, configure them and send and receive messages.
The library is compatible with the following Bluetooth specifications:
- Mesh Protocol 1.1
- Mesh Model 1.1
- Mesh Configuration Database Profile 1.0.1
Note
Mesh Device Properties are still work in progress
- Provisioning with:
- OOB1 Public Key (most secure)
- Input and Output OOB
- No OOB (insecure)
- Enhanced security, added in Mesh Protocol 1.1
- Configuration, including managing keys, publications, subscription, and heartbeats (both as client and server).
- Support for client and server models.
- Groups, including those with virtual labels.
- Scenes (both as client and server).
- Managing proxy filter.
- IV Index update (handled by Secure Network beacons).
- Key Refresh Procedure (using ConfigKeyRefreshPhaseSet messages, not Secure Network beacon).
- Heartbeats (both as client and server).
- Exporting network state with format compatible to Configuration Database Profile 1.0.1, including partial export.
- Option to use own transport layer with default GATT Bearer implementation available.
The following features are not (yet) supported:
- The rest of models defined by Bluetooth SIG - PRs are welcome!
- IV Index update (initiation) - not a top priority, as other nodes may initiate the update.
- Health server messages - in our TODO list.
The library can be included as a project and will be avialable on maven central in the near future.
Product documentation is available here: Documentation.
Most of the features listed above are demonstrated in nRF Mesh sample application.
The app is not yet published to Playstore but is available on this repo.
- Provisioning with all available features.
- Configuration of local and remote nodes.
- Managing network (provisioners, network and application keys, scenes), resetting and exporting configuration.
- Managing groups, including those with virtual labels.
- Sending group messages.
- UI for local models, which include:
- Generic OnOff Client and Server,
- Generic Level Client and Server,
- Simple OnOff vendor model by Nordic not supported yet.
- Mesh vendor model by Nordic not supported yet.
- Support for some server models:
- Generic OnOff,
- Scenes, both as client and server.
- Automatic connection to nearby nodes and automatic proxy filter management.
- IV Index test
All features are tested against nRF5 devices running nRF5 SDK for Mesh and nRF Connect SDK firmware.
- An Android Device with android 4.3 or newer device with BLE capabilities.
- nRF5 Development Kit(s) for developing and testing firmware.
Any feedback is more than welcome. Please, test the app, test the library and check out the API.
Use Issues to report a bug, or ask a question. We also encourage to submit Pull Requests with new features or bug fixes.
BSD 3-Clause License.
Footnotes
-
OOB - Out Of Band ↩