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

Failure upgrading with DFU

We are working on our development board contain the nRF52840. We also use Bluetooth Low Energy to load wirelessly the updated code with the DFU and it's working properly.
After several DFU updates, some of our boards cannot be loaded by DFU anymore...
I have already connected them to J-Link and made erase all, I programmed directly the SW, disconnect the J-Link, they run great with our SW, but the specifics of several boards still cannot be connected and upgrade by DFU.
Is any idea of this phenomenon?
What do I have to do since I can make them upgrade with the DFU?

* Important notes: it's not all the boards, only about 10% of them...

  • Hi Ronen,

    We would need to get more debug information to analyse what could be wrong here. 
    Could you get some log from the bootloader when it fails  ? 

    What exactly happened when you try to do DFU ? 

    Which SDK your bootloader based on ? 

    If you flash and test the stock bootloader from the SDK would it work ? 

    Have you tested if a normal BLE application still works on those board ? 

  • Dear Hung Bui,

    Follow your questions,

    What exactly happened when you try to do DFU ?  - Please see below:

    When I open the BLE nRF connect it's looking OK.

    Choosing my board

    I have already selected the SDK nRF52840-DK and still looking OK

    Choosing  the DFU file and click "Start DFU"

    And after a few seconds got a white screen:

    Or sometimes got the next note:

    Which SDK your bootloader based on ?  - nRF52840-DK

    If you flash and test the stock bootloader from the SDK would it work ?  - Sorry, please explain it...

    Have you tested if a normal BLE application still works on those board ? Yes! the BLE is working properly with our application.

  • Hi, 

    Please try capture a sniffer trace when you do DFU update. You would need  an extra nRF52/dongle to be used as the sniffer. 

    From what you described, it seems that the nRF Connect app couldn't write the command to your application to switch to bootloader mode. 

    Please check if you have any assert/crash on your device when testing. Please check if you have any log. 

    Please let us know which SDK you based your application& bootloader, I know you use the DK, but the SDK is the software development kit that you based your application on. 

    To flash a stock bootloader, just go to the SDK that you use and try compiling and flash the bootloader (\examples\dfu\secure_bootloader)  firmware to test.

    When you flash your application did you also flash the bootloader ? 

Related