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

Do the Ble Mesh program support GATT interface now?

Hi, around July Nordic Semiconductor released this SDK which featured examples of BLE mesh that uses a dev board as provisioner.

This program is OK, but it has zero possibility of switching the role between provisioner and provisionee, moreover, since it uses advertising packets, it is impossible to communicate with any node using GATT, which requires advertising communication prior to establishing the GATT connection.

So how are things now? I haven't been following everything for a while. ideally, this is what I want:

I want to be able to provision an entire mesh network using a random node of the mesh network.

And this is how I think it could be done:

We all know it's quite impossible at this point to use iPad or Android phone as provisioner. So it would be great if I can connect to any node first using advertising packets, then establish GATT (you know, the usual), and then I can send some commands over using GATT which turns this random node that I just connected into a provisioner, and then provision the entire network, once I'm done, this node that I just disconnected will be restored to its previous state, and then if there is a need, I can do this routine again on a different random node.

So my questions:

  • Is what described above available now?
  • If not, is there a plan to implement what I described? When will it be ready (if it can be revealed)?
  • Please kindly provide relevant information.
  • @david-edwin one more thing please, if we are talking about using GATT as an interface, are we talking about using a GATT capable "provisioner node" to communicate with the rest of the network - this node itself will either switch back to yet another provisionee after the provisioning was done or this node itself is simply a dedicated "provisioner node", OR the node will have zero provisioning capability and is merely a proxy, the actual provisioning are all done using the GATT-connected device, a tablet or a phone etc.?

    I just want to confirm this. By the sound of it you were saying that it is the latter, in other words, the node which will be used for provisioning is at best a medium, it does not really do provisioning, it just relay messages sent from the tablet, phone etc?

  • Both the scenarios you describe will be possible, but it usually makes more sense to have the phone be the provisioner, since the provisioning process is typically controlled from the phone side.

  • You will run the provisioner code, you will mirror all the provisioner events to the Phone over GATT. This includes the storage for the provisioning data in the phone. You can continue to allow the node to be a provisioner or switch over to be a provisionee only. You must take care to get all the data from the provisioner and move it to storage on the phone. The proxy as you have stated is closest to my suggestion.

  • @ovrebekk you are very much correct, but my thoughts are, if we can utilize the existing, written code for the board, and as such make use of the boards' provisioner function, much less coding will be needed on both the board and the tablet/phone system. Are there any immediate pitfall which you can think of regarding this scheme?

  • @david-edwin I must agree. But wouldn't you say that by continuing to use the board's own provisioner functionality, I can cheat a little and subsequently save a great deal of time and effort, until "real stuff" got released by nordic semi? Or there is something I haven't think of which renders my little plot impossible? Please do point it out if that's the case.

Related