Hi,
I'm trying to integrate buttonless dfu to our project. We don't have any security concerns and given the existing project constraints, it's not desirable to use peer_manager and power_management (which uses app_timer....) libraries. We don't use bonding. So the use case looks pretty simple.
We'd like to be able to perform OTA DFUs using nordic secure bootloader and nrfconnect app. So I'd like to implement a simpler dfu service which could work with secure bootloader and nrfconnect.
Regarding power_management library, it looked that its only use was in the ble_dfu_buttonless_bootloader_start_finalize() function in ble_dfu.c. Hence it seems easily replaceable with the following code snippet :
NRF_LOG_INFO("Shutdown complete.");
NRF_LOG_FINAL_FLUSH();
NVIC_SystemReset();
The main interrogations come from peer_manager and nrf_dfu_ble_svci_bond_sharing.h ... I disabled bond support as mentioned at https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v17.0.2%2Fservice_dfu.html&cp=7_1_3_3_5_6&anchor=secure_dfu_buttonless_app and tried to dfu without peer manager (which seems not to be used for unbonded dfu). It failed.
To get it work I had to (at least) initialize peer manager. I say at least because I didn't initialize svci interface at all by calling ble_dfu_buttonless_async_svci_init() and it was sufficient to get buttonless dfu work.
Could you please explain a bit deeper what is absolutely needed to make my minimal implementation of unbonded dfu service ?
***EDIT*** I'm using nRF5 SDK 17.0.2 with softdevice s140_nrf52_7.2.0 on a nRF52840 devkit
Best regards,
Hugo