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

SoftDevice + Bootloader DFU not working

Hi, I am trying to perform an OTA DFU of SD + BL on nRF52840, upgrading the SoftDevice from 6.1.1 to 7.0.1. 

I have been able to do a DFU of application only, and it works fine. However, when upgrading SD + BL using nRF Connect for mobile, I get a message saying the upgrade was succesful, but the bootloader does not seem to start (it does not advertise as expected).

This is the command I am using to generate the upgrade package:

nrfutil pkg generate --hw-version 52 --sd-req 0xB6 --sd-id 0xCA --softdevice s140_nrf52_7.0.1_softdevice.hex --bootloader-version 3 --bootloader secure_bootloader_def_ble_s140_pca10056.hex sd_bl_dfu_package.zip

Not sure if I am missing something obvious here, any help would be appriciated.

Parents
  • Hi Armin, 

    Could you also include the new SD id to the --sd-req, so it will be --sd-id 0xB6, 0xCA. It's explained here.

    If that doesn't help we would need to debug and find why the new bootloader wouldn't work. 

    You can either debug the bootloader if you build it with debug information. Or you can try printing out some log, or do LED blink, just so that we know it actually started. 

    In case that no bootloader code executed, we need to check why it's not jumped to the bootloader. Or if the bootloader has not been replaced. What you can do is to dump the hex out of the flash and compare it with before DFU to see if the old bootloader has been replaced and if it's replaced properly (the image is copied correctly)

Reply
  • Hi Armin, 

    Could you also include the new SD id to the --sd-req, so it will be --sd-id 0xB6, 0xCA. It's explained here.

    If that doesn't help we would need to debug and find why the new bootloader wouldn't work. 

    You can either debug the bootloader if you build it with debug information. Or you can try printing out some log, or do LED blink, just so that we know it actually started. 

    In case that no bootloader code executed, we need to check why it's not jumped to the bootloader. Or if the bootloader has not been replaced. What you can do is to dump the hex out of the flash and compare it with before DFU to see if the old bootloader has been replaced and if it's replaced properly (the image is copied correctly)

Children
Related