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

nrf_dfu_set_peer_data returns 8 and does NOT start DFU bootloader

I am having trouble turning on bonds for DFU. 

First of all, before I describe this pain, can I choose to avoid this battle by just allowing unbonded devices to DFU? e.g. set NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS = 0, and NRF_DFU_BLE_REQUIRES_BONDS = 0 and  attr_md.wr_auth = 0;? 

This is what I run into when I try to turn on bonding for DFU. Error 8, which I assume is INVALID_STATE, and I don't know what that means. I deleted the bond from my iPhone several times and rebonded again. I enabled Indications on the  DFU service. Yet I still get this "error 8". Or sometimes, my application will actually reboot into DFU, but then my DFU app sits there and does nothing, implying the iPhone can't find the nRF Bootloader for some reason, or the bond data was not passed correctly.  What is wrong?

 

<info> app: DFU_OP_ENTER_BOOTLOADER
<info> app: Writing peer data to the bootloader
<info> app: ---------------system attribute table: 8--------------
<error> app: nrf_dfu_set_peer_data error: 8
<error> app: enter_bootloader error: 8
<error> app: on_ctrl_pt_write error. rsp_code = 4
<error> app: Request to enter bootloader mode failed asynchroneously.

SDK 14.0.0 

S132 

I set NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS 1 and NRF_DFU_BLE_REQUIRES_BONDS 1 and flashed my bootloader already. 

Related