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

About the storage location of the Provisioner of Bluetooth mesh.

Hello,

I am developing with reference to "Light switch example".

And once the nodes are provisioned, the device acting as a provisioner is powered off in a warehouse 2km away.

The nodes are building and running a mesh network in the lab.

When I refer to the following in the specification,

I read that "when greater than the last known IV Index + 42, the IV update procedure does not start".

Mesh Profile BluetoothRegistered Specification v1.0.1 

3.10.5 IV Update procedure

Please teach.
In my usage, I think I can't add a new node after the IV index of the laboratory network reaches 43, is that correct?

Best regards.

  • Hi,

    If I understand correctly your setup, you have a network that is "split" in two parts that cannot communicate with each other. In that case, the two parts of the network will end up with the IV index not being synchronized. The two parts may then be on a different IV index. If the difference in IV index between the two parts becomes 42 or greater, then it is not possible for a node in one part of the network to synchronize with the IV Index in the other part.

    If a node is moved from one part of the network to the other, it is possible that the IV Index Recovery procedure leads to synchronization. However, this can only happen if the difference in IV Index is less than 42. Please also note that the IV Index Recovery procedure is designed for a situation where one node has been away from the network for a long time. It is not designed for a situation of net split.

    The provisioner will always be able to provision new nodes, but those nodes will only be able to communicate with other nodes that are on the same or neighbouring IV Index, or synchronize with nodes whose IV Index is different by less than 42.

    Please note that getting out of synchronization by 42 can only happen after almost a year of operation (48 weeks), as the IV Update procedure can only be initiated once every 192 hours (8 days). This means that a node that has been powered off or physically separated from the network will always be able synchronize the IV Index with the network as long as it gets in contact with the network within 48 weeks. The same goes for a situation where two groups of nodes lose contact with each other.

    Regards,
    Terje

  • Hello Terje.

    Thank you for your answer.

    My question has been resolved. And I got a new question.

     

    I'm not familiar with it, but I know there is an android app called "nRF Mesh". It seems that provisioning is also possible with this app. For example, if I installed this app on my smartphone, it would be almost impossible to always be on a mesh network. My smartphone may not be in the mesh network for more than 48 weeks. I think this kind of situation is usually possible.

    So I thought that the "nRF Mesh app" would behave like getting the IV index from the target mesh network before provisioning.
    Please let me know if you have any detailed documentation or web URL about "nRF Mesh app".  I want to know the specifications of that part of the "nRF Mesh app".

    Best regards.

    Kazu.

  • Hi,

    The nRF Mesh app does enforce the 42 IV Index limit, so after 48 weeks you do risk that the network has increased the IV Index too much for the nRF Mesh app to be able to connect.

    In our iOS and Android mesh libraries, we do have settings for overriding the limitation of 42:

    iOS: https://github.com/NordicSemiconductor/IOS-nRF-Mesh-Library/blob/7f1ed6104739a1ff8a8c7dfa605c55e506690621/nRFMeshProvision/Classes/MeshNetworkManager.swift#L126

    Android: https://github.com/NordicSemiconductor/Android-nRF-Mesh-Library/blob/97ea37f1ed5e14327bd7f471e9b32ba41e49ed06/mesh/src/main/java/no/nordicsemi/android/mesh/MeshManagerApi.java#L223

    That being said, having the provisioner interact with the network more often than once a year is most likely the best solution. Either by connecting to the network for at least a few minutes once in a while, or by having it physically present (and running) along with the network on a permanent basis. Of course there might be use cases where this is not wanted or possible, and then it has to be adressed by either connecting once in a while, or by lifting the limitation of 42, or by other means.

    Regarding documentation, for the libraries this is what we have, on GitHub:

    iOS: https://github.com/NordicSemiconductor/IOS-nRF-Mesh-Library/tree/master/Documentation

    Android: https://github.com/NordicSemiconductor/Android-nRF-Mesh-Library#readme

    The apps themselves follow the Bluetooth mesh specification, and the available features should be easily discoverable in the app. Apart from that, all information about the nRF Mesh apps is found on our web page: https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Mesh

    Regards,
    Terje

  • Hello Terje.

    Thanks for your detailed information and commentary.

      

    I will investigate your information and consider the specifications for provisioning my application.

     

    Thank you very much for your support.

    Kazu.

Related