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

DFU with softdevice only not working

On NRF52840 DK, I don't have a softdevice installed. I want to do DFU with s140 softdevice only update. But it gives the following error:

raise NordicSemiException('Extended Error 0x{:02X}: {}'.format(resp[3], data))
pc_ble_driver_py.exceptions.NordicSemiException: Extended Error 0x07: The array of supported SoftDevices for the update does not contain the FWID of the current SoftDevice.

I created the package with this command, nrfutil pkg generate --hw-version 52 --sd-req 0x00 --sd-id 0xA9 --key-file priv.pem  --softdevice softdevice_s140.hex s140.zip  (I tried without sd-id option, but it doesn't work either) But for the sake of trying, if I flash s140 softdevice with nrfjprog, then I update softdevice with nrfutil pkg generate --hw-version 52 --sd-req "0xA9" --key-file priv.pem  --softdevice softdevice_s140.hex s140.zip It works. I want to know 1. whether a previous softdevice has to be present if I want to do a softdevice update? 2. What's the right command of nrfutil to generate a softdevice only package?

Parents Reply Children
  • Hi Sigurd,

    Thank you for the answer. I am doing DFU update through USB. As I mentioned that if I just flash the softdevice on the device, then do another softdevice update is fine. But I didn't have softdevice on the device, then it is not successful. So I am not sure what the issue is.

  • Ok, in that case you don't need the SoftDevice. But you will need the MBR + serial bootloader(USB as transport).

    (the MBR is included in the SoftDevice binary).

    The MBR can be found in the folder:

    SDK15_folder/components/softdevice/mbr/nrf52840/hex/mbr_nrf52_2.3.0_mbr.hex

    If you are using the Segger Embedded Studio USB bootloader project, SES will flash the MBR for you when you flash the bootloader. If you are using other IDE/toolchains you will need to flash the MBR yourself.

Related