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

Request to enter bootloader mode failed asynchronously.

I was working with the buttonless DFU service that requires bonds and I was able to update my firmware just fine. Then I added Just Works OOB pairing using the nfc_ble_pair_lib. Now whenever the DFU characteristic is written, I receive the "Request to enter bootloader mode failed asynchronously" message. Any idea on what can be causing this?

<info> peer_manager_handler: Connection secured: role: Peripheral, conn_handle: 0, procedure: Encryption
<info> app: Connection secured. Role: 1. conn_handle: 0, Procedure: 0
<info> app: Received indication state 1
<info> app: Writing peer data to the bootloader...
<error> app: Request to enter bootloader mode failed asynchronously.

Parents
  • Hi Jonathan, 

    which nRF52 IC are you using? Also which SDK version and SoftDevice are you using? 

    I took a look in SDK v15.0.0 and the buttonless DFU example prints 

    NRF_LOG_ERROR("Request to enter bootloader mode failed asynchroneously.");

    when the BLE_DFU_EVT_BOOTLOADER_ENTER_FAILED event is passed by the Buttonless Secure DFU service.  This event is generated in either ble_dfu.c or ble_dfu_bonded.c. 

    In ble_dfu.c the BLE_DFU_EVT_BOOTLOADER_ENTER_FAILED  is returned at one location

    1. If ble_dfu_buttonless_bootloader_start_prepare() at line 194 in on_hvc() ruturns a non-zero error code, i.e. not NRF_SUCESS.

    In ble_dfu_bonded.c. BLE_DFU_EVT_BOOTLOADER_ENTER_FAILED  is passed to the event handler at four locations, 

    1. If ble_dfu_buttonless_bootloader_start_finalize() returns a non-zero error code when the PM_EVT_PEER_DATA_UPDATE_SUCCEEDED event is processed in pm_evt_handler()
    2. If ble_dfu_buttonless_bootloader_start_finalize returns a non-zero error code when the PM_EVT_PEER_DATA_UPDATE_FAILED event is processed in pm_evt_handler()
    3. If ble_dfu_buttonless_resp_send at line 266 returns a non-zero error code in ble_dfu_buttonless_on_sys_evt()
    4. If ble_dfu_buttonless_resp_send at line 358 returns a non-zero error code in ble_dfu_buttonless_on_ctrl_pt_write()

    Can you please place a breakpoint at these 5 locations and see which one is triggered?

    Best regards
    Bjørn

  • Somehow I didn't have this set:
    NRF_SDH_BLE_SERVICE_CHANGED 1

    However now, I am getting
    "Enabling indications failed"
    When trying to perform a bonded DFU.

    I also can not enable indications on the DFU characteristic manually via the LightBlue GATT client app

Reply Children
Related