How can I identify the corresponding provisioned device on firmware upgrade?

Hello.

I am developing an application based on IOS-nRF-Mesh-Library,
and currently considering porting firmware upgrade function of IOS-nRF-Connect-Device-Manager for updating nRF5340 device.

I want to update the provisioned devices in the application,
but I cannot find information to identify which provisioned device corresponds to the scanned device.

How can I identify the corresponding provisioned device?
Or is my understanding of porting IOS-nRF-Connect-Device-Manager incorrect?

Best regards.

Parents
  • It is possible to change the name during runtime. If you use CONFIG_BT_DEVICE_NAME_DYNAMIC=y (in prj.conf), then you can use bt_set_name(), and the mesh stack will use bt_get_name() to set it's name. Perhaps you can use this in your application to identify the different devices.

    Best regards,

    Edvin

  • Thank you for confirming the configuration to change the advertising name in nRF-Connect-SDK.

    I understand that when updating the nRF5340 via BLE, it is necessary to change the advertising name to identify the device.

    I am concerned about your reply, "But you want to update it/them via BLE, and not through Mesh, right?"
    Can I update nRF5340 through Mesh?

    Best regards.

  • Yes. It is possible to do DFU via Mesh. We don't have any proper guides, but there are some samples that showcases it. I have not tested them myself, though. 

    You can read about it here:
    https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/protocols/bt/bt_mesh/dfu_over_bt_mesh.html

    The Mesh DFU is quite slow (similar to what it is in Zigbee, OpenThread and Matter. However, the devices will be operational while the transfer of the packet is in progress. This means that if it is e.g. a light bulb, it will still operate as a lightbulb, while the application image is being transferred in the background. When the transfer is complete, it will validate the new image, and perform a swap to the new image. This will only take some seconds, and the device will reboot, and be unavailable for this period (that would be the same if you did DFU over BLE). 

    So: DFU over BLE is faster, compared to DFU over Mesh, but for DFU over BLE you can only update one device at the time, and you need to be in BLE range of the device. In Mesh you can update several targets at once (if they are running the same application). It is slower, but the devices are operational while doing so.

    Best regards,

    Edvin

  • Thank you for your response.

    My question has been resolved.

Reply Children
No Data
Related