Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

DFU 14.2->15.2 (BL+SD+App)

Hi,

I have migrated my projekt from SDK 14.2 to 15.2, the bootloader is basically the secure_bootloader example with some tiny adjustments. When I try to upgrade my product running on 14.2 and the old Softdevice I get the this message in nRF Connect:

"DFU failed with error: When writing 'EXECUTE' command to Control Point Characteristic of DFU Target: Operation code 4 (EXECUTE) failed on DFU Target. Result code 5 (INVALID_OBJECT)."

The DFU package is generated like this:

nrfutil pkg generate --hw-version 10100 --application-version 1 --application _build_debug/app.hex --bootloader-version 3 --bootloader ../Bootloader/_build_EP1/bootloader_nrf52832_xxaa_s132.hex --softdevice ../SDK/components/softdevice/s132/hex/s132_nrf52_6.1.0_softdevice.hex --sd-id 0xAF,0xBF --sd-req 0x9D,0xA5,0xAF,0xB7 --key-file ../private.key bl_sd_app.zip

And the bootloader settings for the application using the old Softdevice and SDK is generated like this:

$(OUTPUT_DIRECTORY)/bootloader_settings.hex: $(TARGET_HEX)
	$(NRFUTIL) settings generate \
    --family NRF52 \
    --application $< \
    --application-version 0 \
    --bootloader-version 1 \
    --bl-settings-version 1 \
    $@

Are there any obvious reason this shouldn't work?

DFU works on the old bootloader for upgrading the application (but of course not to our new migrated application) and BL+SD+APP upgrades work on the bootloader running on 15.2. 

nRF Connect has version v2.6.2 (and the BLE app 2.2.0).

BR Henrik

Related