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

Mesh DFU not working after 1st successful DFU Mesh.

I am trying to do Mesh DFU.

I have done updating ble_app_blinky successfully for the 1st time over mesh but after that, I tried to do again by increasing the application version but I am seeing the following error.

D:\BLE 5 SDK\DeviceDownload\pc-nrfutil-mesh_dfu\Mesh DFU>nrfutil --verbose dfu serial -pkg dfu_test.zip -p COM110 -b 115200 -fc --mesh
Upgrading target on COM110 with DFU package D:\BLE 5 SDK\DeviceDownload\pc-nrfutil-mesh_dfu\Mesh DFU\dfu_test.zip. Flow control is enabled.


Flushing com-port...
Opened com-port
Starting DFU upgrade of type 4, SoftDevice size: 0, bootloader size: 0, application size: 23280
Sending DFU start packet, afterwards we wait for the flash on target to be initialized before continuing.
1: PC -> target: 0502aabbccdd
2: PC -> target: 0502aabbccdd
3: PC -> target: 0502aabbccdd
4: PC -> target: 0502aabbccdd
5: PC -> target: 0502aabbccdd
6: PC -> target: 0502aabbccdd
7: PC -> target: 0502aabbccdd
8: PC -> target: 0502aabbccdd
9: PC -> target: 0502aabbccdd
10: PC -> target: 0502aabbccdd


Failed to upgrade target. Error is: Failed to establish connection

Possible causes:
- bootloader, SoftDevice or application on target does not match the requirements in the DFU package.
- baud rate or flow control is not the same as in the target bootloader.
- target is not in DFU mode. If using the SDK examples, press Button 4 and RESET and release both to enter DFU mode.
- if the error is ERROR_BUSY at the beginning of the DFU process,increase the value of PAGE_ERASE_TIME_MAX by few milliseconds.
Closing serial port...

Parents
  • Hi Bhavit, 

    Your comment was right. When you update ble_app_blinky , the app doesn't support Mesh DFU so that's why it wouldn't allow you to do another DFU. 

    You would need to implement Mesh DFU as we did in the \examples\dfu example. 

    I'm not sure why you want to update a non-mesh application to mesh node. 

    If you want to switch from application to the bootloader to do a DFU you would need to assign NRF_POWER->GPREGRET = 0x00. Please have a look at file main.c of the \mesh\bootloader to see how it works. 

Reply
  • Hi Bhavit, 

    Your comment was right. When you update ble_app_blinky , the app doesn't support Mesh DFU so that's why it wouldn't allow you to do another DFU. 

    You would need to implement Mesh DFU as we did in the \examples\dfu example. 

    I'm not sure why you want to update a non-mesh application to mesh node. 

    If you want to switch from application to the bootloader to do a DFU you would need to assign NRF_POWER->GPREGRET = 0x00. Please have a look at file main.c of the \mesh\bootloader to see how it works. 

Children
Related