This article describes the bootloader changes in the BLE SDK, starting from version 18.104.22.168. The changes are presented starting from the most recent version.
The bootloader version here refers to the 32-bit value that is part of evt_dfu_boot event.
BLE SDK 2.1.0
Bootloader version updated to 0x00000004.
Handling of potential CRC errors in UART DFU updates is improved. The following table shows actions taken by bootloader if the firmware programmed with UART DFU does not pass the CRC check.
Handling of CRC error in 2.0.x bootloader
Handling of CRC error in 2.1.0
Generate dfu_boot_failure event (only once)
Invalidate application by erasing first page in flash
Generate dfu_boot_failure event (at each reboot until device is programmed with valid firmware)
Stay in bootloader mode, waiting for DFU commands from host
BLE SDK 2.0.1
No changes in bootloader. Version number same as before (0x00000003)
BLE SDK 2.0.0
Bootloader version: 0x00000003
Version 2.0.0 was the first release to use the new 16kB bootloader. Version 2.0.0 is not backwards compatible with the earlier 1.0.x versions. This is copied from the SDK release notes:
“ Version 2.0.0 is not backwards compatible with 1.0.x versions, meaning that an application written with 1.0.x SDK, will not work without modifications in 2.0.0 SDK and vice versa. Additionally, one cannot perform DFU, either over UART nor OTA, between the versions 1.0.x and 2.0.0.”