nRF Mesh are open source libraries for building your own Android and iOS Bluetooth mesh apps. It is also the name of the apps demonstrating a subset of the capabilities of the libraries. Use them in test and verification during development, and to build prototypes. You can provision, configure and control Bluetooth mesh networks. We encourage you to use them as a starting point for your Bluetooth mesh app development.
Provisioning is the process of adding a device to a mesh network, allowing it the become a mesh node. The process includes authentication of the device, and providing it with the necessary provision data, like the network key.
Provisioning is performed over a provisioning bearer, either PB-ADV or PB-GATT. The provisioning bearers are simply two different ways of transporting provisioning messages. PB-ADV uses advertising, while the PB-GATT uses connections and GATT. nRF Mesh provisions over PB-GATT, as a GATT bearer client. This means that the device being provisioned must be a GATT bearer server, and it also must support the proxy role.
The device must advertise with the Mesh Provisioning Service UUID, nRF Mesh will scan for advertisements with this UUID. After connection, the Mesh Provisioning Service is used to do the provisioning.
nRF Mesh supports the following types of authentication:
Configure and control nodes
nRF Mesh offers a generic interface for configuring nodes as a configuration client. It can:
When it comes to node control, generic OnOff model is supported, but more models are planned.
The apps demonstrates the libraries
It is important to remember that the apps are just demonstrating the libraries, and a subset of the capabilities they have. So even though a feature is not visible in the app, it can still be supported by the library. And that real apps provided with end product would probably hide as much functionality as possible, automating the provisioning process.
Where to find it
The iOS app can be found on Apple App Store, and the library can be found on GitHub, here.
The Android app can be found on Google Play, and the library can be found on GitHub, here.
And as always, if you have feedback or any questions, please don’t hesitate to comment below.
Has anyone being able to use this provisioning on the nRF52 dev boards??? the first steps of the provisioning goes well enough, everything gets addresses, keys and so on and its looking good, but then after setting publishing / subscribing configurations, the button on client / control dont control the LED on the server / light board...
Strangely enough, the buttons on the server board does light up the LEDs on the same server board... Am I missing something?
I think it had to do with the fact that nRF52 uses simple on-off client while the app expects a generic on-off client. In my case I couldn't finish the configuration of the elements because of this, I couldn't see the on-off element. What I did was replace some definitions of simple_on_off_client, server and common (I think it was just the .h files) with the ones found here, which is the implementation in the thingy52 (Those things in the video).
The apps should be able to provision nodes with the Simple OnOff client/server vendor models, but you will not be able to control servers from the app. You would need to use a node to act as the a client to do this. The app is only able to control Generic OnOff SIG server models. The Generic OnOff model was added in nRF5 SDK for Mesh 2.2.0, which was just released, so everything you need is available.
If you still have trouble I recommend you to add a question in the Q&A section.
Thanks, when you say: "apps should be able to provision nodes with Simple OnOff client /server" do you mean that you have tried and you have being able to provision the SDK for Mesh light switch nodes with the app or you are assuming it...?
And glad you mention the Q&A section, I already did that https://devzone.nordicsemi.com/f/nordic-q-a/37254/ios-nrf-mesh-library-publishing-subscribing-configuration-and-firmware-version 27 days ago... still no answer So I am checking if there is anyone that has being able to provision the Dev boards with the app...
Hey, sorry for responding late... Here's the link where I found the issue. I just copied the things from the github in the header files to change it to generic. Here are the files I changed if you need... I didn't change the names, just the definitions...generic.zip
Hi all, just to close this topic, on the new release 2.2.0 of the Mesh SDK we got the Generic_on_off model already, so now I was able to use the app (tested both android and iOS) to provision the light switch proxy examples for the nRF52 Dev boards. Thanks!