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

nrf51-ble-dfu-symmetric-signing bootloader dfu upgrade

I use the "nrf51-ble-dfu-symmetric-signing" example from GitHub. The application download over dfu works fine on the PCA10028 board.

But how can I install this bootloader over dfu with the nRF Toolbox?

The hmac_init_pkt_gen.py script creates a zip file without manifest.json. The binary will be huge because the uicr section will be adressed by the linker and fills up the space between with 0xff. Do I need a json file for the bootloader update?

Removing the readback protection and the start address makes the binary much smaller but the download fails with "REMOTE DFU INVALID STATE (2)"

Any ideas?

Thanks Michael

Parents
  • Hi, the UICR section must be stripped from the .hex before you do the conversion to avoid the byte padding you mentioned. The bootloader won't and can't write to this area anyways; UICR registers can only be erased by doing a full chip erase (NVMC.ERASEALL).

    REMOTE DFU INVALID STATE could indicate the the device is not in DFU mode, did you try to enter DFU mode by pressing BOOTLOADER_BUTTON and doing a reset? LED 1 and 3 will be on when in DFU mode.

    Have you considered using the experimental assymteric signing example in the SDK (\nRF51_SDK_10.0.0\examples\dfu\experimental)? This example will be maintained by the SDK team.

Reply
  • Hi, the UICR section must be stripped from the .hex before you do the conversion to avoid the byte padding you mentioned. The bootloader won't and can't write to this area anyways; UICR registers can only be erased by doing a full chip erase (NVMC.ERASEALL).

    REMOTE DFU INVALID STATE could indicate the the device is not in DFU mode, did you try to enter DFU mode by pressing BOOTLOADER_BUTTON and doing a reset? LED 1 and 3 will be on when in DFU mode.

    Have you considered using the experimental assymteric signing example in the SDK (\nRF51_SDK_10.0.0\examples\dfu\experimental)? This example will be maintained by the SDK team.

Children
No Data
Related