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

Buttonless DFU: "Upload failed: DFU device disconnected"


Hello,

I tried to follow the instructions in this tutorial:
github.com/.../nRF52832-buttonless-dfu-development-tutorial

1) I flashed this file via nrfjprog:
examples\dfu\secure_dfu_test_images\ble\nrf52832\sd_s132_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex

2) As an additional check I used nRFgo Studio to verify the S132 Softdevice. This was also successful.

3) Since I only have one DK i tried to flash hrs_application_s132.zip using the nRF Toolbox on my Android smartphone:

3a) I selected the zip file and set the scope to "Application only".
3b) The DK was visible as "Nordic_Buttonless"; I selected it.
3c) I clicked "Upload".
3d) I get the error message "Upload failed: DFU device disconnected"

I am using both the bootloader and the hrs_application from the nRF5_SDK_15.2.0_9412b96.

Do you have any suggestions what to look for? Thanks!

  • Hello Andreas,

    my collegue tried it with his phone, and it worked.
    So maybe this is an Android version issue? My phone is the Sony Xperia Z3 compact.

    Ewald

  • Hi.

    Which "DFU Library version" is in the DFU page for your nRF Toolbox application?

    I tried with a Sony Xperia Z5 compact now, it did not work the first time, but it worked on the second attempt, the DFU library version on this phone is 1.3.0 (old)

    Do you have Segger RTT-Viewer? If not, can you download it here and do the following:

    1) Program your device with these two hex files:

    nRF5_SDK_15.2.0_9412b96\examples\dfu\secure_dfu_test_images\ble\nrf52832\bootloader_secure_ble_debug_without_bonds_s132.hex

    nRF5_SDK_15.2.0_9412b96\examples\dfu\secure_dfu_test_images\ble\nrf52832\softdevice_s132.hex

    2) Open RTT-Viewer

    3) Do the DFU again using hrs_application_s132.zip

    4) Paste all of the log output in your reply by using Insert --> Insert Code

    The disonnect after connect may be caused by:

    1. Some issue with Bluetooth stack on the phone. Recommended is restarting Bluetooth or the phone. This actually helps, a specially on older devices.

    2. Bond data kept by the remote device but removed on Android, or the other way round.

    3. Packet collision on Connect Req. The phone sent Connect Req on the adv channel, but it was missed by the device. Phone then sends Feature Req, but device ignores as it didn't get the Connect Req. After few sec phone gives 133 error. Recommended: try again. 3 attempts are usually enough.

    Best regards.

    Andreas

Related