Unable to enter legacy DFU mode

Hi, 

It's been a few months since I've been developing a new project using the nrf52832. One of the main features is naturally the OTA DFU. During the last months I was able to successfully update the firmware using the nrf connect and nrf toolbox apps without any issues. A few days ago, I tried to update again the firmware, but this time it failed.

More specifically, I can't seem to get the device enter the DFU mode. When I start the DFU process, the device correctly writes the 0x0104 value to the DFU Control characteristic and then reboots. At that point I would expect the system to boot in the DFU mode from the bootloader, but interestingly enough boots again from my APP image.

Firstly, I thought that I might have introduced a new bug in the firmware, so I tried again with an old version of my firmware image which was surely working in the past. Unfortunately, this version also fails and this is the reason I'm posting the issue. I noticed there was a new version for both nrf connect and nrf toolbox in the app store (I use the apps from my IOS) about a month ago. Could this play any role in the update process? 

Note: The bootloader has not been modified and has the same version since I started developing the project.

Thanks in advance.

Best regards,

Nick

  • Hi,

    When I start the DFU process, the device correctly writes the 0x0104 value to the DFU Control characteristic and then reboots. At that point I would expect the system to boot in the DFU mode from the bootloader, but interestingly enough boots again from my APP image.

    Could you debug your app, set a breakpoint in dfu_app_handler.c::bootloader_start(), and see if it's called?

    If is not called, then there could have been an assert/error that triggered a reset before dfu_app_handler.c::bootloader_start() was called.

Related