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

Ability to restart DFU when interrupted while in DFUTarg

Sometimes during a DFU update, the NRF52811 can stay in bootloader mode (seen with name DFUTarg and mac_address equal tomac_address+1).
I am on Softdevice 16.0
I'm using the https://github.com/NordicSemiconductor/Android-DFU-Library.

To be able to resolve this situation, I imagine that it would be possible for this DFU library to recognize a previous DFU process failed, and restart the DFU process from here.

I have tried setting initiator.setNumberOfRetries(1) but it did not help.

Is there something I'm missing ? How can I implement this myself ? As I can connect to the mac_address+1, is there a command I can send to make it restart on normal mode ?

Parents
  • Hi,

    There is not DFU command to exit DFU and reset the application. However, the bootloader has a timeout which is configured by NRF_BL_DFU_INACTIVITY_TIMEOUT_MS in the bootloader's sdk_config.h. This is set to 2 minutes (120000 ms) in most bootloader examples in SDK 16. So if there are more than 2 minutes of inactivity the bootloader will start the app if a valid app is present. If no valid app is present (typically if having started a single bank update), the only way to recover is to perform a successful DFU update.

Reply
  • Hi,

    There is not DFU command to exit DFU and reset the application. However, the bootloader has a timeout which is configured by NRF_BL_DFU_INACTIVITY_TIMEOUT_MS in the bootloader's sdk_config.h. This is set to 2 minutes (120000 ms) in most bootloader examples in SDK 16. So if there are more than 2 minutes of inactivity the bootloader will start the app if a valid app is present. If no valid app is present (typically if having started a single bank update), the only way to recover is to perform a successful DFU update.

Children
Related