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

Buttonless DFU with bond not working

Hi,

I'm struggling to get Buttonless DFU with bond enabled working.

Setup details:

1) SDK 14.2

2) DK board - nrf52832

3) nrfconnect app on Android phone (8.0) :

DFU settings = Pkts receipt notification procedure : ON

Number of packets : 10

MBR : 4096

Keep bond information: ON

External MCU DFU : OFF

4) Custom app with bond enabled, BLE_GAP_ADDR_TYPE_RANDOM_STATIC(C1:C1:C1:C1:C1:C1), MITM enabled,

Followed the steps to generate bootloader keys and everything seems to be fine. Flashed SD, BL, APP onto DK board and I can see the app running.

Connected nrfconnect to my custom app, paired succesfully. I can see secure DFU service with Secure buttonless DFU.

After enabling the indication, I write value "0x01" and send to switch to DFU mode. I see device moved to DFU mode but with BD addr = EA:F8:73:D2:B8:CC.

Connected nrfconnect to DfuTarg and if I try to DFU, I think device switches to my custom app and I don't see DFU happening any more.

I'm wondering what would be wrong and I believe encryption fails due to different BD address used in DFU and app mode. What am I missing?

Tried looking into Nordic blogs, dev support but could not move forward. Also, I tried to see the DFU NRF log but I don't see any log messages

All I see on power ON is

<info> µ˜°: Setting vector table to bootloader: 0x00066000
<info> µ˜°: Setting vector table to main app: 0x00023000
<info> µ˜°: Record ID:    0x0001
<info> µ˜°: File ID:    0xF020
<info> µ˜°: Record key:    0x7010

I did used \nRF5_SDK_14.2.0_17b948a\examples\dfu\bootloader_secure_ble\pca10040_debug\armgcc\Makefile with logger enabled and optimization is -O0 in makefile. I'm not sure DFU logger does not show up in RTT viewer.

Attached are the config,make files for reference.

Your help is highly appreciated.

dfu.rarapp.rar

Parents
  • The full Log messages in app while moving to DFU mode are below

    <info> µ˜°: Setting vector table to bootloader: 0x00066000
    <info> µ˜°: Setting vector table to main app: 0x00023000
    <info> µ˜°: Power strip initialisation done.
    <info> µ˜°: Connected
    <info> µ˜°: Connection secured: role: 1, conn_handle: 0x0, procedure: 0.
    <info> µ˜°: Disconnected
    <info> µ˜°: Connected
    <info> µ˜°: Disconnected
    <info> µ˜°: Connected
    <info> µ˜°: Connection secured: role: 1, conn_handle: 0x0, procedure: 1.
    <info> µ˜°: Received indication state 1
    <error> µ˜°: Request to enter bootloader mode failed asynchroneously.
    <info> µ˜°: Writing peer data to the bootloader
    <info> µ˜°: ---------------system attribute table: 8--------------
    <info> µ˜°: BD address type : 0
    <info> µ˜°: BD address : 0xF4
    <info> µ˜°: BD address : 0xAE
    <info> µ˜°: BD address : 0x1F
    <info> µ˜°: BD address : 0xA6
    <info> µ˜°: BD address : 0xB4
    <info> µ˜°: BD address : 0x88
    <info> µ˜°: Set peer data request accepted
    <info> µ˜°: Device is preparing to enter bootloader mode.
    <info> µ˜°: Device will enter bootloader mode.
    <info> µ˜°: Setting vector table to bootloader: 0x00066000
    <info> µ˜°: Setting vector table to main app: 0x00023000
    <info> µ˜°: Power strip initialisation done.

Reply
  • The full Log messages in app while moving to DFU mode are below

    <info> µ˜°: Setting vector table to bootloader: 0x00066000
    <info> µ˜°: Setting vector table to main app: 0x00023000
    <info> µ˜°: Power strip initialisation done.
    <info> µ˜°: Connected
    <info> µ˜°: Connection secured: role: 1, conn_handle: 0x0, procedure: 0.
    <info> µ˜°: Disconnected
    <info> µ˜°: Connected
    <info> µ˜°: Disconnected
    <info> µ˜°: Connected
    <info> µ˜°: Connection secured: role: 1, conn_handle: 0x0, procedure: 1.
    <info> µ˜°: Received indication state 1
    <error> µ˜°: Request to enter bootloader mode failed asynchroneously.
    <info> µ˜°: Writing peer data to the bootloader
    <info> µ˜°: ---------------system attribute table: 8--------------
    <info> µ˜°: BD address type : 0
    <info> µ˜°: BD address : 0xF4
    <info> µ˜°: BD address : 0xAE
    <info> µ˜°: BD address : 0x1F
    <info> µ˜°: BD address : 0xA6
    <info> µ˜°: BD address : 0xB4
    <info> µ˜°: BD address : 0x88
    <info> µ˜°: Set peer data request accepted
    <info> µ˜°: Device is preparing to enter bootloader mode.
    <info> µ˜°: Device will enter bootloader mode.
    <info> µ˜°: Setting vector table to bootloader: 0x00066000
    <info> µ˜°: Setting vector table to main app: 0x00023000
    <info> µ˜°: Power strip initialisation done.

Children
No Data
Related