DFU properly completed but Distribution phase changed to Failed

Hi,

I made a DFU procedure with:

nRF52840 DK as Disrtibutor

nRF52840 Dongle as Target

Since composition data of my new firmware was the same of the one allocated on theTarget node, it remained correctly provisioned.

I also verified that new firmware was properly updated on Target

So, DFU was successfully completed, but at the end of the process these are the last messages sent by Distributor through serial communication:

Distribution phase changed to Applying Update
[17:22:01.676,086] <dbg> bt_mesh_dfu_cli: apply:
[17:22:01.676,086] <dbg> bt_mesh_blob_cli: blob_cli_broadcast: 1 targets
[17:22:01.982,879] <dbg> bt_mesh_dfu_cli: handle_status: 0 phase: 6, cur state: 4
[17:22:01.982,910] <dbg> bt_mesh_dfu_cli: handle_status: Target 0x001d receiving transfer
[17:22:10.910,430] <dbg> bt_mesh_blob_cli: retry_timeout: 5
[17:22:20.075,195] <dbg> bt_mesh_blob_cli: retry_timeout: 4
[17:22:29.234,588] <dbg> bt_mesh_blob_cli: retry_timeout: 3
[17:22:38.400,756] <dbg> bt_mesh_blob_cli: retry_timeout: 2
[17:22:47.553,466] <dbg> bt_mesh_blob_cli: retry_timeout: 1
[17:22:47.553,497] <dbg> bt_mesh_blob_cli: retry_timeout: Transfer timed out.
[17:22:47.553,497] <dbg> bt_mesh_blob_cli: drop_remaining_targets:
[17:22:47.553,527] <wrn> bt_mesh_blob_cli: Dropping 0x001d: 9
[17:22:47.553,527] <err> bt_mesh_dfu_cli: Target 0x001d failed: 3
[17:22:47.553,558] <dbg> bt_mesh_blob_cli: broadcast_complete: continuing
[17:22:47.553,588] <dbg> bt_mesh_dfu_cli: dfu_failed: 3
[17:22:47.553,588] <dbg> bt_mesh_dfd_srv: dfu_ended: reason: 3, phase: 3, apply: 1
Distribution phase changed to Failed

Why "Distribution phase changed to Failed" if I verified that DFU procedure was successfully completed?

Have I missed something?

Have I to ignore this message?

Please, let me know.

Thanks

Parents
  • Hello Stefano, and thanks for waiting. It's been a bit busy here. 

    Has there been any changes to your problem in the meantime? What NCS version are you using? Are these unmodified samples that you are running?

    Could you try increasing the timeout value and see if that helps?

    I also verified that new firmware was properly updated on Target

    How are you verifying that it is correctly updated. Could it be that you are mistaken about this?

    Regards,

    Elfving

  • HI,

    in the meantime I luckily solved the problem.

    At the end of the operation I didn' wait enough time to let the targets apply the updated firmware and reset themselves, so the Distributor failed to receive the final acknowledge from them.

    I solved the issue increasing the number of retries, adding this line in prj.conf:

    CONFIG_BT_MESH_BLOB_CLI_BLOCK_RETRIES = 12

    Thank you for your availability

    Bye

Reply
  • HI,

    in the meantime I luckily solved the problem.

    At the end of the operation I didn' wait enough time to let the targets apply the updated firmware and reset themselves, so the Distributor failed to receive the final acknowledge from them.

    I solved the issue increasing the number of retries, adding this line in prj.conf:

    CONFIG_BT_MESH_BLOB_CLI_BLOCK_RETRIES = 12

    Thank you for your availability

    Bye

Children
Related