Mesh Peripheral can no longer be provisioned, does not show up in scanning.

We have developed a system that is comprised on a BLE mesh peripheral (proxy) sensor, and multiple mesh node sensors all using the 52833. The proxy node connects to an Android app to configure, control and use the data from the sensors over a NUS connection. We now have 2 proxy (hub) nodes that can no longer be provisioned after their firmware had been updated using DFU. The devices do not show up during scanning for unprovisioned devices in both our custom Android App as well as the nRF Mesh App. 

I also have a 3rd proxy node that shows up during scanning but the provisioning quits very shortly after and does not complete. A complete flash erase and re program does not clear this issue. Does anyone have any ideas what happened to these mesh proxy devices and how to recover them? We have been working with these mesh devices for months without issue but have only recently started using DFU to update the targets. Now we have 3 unusable devices.

Parents
  • Hi Terry, 

    Have you tested the DFU application in your lab, did it work has the device managed to start after DFU update ? 
    What change has been made to the new application ? Extra care must be taken if you have changed flash data (including the provisioning data). 

    Could you give more information about the SDK you used ? 


    A complete flash erase and re program does not clear this issue.

    Could you tell how did you do a complete flash erase ? There could be a chance that user data has not been cleared and that can confuse the flash manager and cause an assert. 

  • Yes we tested in lab before the release but not many cycles. We are using nRF Connect SDK v2.3.0 with VS Code. I found the issue with my third device that would not complete the provisioning. In the nRF Connect for mobile app I clicked on 'Delete bond information" and now the device provisions properly. Before this I tried the nRF Connect for Desktop - Programmer to erase all flash but since we are running on external flash this likely does not erase provisioning information. I will have the client install nRF Connect for mobile and see if removing the bond information solves their problem. UPDATE: this did not help.

    UPDATE: We added a button press sequence on the target to trigger the device to remove the provisioning by calling bt_mesh_cdb_clear() and bt_mesh_reset(). This reset the device so it could then be provisioned again. It appears the un-provisioning step failed somewhere in that process but the App said it completed successfully. I'm not sure yet what steps are taken in the App to un-provision a device but this is where our focus now lies to understand and fix this issue from happening again. Any clarity on that process would be appreciated.

Reply
  • Yes we tested in lab before the release but not many cycles. We are using nRF Connect SDK v2.3.0 with VS Code. I found the issue with my third device that would not complete the provisioning. In the nRF Connect for mobile app I clicked on 'Delete bond information" and now the device provisions properly. Before this I tried the nRF Connect for Desktop - Programmer to erase all flash but since we are running on external flash this likely does not erase provisioning information. I will have the client install nRF Connect for mobile and see if removing the bond information solves their problem. UPDATE: this did not help.

    UPDATE: We added a button press sequence on the target to trigger the device to remove the provisioning by calling bt_mesh_cdb_clear() and bt_mesh_reset(). This reset the device so it could then be provisioned again. It appears the un-provisioning step failed somewhere in that process but the App said it completed successfully. I'm not sure yet what steps are taken in the App to un-provision a device but this is where our focus now lies to understand and fix this issue from happening again. Any clarity on that process would be appreciated.

Children
Related