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 A 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.