This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to use Bluetooth Mesh GATT provisioning with regular BLE stack?

I am running an example from Mesh SDK (v2.1.1) named "ble_app_uart_coesixt". I see device in Bluetooth list, everything is ok. But I need to provision this device using my smartphone without other devices. My goal is to provision device and than communicate with regular BLE uart profile. I can't understand how to combine "light_switch proxy_client" with coexist example. As I see it is just GATT service, and I don't need a "proxy" feature itself, only need to provision device with BLE. How can I do it?

  • Sorry for the delayed response. Is it correct that you want to first provision the device via the proxy functionality & then communicate via BLE UART between the smartphone & the mesh device? I think I made a mistake previously. What if you just use the proxy functionality & communicate to the device via the nRF mesh application? The source code is out so you could probably update the app to your liking & add some extra functionality.

    I have tested the proxy client with nrf connect for iOS, but as soon as I connect to the device & try to send data, the device disconnects. I believe this is because nRF Connect does not send the messages with the correct format.

    If I were you, I would take a look at the nRF Mesh source code (Android, iOS).

  • Sorry for the delayed response =) 

    Yes, you are correct — I want to do first provision with proxy and then communicate with regular BLE services. The reason why is that the network is configured by a provisioner and after all network configuration is done — I want to take new smartphone and somehow connect to a device and do communication with regular BLE, and at the same time this device can communicate with mesh network. As I understand, new smartphone can't access device with proxy only because it had not been provisioned (is not a part of network). And this device is not a provisioner, so it can't do provisioning to the new smarphone. So the only way it to keep regular BLE stack to make possible communication and bonding new devices without mesh reconfiguration.

    Am I right or wrong?

  • That is not correct. The whole point of the proxy node is to let regular BLE devices communicate with the mesh network, which means that the ble device does not need to be a part of the mesh network.

  • I am confused. Imagine that we have mesh network. When this network is not configured, I can use smartphone and do a provision of all devices via proxy feature, right? After all nodes configred I need to be able to communicate (control) with devices via different (another) smartphone, this new smartphone does not have any mesh network keys, so how it can use proxy feature without "be provisioned"? How node can can be controlled by proxy feature? For the BLE there is whitelist and bonding process, but how node can accept or decline smartphone with proxy? 

  • What do you mean by "how node can be controlled by proxy feature?" Do you want to change configuration parameters with the second smartphone (the one that was not used during provisioning) or do you just want to talk to the mesh network with the second smartphone?

Related