How to merge DFU application into ble_app_uart ?

Hi, I'm developing an application based on ble_app_uart, and integrate FOTA is the last feature.
I'm using sdk16, S140, nRF52833. I plan update firmware over BLE, so I have followed some guide such as thread, thread
I try to run example secure_bootloader s140_debug and it work on my custom board

But now I don't know where I start. I have experience merge saadc, pwm, libuarte into ble_app_uart, so adding libraries is not my problem. DFU is quite complicated
1. I need to change some config like bootloader's flash address, flash_placement.xml, sdk config, linker or somethings....?
2. I have 2 option DFU =>  buttonless or button which example should I follow to reference
3. What is important step may I miss ?

So, first please give me some link, advise to start with DFU integrated into ble_app_uart ? Where I should start ? what are configurations ?
Thank u so much
Best regard !

Parents
  • Hi Rocklee, 

    As Martin already pointed out. You don't integrate the bootloader into your application. It's a separated piece of code that execute before the application. 

    What you may want to integrate as far as I understand is on how to enter DFU bootloder. 

    You can do this by a button. For example you hold a button and reset the chip it will enter DFU mode. If you choose to do this, you don't need to implement anything in your application. The bootloader by default will check for the button if it's pressed it will not boot to the application and instead stay in bootloader mode. 

    If you choose to do buttonless mode to enter DFU. What you need to implement is the DFU buttonless service into your application. So in addition to your application's service you have an extra service which allow the app to receive a write command from the peer device via Bluetooth to enter DFU mode. 

    Please have a look at the ble_app_buttonless_dfu example to see how it's implemented. 

  • Hi, Mr Hung
    I tried your guide and my nRF connect for mobile phone toast that "Application has been sent successfully". In my new firmware I used ble_app_uart include features blink led and "ble_app_uart" ble device name, but new firmware seem didn't updated to my nRF. DFUTARG still display instead on new BLE name of new firmware I have just updated, led not blink. I'll try to increase version of application, change public, private key but it still not work./

    I tried with secure_bootloade debug version and here is my debug terminal

    <debug> nrf_dfu_ble: Freeing buffer 0x20005808
    <debug> nrf_dfu_flash: Flash write success: addr=0x00044D58, pending 2
    <debug> nrf_dfu_ble: Freeing buffer 0x20005714
    <debug> nrf_dfu_flash: Flash write success: addr=0x00044E4C, pending 1
    <debug> nrf_dfu_ble: Freeing buffer 0x2000609C
    <debug> nrf_dfu_flash: Flash write success: addr=0x00044F40, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x00045000, len=1 pages), queue usage: 0
    <debug> nrf_dfu_req_handler: Creating object with size: 4096. Offset: 0x0000D000, CRC: 0xA872F362
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash erase success: addr=0x00045000, pending 0
    <debug> nrf_dfu_ble: Buffer 0x2000552C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045000, src=0x2000552C, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045000, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_ble: Buffer 0x2000552C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000450F4, src=0x2000552C, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000609C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000451E8, src=0x2000609C, len=244 bytes), queue usage: 1
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005714 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000452DC, src=0x20005714, len=244 bytes), queue usage: 2
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005808 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000453D0, src=0x20005808, len=244 bytes), queue usage: 3
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000454C4, src=0x20005AE4, len=244 bytes), queue usage: 4
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005620 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000455B8, src=0x20005620, len=244 bytes), queue usage: 5
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200059F0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000456AC, src=0x200059F0, len=244 bytes), queue usage: 6
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000450F4, pending 6
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_ble: Buffer 0x2000552C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000457A0, src=0x2000552C, len=244 bytes), queue usage: 6
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005BD8 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045894, src=0x20005BD8, len=244 bytes), queue usage: 7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005CCC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045988, src=0x20005CCC, len=244 bytes), queue usage: 8
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000451E8, pending 8
    <debug> nrf_dfu_ble: Freeing buffer 0x2000609C
    <debug> nrf_dfu_ble: Buffer 0x2000609C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045A7C, src=0x2000609C, len=244 bytes), queue usage: 8
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200058FC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045B70, src=0x200058FC, len=244 bytes), queue usage: 9
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000452DC, pending 9
    <debug> nrf_dfu_ble: Freeing buffer 0x20005714
    <debug> nrf_dfu_ble: Buffer 0x20005714 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045C64, src=0x20005714, len=244 bytes), queue usage: 9
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005FA8 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045D58, src=0x20005FA8, len=244 bytes), queue usage: 10
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005DC0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045E4C, src=0x20005DC0, len=244 bytes), queue usage: 11
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005438 acquired, len 192 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00045F40, src=0x20005438, len=192 bytes), queue usage: 12
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000453D0, pending 12
    <debug> nrf_dfu_ble: Freeing buffer 0x20005808
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)
    <debug> nrf_dfu_req_handler: Offset:57344, CRC:0xC9895DCE
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000454C4, pending 11
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_flash: Flash write success: addr=0x000455B8, pending 10
    <debug> nrf_dfu_ble: Freeing buffer 0x20005620
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)
    <debug> app: timer_stop (0x20002B04)
    <debug> app: timer_activate (0x20002B04)
    <debug> nrf_dfu_flash: Flash write success: addr=0x000456AC, pending 9
    <debug> nrf_dfu_ble: Freeing buffer 0x200059F0
    <debug> nrf_dfu_flash: Flash write success: addr=0x000457A0, pending 8
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045894, pending 7
    <debug> nrf_dfu_ble: Freeing buffer 0x20005BD8
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045988, pending 6
    <debug> nrf_dfu_ble: Freeing buffer 0x20005CCC
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045A7C, pending 5
    <debug> nrf_dfu_ble: Freeing buffer 0x2000609C
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045B70, pending 4
    <debug> nrf_dfu_ble: Freeing buffer 0x200058FC
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045C64, pending 3
    <debug> nrf_dfu_ble: Freeing buffer 0x20005714
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045D58, pending 2
    <debug> nrf_dfu_ble: Freeing buffer 0x20005FA8
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045E4C, pending 1
    <debug> nrf_dfu_ble: Freeing buffer 0x20005DC0
    <debug> nrf_dfu_flash: Flash write success: addr=0x00045F40, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x20005438
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x00046000, len=1 pages), queue usage: 0
    <debug> nrf_dfu_req_handler: Creating object with size: 4096. Offset: 0x0000E000, CRC: 0xC9895DCE
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash erase success: addr=0x00046000, pending 0
    <debug> nrf_dfu_ble: Buffer 0x20005438 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046000, src=0x20005438, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046000, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x20005438
    <debug> nrf_dfu_ble: Buffer 0x20005438 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000460F4, src=0x20005438, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005DC0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000461E8, src=0x20005DC0, len=244 bytes), queue usage: 1
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005FA8 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000462DC, src=0x20005FA8, len=244 bytes), queue usage: 2
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005714 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000463D0, src=0x20005714, len=244 bytes), queue usage: 3
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200058FC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000464C4, src=0x200058FC, len=244 bytes), queue usage: 4
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000609C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000465B8, src=0x2000609C, len=244 bytes), queue usage: 5
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005CCC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000466AC, src=0x20005CCC, len=244 bytes), queue usage: 6
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005BD8 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000467A0, src=0x20005BD8, len=244 bytes), queue usage: 7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000460F4, pending 7
    <debug> nrf_dfu_ble: Freeing buffer 0x20005438
    <debug> nrf_dfu_ble: Buffer 0x20005438 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046894, src=0x20005438, len=244 bytes), queue usage: 7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000552C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046988, src=0x2000552C, len=244 bytes), queue usage: 8
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200059F0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046A7C, src=0x200059F0, len=244 bytes), queue usage: 9
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005620 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046B70, src=0x20005620, len=244 bytes), queue usage: 10
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000461E8, pending 10
    <debug> nrf_dfu_ble: Freeing buffer 0x20005DC0
    <debug> nrf_dfu_ble: Buffer 0x20005DC0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046C64, src=0x20005DC0, len=244 bytes), queue usage: 10
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046D58, src=0x20005AE4, len=244 bytes), queue usage: 11
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005808 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046E4C, src=0x20005808, len=244 bytes), queue usage: 12
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005EB4 acquired, len 192 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00046F40, src=0x20005EB4, len=192 bytes), queue usage: 13
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000462DC, pending 13
    0x1
    ding 12
    ding 11
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)
    <debug> app: timer_stop (0x20002B04)
    <debug> app: timer_activate (0x20002B04)
    <debug> nrf_dfu_flash: Flash write success: addr=0x000465B8, pending 10
    <debug> nrf_dfu_ble: Freeing buffer 0x2000609C
    <debug> nrf_dfu_flash: Flash write success: addr=0x000466AC, pending 9
    <debug> nrf_dfu_ble: Freeing buffer 0x20005CCC
    <debug> nrf_dfu_flash: Flash write success: addr=0x000467A0, pending 8
    <debug> nrf_dfu_ble: Freeing buffer 0x20005BD8
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046894, pending 7
    <debug> nrf_dfu_ble: Freeing buffer 0x20005438
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046988, pending 6
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046A7C, pending 5
    <debug> nrf_dfu_ble: Freeing buffer 0x200059F0
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046B70, pending 4
    <debug> nrf_dfu_ble: Freeing buffer 0x20005620
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046C64, pending 3
    <debug> nrf_dfu_ble: Freeing buffer 0x20005DC0
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046D58, pending 2
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046E4C, pending 1
    <debug> nrf_dfu_ble: Freeing buffer 0x20005808
    <debug> nrf_dfu_flash: Flash write success: addr=0x00046F40, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x20005EB4
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x00047000, len=1 pages), queue usage: 0
    <debug> nrf_dfu_req_handler: Creating object with size: 4096. Offset: 0x0000F000, CRC: 0xE6494178
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash erase success: addr=0x00047000, pending 0
    <debug> nrf_dfu_ble: Buffer 0x20005EB4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047000, src=0x20005EB4, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047000, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x20005EB4
    <debug> nrf_dfu_ble: Buffer 0x20005EB4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000470F4, src=0x20005EB4, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005808 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000471E8, src=0x20005808, len=244 bytes), queue usage: 1
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000472DC, src=0x20005AE4, len=244 bytes), queue usage: 2
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005DC0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000473D0, src=0x20005DC0, len=244 bytes), queue usage: 3
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005620 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000474C4, src=0x20005620, len=244 bytes), queue usage: 4
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200059F0 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000475B8, src=0x200059F0, len=244 bytes), queue usage: 5
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000552C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000476AC, src=0x2000552C, len=244 bytes), queue usage: 6
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000470F4, pending 6
    <debug> nrf_dfu_ble: Freeing buffer 0x20005EB4
    <debug> nrf_dfu_ble: Buffer 0x20005EB4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000477A0, src=0x20005EB4, len=244 bytes), queue usage: 6
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005438 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047894, src=0x20005438, len=244 bytes), queue usage: 7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005BD8 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047988, src=0x20005BD8, len=244 bytes), queue usage: 8
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005CCC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047A7C, src=0x20005CCC, len=244 bytes), queue usage: 9
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000471E8, pending 9
    <debug> nrf_dfu_ble: Freeing buffer 0x20005808
    <debug> nrf_dfu_ble: Buffer 0x20005808 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047B70, src=0x20005808, len=244 bytes), queue usage: 9
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000609C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047C64, src=0x2000609C, len=244 bytes), queue usage: 10
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200058FC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047D58, src=0x200058FC, len=244 bytes), queue usage: 11
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005714 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047E4C, src=0x20005714, len=244 bytes), queue usage: 12
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000472DC, pending 12
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 192 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00047F40, src=0x20005AE4, len=192 bytes), queue usage: 12
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)
    <debug> nrf_dfu_req_handler: Offset:65536, CRC:0xB26383F7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000473D0, pending 12
    <debug> nrf_dfu_ble: Freeing buffer 0x20005DC0
    <debug> nrf_dfu_flash: Flash write success: addr=0x000474C4, pending 11
    <debug> nrf_dfu_ble: Freeing buffer 0x20005620
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)
    <debug> app: timer_stop (0x20002B04)
    <debug> app: timer_activate (0x20002B04)
    <debug> nrf_dfu_flash: Flash write success: addr=0x000475B8, pending 10
    <debug> nrf_dfu_ble: Freeing buffer 0x200059F0
    <debug> nrf_dfu_flash: Flash write success: addr=0x000476AC, pending 9
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_flash: Flash write success: addr=0x000477A0, pending 8
    <debug> nrf_dfu_ble: Freeing buffer 0x20005EB4
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047894, pending 7
    <debug> nrf_dfu_ble: Freeing buffer 0x20005438
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047988, pending 6
    <debug> nrf_dfu_ble: Freeing buffer 0x20005BD8
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047A7C, pending 5
    <debug> nrf_dfu_ble: Freeing buffer 0x20005CCC
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047B70, pending 4
    <debug> nrf_dfu_ble: Freeing buffer 0x20005808
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047C64, pending 3
    <debug> nrf_dfu_ble: Freeing buffer 0x2000609C
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047D58, pending 2
    <debug> nrf_dfu_ble: Freeing buffer 0x200058FC
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047E4C, pending 1
    <debug> nrf_dfu_ble: Freeing buffer 0x20005714
    <debug> nrf_dfu_flash: Flash write success: addr=0x00047F40, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x00048000, len=1 pages), queue usage: 0
    <debug> nrf_dfu_req_handler: Creating object with size: 2860. Offset: 0x00010000, CRC: 0xB26383F7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash erase success: addr=0x00048000, pending 0
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00048000, src=0x20005AE4, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x00048000, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000480F4, src=0x20005AE4, len=244 bytes), queue usage: 0
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005714 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000481E8, src=0x20005714, len=244 bytes), queue usage: 1
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x200058FC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000482DC, src=0x200058FC, len=244 bytes), queue usage: 2
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000609C acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000483D0, src=0x2000609C, len=244 bytes), queue usage: 3
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005808 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000484C4, src=0x20005808, len=244 bytes), queue usage: 4
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005CCC acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000485B8, src=0x20005CCC, len=244 bytes), queue usage: 5
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005BD8 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000486AC, src=0x20005BD8, len=244 bytes), queue usage: 6
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005438 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000487A0, src=0x20005438, len=244 bytes), queue usage: 7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000480F4, pending 7
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_ble: Buffer 0x20005AE4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00048894, src=0x20005AE4, len=244 bytes), queue usage: 7
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x20005EB4 acquired, len 244 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00048988, src=0x20005EB4, len=244 bytes), queue usage: 8
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_ble: Buffer 0x2000552C acquired, len 176 (244)
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00048A7C, src=0x2000552C, len=176 bytes), queue usage: 9
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)
    <debug> nrf_dfu_req_handler: Offset:68396, CRC:0xC7B37D73
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash write success: addr=0x000481E8, pending 9
    <debug> nrf_dfu_ble: Freeing buffer 0x20005714
    <debug> nrf_dfu_flash: Flash write success: addr=0x000482DC, pending 8
    <debug> nrf_dfu_ble: Freeing buffer 0x200058FC
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)
    <debug> app: timer_stop (0x20002B04)
    <debug> app: timer_activate (0x20002B04)
    <debug> nrf_dfu_flash: Flash write success: addr=0x000483D0, pending 7
    <debug> nrf_dfu_ble: Freeing buffer 0x2000609C
    <debug> nrf_dfu_flash: Flash write success: addr=0x000484C4, pending 6
    <debug> nrf_dfu_ble: Freeing buffer 0x20005808
    <debug> nrf_dfu_flash: Flash write success: addr=0x000485B8, pending 5
    <debug> nrf_dfu_ble: Freeing buffer 0x20005CCC
    <debug> nrf_dfu_flash: Flash write success: addr=0x000486AC, pending 4
    <debug> nrf_dfu_ble: Freeing buffer 0x20005BD8
    <debug> nrf_dfu_flash: Flash write success: addr=0x000487A0, pending 3
    <debug> nrf_dfu_ble: Freeing buffer 0x20005438
    <debug> nrf_dfu_flash: Flash write success: addr=0x00048894, pending 2
    <debug> nrf_dfu_ble: Freeing buffer 0x20005AE4
    <debug> nrf_dfu_flash: Flash write success: addr=0x00048988, pending 1
    <debug> nrf_dfu_ble: Freeing buffer 0x20005EB4
    <debug> nrf_dfu_flash: Flash write success: addr=0x00048A7C, pending 0
    <debug> nrf_dfu_ble: Freeing buffer 0x2000552C
    <debug> nrf_dfu_req_handler: Whole firmware image received. Postvalidating.
    <debug> nrf_dfu_validation: Hash verification. start address: 0x38000, size: 0x10B2C
    <debug> nrf_dfu_validation: Invalidating old application in bank 0.
    <debug> nrf_dfu_settings: Writing settings...
    <debug> nrf_dfu_settings: Erasing old settings at: 0x0007F000
    <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0007F000, len=1 pages), queue usage: 0
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0007F000, src=0x20006854, len=896 bytes), queue usage: 1
    <info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
    <debug> nrf_dfu_settings: Writing settings...
    <debug> nrf_dfu_settings: Erasing old settings at: 0x0007E000
    <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0007E000, len=1 pages), queue usage: 2
    <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0007E000, src=0x200064D4, len=896 bytes), queue usage: 3
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_flash: Flash erase success: addr=0x0007F000, pending 3
    <debug> nrf_dfu_flash: Flash write success: addr=0x0007F000, pending 2
    <debug> nrf_dfu_flash: Flash erase success: addr=0x0007E000, pending 1
    <info> app: Inside main
    <debug> app: In nrf_bootloader_init
    <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
    <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    <debug> nrf_dfu_settings: Using settings page.
    <debug> nrf_dfu_settings: Copying forbidden parts from backup page.
    <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    <info> app: Inside main
    <debug> app: In nrf_bootloader_init
    <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
    <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    <debug> nrf_dfu_settings: Using settings page.
    <debug> nrf_dfu_settings: Copying forbidden parts from backup page.
    <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    <info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
    <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    <debug> app: Enter nrf_bootloader_fw_activate
    <info> app: No firmware to activate.
    <debug> app: App is valid
    <debug> app: DFU mode requested via button.
    <info> nrf_bootloader_wdt: WDT is not enabled
    <debug> app: in weak nrf_dfu_init_user
    <debug> app: timer_stop (0x20002B04)
    <debug> app: timer_activate (0x20002B04)
    <info> app: Entering DFU mode.
    <debug> app: Initializing transports (found: 1)
    <debug> nrf_dfu_ble: Initializing BLE DFU transport
    <debug> nrf_dfu_ble: Setting up vector table: 0x00072000
    <debug> nrf_dfu_ble: Enabling SoftDevice.
    <debug> nrf_dfu_ble: Configuring BLE stack.
    <debug> nrf_dfu_ble: Enabling the BLE stack.
    <debug> nrf_dfu_ble: No advertising name found
    <debug> nrf_dfu_ble: Using default advertising name
    <debug> nrf_dfu_ble: Advertising...
    <debug> nrf_dfu_ble: BLE DFU transport initialized.
    <debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
    <debug> app: Enter main loop
    <debug> nrf_dfu_ble: Connected
    <debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST.
    <debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE (27, max_rx_time 328).
    <debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
    <debug> nrf_dfu_ble: max_conn_interval: 12
    <debug> nrf_dfu_ble: min_conn_interval: 12
    <debug> nrf_dfu_ble: slave_latency: 0
    <debug> nrf_dfu_ble: conn_sup_timeout: 600
    <debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
    <debug> nrf_dfu_ble: max_conn_interval: 6
    <debug> nrf_dfu_ble: min_conn_interval: 6
    <debug> nrf_dfu_ble: slave_latency: 0
    <debug> nrf_dfu_ble: conn_sup_timeout: 500
    <debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
    <debug> nrf_dfu_ble: max_conn_interval: 12
    <debug> nrf_dfu_ble: min_conn_interval: 12
    <debug> nrf_dfu_ble: slave_latency: 0
    <debug> nrf_dfu_ble: conn_sup_timeout: 600
    

  • the problem was solved
    disable NRF_BL_DFU_ENTER_METHOD_BUTTON 0 in sdk_config.h ^^

  • Hi Rocklee, 
    The configuration NRF_BL_DFU_ENTER_METHOD_BUTTON enable the feature that the bootloader can be entered by holding a button when booting. In your case, there could be a chance that the GPIO pin NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN (P0.16) is already active on your board. 
    Change NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN to 0 will disable this feature. 
    Note that this feature is very useful if the application failed to run, that you can still recover the device by hold a button and reset the board to enter DFU mode. 

Reply
  • Hi Rocklee, 
    The configuration NRF_BL_DFU_ENTER_METHOD_BUTTON enable the feature that the bootloader can be entered by holding a button when booting. In your case, there could be a chance that the GPIO pin NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN (P0.16) is already active on your board. 
    Change NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN to 0 will disable this feature. 
    Note that this feature is very useful if the application failed to run, that you can still recover the device by hold a button and reset the board to enter DFU mode. 

Children
  • Hi, Hung Bui
    I got it thank for your reply

    1. So I have an problem when trying to merge my application with buttonless
    After adding library and include file, I can run the buttonless example (by replace main.c of my application by button_less) and it worked ok. But when I use main.c that merged buttonless and my application but it not worked. 
    I followed this tutorial 
    What step I may missed ? My main application only NUS service to transfer uart data. Not bonding

    2. If i use buttonless, can I use the button that defined in bootloader sdk_cofig.h to enter DFU mode ? 

  • Hi Rocklee,

    1. I'm not familiar with the tutorial that you used as it's not from us. But basically what you need to do is to add the DFU buttonless service into the application. And then handle the call back from the service. You may need to increase the number of vendor specific UUID in sdk_config.h. 
    If you application doesn't work you need to debug it and check what exactly doesn't work. 

    2. The feature to enter DFU mode is implemented on the bootloader, not on the application, so it's doesn't matter if you use buttonless or not. 

Related