BLE Bootloader FDU Example Verification Error

Hi, 

I am looking into adding BLE OTA firmware update functionality and started by exploring the example provided in Nordic SDK (SDK v16.0.0) while following the documentation provided here.

I ensure that the BLE Secure DFU Bootloader (from examples\dfu\secure_bootloader\pca10056_s140_ble\arm5_no_packs) and the softdevice are programmed, before attempting to program the pre compiled dfu example hex file "sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds" via nrfjprog. After a successful programming stage, the verification fails with unexpected values in particular addresses (see below).  

I was wondering how to rectify this issue while using the precompiled hex files to demonstrate FDU as proof of concept.

I am currently using:

  • SDK v16.0.0 (though v17.1.0 sees to share the same issue)
  • nRF52 Development board (DVK-BL654)
  • CMD Prompt tools:
  • J-Link version 11.0.16.1

Please also find the attached hex and log files.

sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex0207.log.log

Thank you.

  • Hi

    the nRF connect desktop app generated an error when trying to set up the second device

    However, i downloaded the nRF DFU mobile app and was successfully able to preform an AOT DFU. I am not sure why my bootloader app isn't functioning properly. However judging by the simplicity of the bootloaders implementation, i cant see why the "secure_bootloader_ble_s140_pca10056" example wouldn't full fill our needs.

    Thank you.

  • Hi,

    I see. Good you got it working with the mobile for now. And good that the example seems to fullfill your needs. It is a quite generic bootloder, so that is what I expected as well. Most will typically use the example bootloader with few or no changes.

    If you want to use nrfutil or nRF Dekstop to perform DFU via a DK, it can be worth tryign to disable the mass storage device feature of the DK, as that often improves reliability. You can do that by opening J-Link Commander, and typing the MSDDisable command.

Related