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

SDK 12.3.0 DFU service not work

Hi Forums,

I work 51822 custom board.

I try to add Buttonless DFU so I test the "experimental_ble_app_buttonless_dfu" compile is good.

But flash to the board can't find DFU service on NRF Connect tool.

I search online then find most discuss SDK 12.1.0 So I download SDK 12.1.0 build "experimental_ble_app_buttonless_dfu" then flash to board. Magic! It's fine.

I think is strange so try test SDK 12.2.0 . Sadly not worked.

What's different between SDK 12.1.0 ~ SDK 12.2.0 make ble dfu service not work?

Is any suggestion to fix this on SDK 12.3.0?

Thanks for any information.

  • @johnathan_lyu: I apologize for the late reply, I have been looking at the secure bootloader and buttonless examples in SDK v12.3.0 and it would appear that the .enter_buttonless_dfu field in the s_dfu_settings is not correctly written to flash by the buttonless application. All callbacks from the fstorage module indicate that the flash write operation was OK, but once you reset to the bootloader and read it back, the value is set to 0. I have not been able to determine why, but I do not think this is worth looking into as this is an experimental implementation. We reverted to using the GPREGRET registers instead of writing to flash in SDK v13.x.x. Hence, my suggestion would be to backport the buttonless example and bootloader from SDK v13.0.0 to SDK v12.3.0.

Related