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

Mesh DFU Relay Problem

Hi ,

     I have tested two boarrds(PCA10040) with  same application id and higher application version,These work  well done.Then I want to test mesh DFU Relay function,However ,the target board does not upgrade.

    Prepare: Name two boards, Board A which is connected to pc,acts as source ,Board B which is the targect to upgrade using mesh  .

   The follow is what i do:

   (1) To generate Device Page with config  "application_id": 1,"application_version": 1, .Using it to program Board   as mesh dfu guide .

   (2)To generate Device Page with config  "application_id": 2,"application_version": 1, .Using it to program Board  B  as mesh dfu guide .

 (3)To generate DFU file with command  :nrfutil dfu genpkg --application ... using config  "application_id": 2,"application_version": 2, 

   (4)Then ,Baord A connect PC with USB serial. Board B is just supplied power .Using command: nrfutil --verbose dfu serial -pkg ... to start mesh dfu.

   The result is:

     At the first few seconds ,both boards  go to dfu with LED 0and LED2 be lighted, A few mnutes later ,Baords B ends dfu with LED 0and Led1 be lighted . and Board A is still going with dos  windows shows rate of progress.About an hour later ,the dfu transport for Baord A is done,Even I still wait for another nearly one hour, However Board B is still not be upgarded.

  I check the Board B's final ending RTT log:

......

0> <t: 16666007>, nrf_mesh_dfu.c, 324, Write complete (0x2000FE90)
0> <t: 16666010>, nrf_mesh_dfu.c, 333, Flash idle.
0> <t: 16688463>, nrf_mesh_dfu.c, 528, RADIO TX! SLOT 6, count 3, interval: exponential, handle: FFFC
0> <t: 16688479>, nrf_mesh_dfu.c, 324, Write complete (0x2000FE90)
0> <t: 16688483>, nrf_mesh_dfu.c, 333, Flash idle.
0> <t: 16700264>, nrf_mesh_dfu.c, 383, Abort event. Reason: 0x3
0> <t: 16700267>, main.c, 175, Mesh DFU End !

    The Abort Reason:0x3 is found out in file dfu_types_mesh.h  DFU_END_ERROR_PACKET_LOSS  .  So the relay dfu fail  may be packet loss over RF radio.How  to repair this ? who can give me some advice ? Thanks you.

Best Regards,

Panda.

Related