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

DFU over USB fails at 75% with application + Soft Device + bootloader

Hi,

We've created a FW image targeting a PCA10056 which consists of our application FW, the example secure DFU bootloader over USB, and the softdevice. Everything works fine (we can interact with the application and receive expected data). Although we can jump to the bootloader on power up by pressing the appropriate button and even launch DFU, the transaction always seems to fail at 75% and we see that the USB to serial connection is disconnected. We have tried this on both Windows and Linux and see the same behavior. Our DFU package contains a bootloader, Soft Device, and application. We need to update the application and bootloader, and since we can't update only those two, we need to package the Soft Device as well.

Can you advise as to what could be the issue?

Thank you,

Mohammed

Parents Reply Children
  • Initially, I'm flashing the USB bootloader + application + SD using JTAG by creating a combined hex file. I've tested the application and everything looks OK. Then, I need to only update the application and bootloader (the new bootloader only supports updating via BLE) via DFU, but I need to package the SD since I can't only update the application and bootloader via DFU.

    Thus, I create a package with the new bootloader, same SD, and new application via nrfutil. I press button 4 down on the DK and apply power to jump to the USB bootloader. When I use nrfutil to send the DFU package to the bootloader, it dies at 75%. On power cycle while holding down button 4 I expect that the board jumps to the bootloader (I confirm this by seeing a COM port show up in Linux/Windows), but it doesn't look like the bootloader launches. I then reflash the USB bootloader + application + SD using JTAG via the originally created combined hex file.

    Hopefully that makes sense. 

  • OK, I think I understand the problem now. You are succesfully able to update the Softdevice and the bootloader. The problem is that DFU of the new application has to be done through the new bootloader that no longer supports DFU over USB, but only BLE.

    So, after the Softdevice and bootloader is updated, could you complete the application update over BLE?

  • Hi,

    While the DFU of only the BLE bootloader succeeds, the board is no longer responsive after the update. When I flash just the BLE bootloader over JTAG, it works fine, so I think my BLE bootloader is fine. I tried creating a zip package with the BLE bootloader and soft device and a package with just the bootloader and both exhibit the same behavior.

    Can you advise?


    Thanks

  • Hi,

    Have you tried to do any debugging of the bootloader or application after DFU? I think a good first step is to confirm if the application is started at all, and also if program execution gets stuck somewhere (e.g. in hardfault handler).

    If you want, you can use "nrfjprog --readregs" to read the CPU register content when the device is unresponsive. This may provide some clues.   

Related