Problem with IV index udpate

Hi,
I did some test with IV index using nRF Mesh, here the steps:

  1. provisioned 2 devices in a new mesh (device that have nordic SDK, IV test flag enabled)
  2. from one devices, I triggered the IV index update from 0 to 1
  3. after the finish of the IV procedure, I tried to interact with devices using nRF Mesh -> OK (get/set status, bind app key etc)
  4. from the same device of point 2, I triggered the IV index update again, from 1 to 2
  5. after the finish of the IV procedure, I tried to interact with devices using nRF Mesh -> FAIL (can't get/set status, can't bind app key etc)
  6. I also tried to add a third device into the same mesh -> provisioning ok but every next operation fails (can't bind app key, get/set status is not possibile due to missing app key binding)

It seems that when mesh IV is over 1 nRF mesh can't interact with it because app still use IV 0 while the devices use IV 2.

I tried the steps above using:

  • Android nRF Mesh v3.2.4
  • iOS nRF Mesh v3.2.0

I also opened an issue on GitHub (see https://github.com/NordicSemiconductor/Android-nRF-Mesh-Library/issues/537)

Parents Reply Children
  • Hi Fabbros, 
    I'm sorry for the late response. HĂĄkon is on a business trip so I will take over the case. 

    I will check with the app team to see if there is any issue with the app.

    But in the mean time to isolate the problem to see if it's the issue only on the app or it also an issue with the mesh firmware, could you let me know after you do IV update from 1 to 2 , other devices in the network can still communicate to each other ? For example if you have a client and a server (both running on nRF5 device) can they communicate to each other when doing IV update ? 


    At which IV Update state (Normal/In Progress) do you see the app on the phone stopped responding ? When the issue happen, can you control the node that already provisioned to the mesh network ? 

  • Hi Hung Bui, 

    thank you for taking over.

    I tried setting the Generic_OnOff_Client of device A to publish to the Generic_OnOff_Server of device B and they work fine also with IV 2.

    The app stop working after IV Update state change to Normal operation. After that, the only thing I can do is connecting to the proxy. Everything else seem not to work (I checked: apply binding, read/set state to a Generic_OnOff_Server)

  • Hi Fabbros, 

    Thanks for the info. The issue is seem to be on the app side. 
    If you disconnect and connect to already provisioned proxy would you be able to communicate with them ? 
    We will try to reproduce the issue here and let you know what we find. 

    If you can list exact step on how you trigger the IV index update, how you verify that it's on Normal state, etc it would be great. 

  • I work for a Home Automation Company that developed an app (both Android and iOS) which configures our mesh devices (based on Nordic). I'm talking about thousands client that are using our app. We started experiencing several cases where IV is stepped to 1, with the time passing by we are expecting to get cases with IV 2 very soon and that will be dramatic.

    First time we saw the issue we were using and old android SDK which wasn't able to communicate with device with IV 1, so we updated the SDK to fix that. Now we're doing some digging into the IV procedure and find out that if the IV step to 2 the app stop working again. To do the test we modify our devices enabling the IV test flag (to skip the canonical 96 hours) and force one of them to trigger the IV procedure from 0 to 1 and then from 1 to 2.

    To verify the current IV status, and the current status of IV procedure (Normal vs update) we use nRF Connect because it shows the devices SNB Advertising. 

  • Thanks for the info. We will try to reproduce the issue here. 
    In the mean time could you try to get any log from the app by connecting it to a computer ? 

Related