Buttonless DFU with bond forwarding failed : [callback] : Central Manager failed to connect to peripheral[timeout] . DFU failed with error : Device failed to connect

Hi,

I am trying to integrate Buttonless DFU in my application.  I have implemented all the steps mentioned in this tutorial.

Getting started with Nordic's Secure DFU bootloader, a step by step guide - Software Development Kit - nRF5 SDK guides - Nordic DevZone

 Initially I faced some error because I had, DIS, ANCS and NUS serivces while DFU buttonless services appliation in to my code.

 I have resolved some errors with this tutorials and ticket : ble_app_hrs + Buttonless DFU on NRF52DK(52832) + OTA update - Nordic Q&A - Nordic DevZone - Nordic DevZone

Now following steps I am following in order to test the DFU OTA with Bond Forwarding : 

1.  Pair and Bond with my device using nRF connect for Mobile app.

2. Click the Document picker and select the zip file created for DFU OTA

3. Click  start

After this in nrf Connect for Mobile app, I can see that DFU started but after few seconds it displays DFU failed with error as Device failed to connect to peripheral[Timeout].

2. I have tried the same with Android also, but there also it is failed to connect with error code ad (0x93).

I am using nRF5 SDK v 17.1.0_ddde560.

Kindly please let me know what is wrong in my implementations so that I can correct it and successfully complete the DFU OTA with Bond Forwarding.

Thanks in Advance!!!

  • Hi,

    The nRF connect log shows that the connection is lost before the app responded to the "enter bootloader" command. It could indicate that the program is crashing.

    Mushtakh Shaikh said:
    I am not able to see the debug log in my segger embedded studi

    Have you tried to make it work? Are you enabling logging over UART or RTT?

  • Hi Vidar,
    1. Currently I have ANCS and peer management related functionality in my application.
    So when I connect with mobile app, it gets connected with bonding.
    2. Now as per your suggestion in previous reply to this thread, I have implemented DFU without bonding.
    3. As per DFU process, when device enters DFU mode,the current device gets disconnected and then it starts advertising with the name as "DFU_Targ"
    Then we go back to scanner and connect and then do the DFU OTA.
    4. Now when it comes to my application, the device gets disconnected so that it can be connected to new device name "DFU_Targ", but since the device is already bonded,
    it is not advertising agaain nor reconnecting back, then we are getting the timeout error.

    5. Yes I have enabled the logging over RTT. I am able to see the other logs but only when this error occures, I am not able to see the logs.

  • Hi,

    but since the device is already bonded,
    it is not advertising agaain nor reconnecting back, then we are getting the timeout error.

    It should be possible to debug the application here to determine why it is failing to enter bootloader DFU mode. Anyway, I tested buttonless dfu with the ANCS sample (modified to include buttonless service) and did not experience any problems. Please try the attached project and see if it works on your end as well.

    _build_nrf52832.zip

    ble_app_ancs_c_dfu.zip

Related