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

nrf_dfu_set_adv_name_init returns 1

I'm trying to add the ble_dfu service. During services_init(),

err_code = ble_dfu_buttonless_async_svci_init();
APP_ERROR_CHECK(err_code);
err_code = ble_dfu_buttonless_init(&dfus_init);
APP_ERROR_CHECK(err_code);

In the call to ble_dfu_buttonless_async_svci_init, nrf_dfu_set_adv_name_init returns 1, causing an error.

I have #define NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS 0 in sdk_config.h.

Any help would be great.

Parents Reply
  • : If NRF_DFU_BLE_REQUIRES_BONDS is set to 0 then the bootloader will notcompile in the asynchrounous SVCI function nrf_dfu_set_peer_data which is used in the ble_app_buttonless_template. If the nrf_dfu_set_peer_data function is called from the application with out being present in the bootloader, then the SVCI call will never return, i.e.e the app will hang forever. 

    Yes, you either have to allow DFU with un-bonded peers or only allow DFU with bonded peers.

Children
No Data
Related