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

DFU reconnect problem

Hi!

I am having trouble with DFU. When I try to send new application via NrfConnect, device goes to bootloader, but file transfer is not starting. Only when I reconnect and try again, while device is in bootloader, transfer goes through. DFU code for bootloader and main application is taken from ble_app_hrs.

I have seen similar errors on forums all around, but it was not helpful.

Processor is nrf51822QFAA Softdevice: s130 v2.0.1 nrfConnect: v4.11.0 for Android Phone/Android: Nexus 6p, 7.1.2

This is log file of nrfConnect before entering bootloader: before_bootloader.txt

And this is log file of nrfConnect after reconnecting while device is in bootloader: while_in_bootloader.txt

I will appreciate any suggestion. Thank you in advance.

Best regards

  • Ok. I have tried, but with no success. I guess problem is somewhere in code.

    I am using UICR_ADDR_0x84 and 0x88 for holding info about device serial number; do you thing this could mess things with DFU?

    Another thing is - DFU procedure correctly starts bootloader, and bootloader correctly carries on DFU update. Only thing missing is detection of active bootloader from the nrfConnect side. Somwhere I have read that this is maybe due to different address of bluetooth device while in bootloader. How can I send info to DFU to expect different device address?

  • I found it. Problem was in bootloader. File dfu_ble_svc.c has to be configured in Keil in following manner: Right click on file, select "options for dfu_ble_svc.c" and set IRAM2 for Zero Initialized Data.

    Hopefully, someone will find this helpful :)

    Bjorn, thank you again for patience! Have a beautiful weekend!

    Best regards, Sejl

Related