NRF52840 DFU APP+BL+SD error,DFU request 4 failed with error: 0xB.

hello

1.NRF52840 Upgrade APP+BL+SD  from SD15.3 to SD17.1.

2.BL use pca10056_s140_ble_debug,APP use ble_app_buttonless_dfu.

3.Program batch file.

nrfutil settings generate --application nRF5_SDK_15.3.0_59ac345/examples/ble_peripheral/ble_app_buttonless_dfu/pca10056/s140/arm5_no_packs/_build/nrf52840_xxaa.hex --family NRF52840 --application-version 0 --bootloader-version 0 --bl-settings-version 2 settings.hex
nrfjprog --eraseall -f NRF52
nrfjprog --program settings.hex --chiperase
nrfjprog --program bootloader_hex/bootloader_w_softdevice_nrf52840.hex
nrfjprog --program nRF5_SDK_15.3.0_59ac345/examples/ble_peripheral/ble_app_buttonless_dfu/pca10056/s140/arm5_no_packs/_build/nrf52840_xxaa.hex -r

4.DFU packag batch file.

nrfutil pkg generate --hw-version 52 --sd-req 0xB6,0x0100 --application-version 1 --application nRF5_SDK_17.1.0_ddde560/examples/ble_peripheral/ble_app_buttonless_dfu/pca10056/s140/arm5_no_packs/_build/nrf52840_xxaa.hex --softdevice nRF5_SDK_17.1.0_ddde560/components/softdevice/s140/hex/s140_nrf52_7.2.0_softdevice.hex --bootloader nRF5_SDK_17.1.0_ddde560/examples/dfu/secure_bootloader/pca10056_s140_ble_debug/arm5_no_packs/_build/nrf52840_xxaa_s140.hex --bootloader-version 1 --sd-id 0x0100 --key-file priv.pem dfu_15.3-17.1.zip.

5.Android APP nRD Connect DFU.

6.The RTT print error.


<debug> nrf_dfu_validation: 08 01 10 34 1A 02 80 02|...4....

<debug> nrf_dfu_validation: 20 00 28 00 30 00 38 84| .(.0.8.

<debug> nrf_dfu_validation: A4 03 42 24 08 03 12 20|..B$...

<debug> nrf_dfu_validation: 60 14 FA A9 4A D5 1E CE|`...J...

<debug> nrf_dfu_validation: E9 16 D8 8F A7 DE FC 41|.......A

<debug> nrf_dfu_validation: 12 32 92 3F CE 95 32 B8|.2.?..2.

<debug> nrf_dfu_validation: 08 25 48 60 4E 22 65 CA|.%H`N"e.

<debug> nrf_dfu_validation: 48 00 52 04 08 01 12 00|H.R.....

<debug> nrf_dfu_req_handler: Request handling complete. Result: 0xB

<warning> nrf_dfu_ble: DFU request 4 failed with error: 0xB.

Parents
  • Hi,

    Can you share a bit more of the RTT log? It could be that a relevant error was printed before the part you see here (similar to in this thread).

  • <info> app: Inside main-15.3
    
    <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 0xFE000.
    
    <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 GPREGRET.
    
    <info> nrf_bootloader_wdt: WDT is not enabled
    
    <debug> app: in weak nrf_dfu_init_user
    
    <debug> app: timer_stop (0x200057D4)
    
    <debug> app: timer_activate (0x200057D4)
    
    <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: 0x000F1000
    
    <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_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
    
    <debug> nrf_dfu_ble: Received BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST (request: 517, reply: 247).
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Set receipt notif
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> app: Shutting down transports (found: 1)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    
    <debug> app: timer_stop (0x200057D4)
    
    <debug> app: timer_activate (0x200057D4)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Buffer 0x20006D5C acquired, len 151 (244)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
    
    <debug> nrf_dfu_ble: Freeing buffer 0x20006D5C
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command)
    
    <debug> nrf_dfu_validation: PB: Init packet data len: 74
    
    <info> nrf_dfu_validation: Signature required. Checking signature.
    
    <info> nrf_dfu_validation: Calculating hash (len: 74)
    
    <info> nrf_dfu_validation: Verify signature
    
    <info> nrf_dfu_validation: Image verified
    
    <warning> nrf_dfu_ver_validation: Faulty HW version.
    
    <warning> nrf_dfu_validation: Prevalidation failed.
    
    <debug> nrf_dfu_validation: Init command:
    
    <debug> nrf_dfu_validation:  08 01 10 34 1A 04 80 02|...4....
    
    <debug> nrf_dfu_validation:  B6 01 20 03 28 B4 AC 09|.. .(...
    
    <debug> nrf_dfu_validation:  30 B4 A9 03 38 00 42 24|0...8.B$
    
    <debug> nrf_dfu_validation:  08 03 12 20 D1 F2 86 42|... ...B
    
    <debug> nrf_dfu_validation:  07 7E 2F D0 A3 9B 67 8E|.~/...g.
    
    <debug> nrf_dfu_validation:  D4 D2 12 39 DE BD 03 08|...9....
    
    <debug> nrf_dfu_validation:  A5 E8 84 11 1C 03 97 DD|........
    
    <debug> nrf_dfu_validation:  E0 BC 49 22 48 00 52 04|..I"H.R.
    
    <debug> nrf_dfu_validation:  08 01 12 00 52 04 08 01|....R...
    
    <debug> nrf_dfu_validation:  12 00                  |..      
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0xB
    
    <warning> nrf_dfu_ble: DFU request 4 failed with error: 0xB
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Set receipt notif
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> app: Shutting down transports (found: 1)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    
    <debug> app: timer_stop (0x200057D4)
    
    <debug> app: timer_activate (0x200057D4)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Buffer 0x20006D5C acquired, len 141 (244)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
    
    <debug> nrf_dfu_ble: Freeing buffer 0x20006D5C
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command)
    
    <debug> nrf_dfu_validation: PB: Init packet data len: 64
    
    <info> nrf_dfu_validation: Signature required. Checking signature.
    
    <info> nrf_dfu_validation: Calculating hash (len: 64)
    
    <info> nrf_dfu_validation: Verify signature
    
    <info> nrf_dfu_validation: Image verified
    
    <warning> nrf_dfu_ver_validation: Faulty HW version.
    
    <warning> nrf_dfu_validation: Prevalidation failed.
    
    <debug> nrf_dfu_validation: Init command:
    
    <debug> nrf_dfu_validation:  08 01 10 34 1A 02 80 02|...4....
    
    <debug> nrf_dfu_validation:  20 00 28 00 30 00 38 84| .(.0.8.
    
    <debug> nrf_dfu_validation:  A4 03 42 24 08 03 12 20|..B$... 
    
    <debug> nrf_dfu_validation:  60 14 FA A9 4A D5 1E CE|`...J...
    
    <debug> nrf_dfu_validation:  E9 16 D8 8F A7 DE FC 41|.......A
    
    <debug> nrf_dfu_validation:  12 32 92 3F CE 95 32 B8|.2.?..2.
    
    <debug> nrf_dfu_validation:  08 25 48 60 4E 22 65 CA|.%H`N"e.
    
    <debug> nrf_dfu_validation:  48 00 52 04 08 01 12 00|H.R.....
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0xB
    
    <warning> nrf_dfu_ble: DFU request 4 failed with error: 0xB
    
    <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
    
    <debug> nrf_dfu_ble: Advertising...
    

    After sending the upgrade package through nrf Connect, it stops at DFUTARG.

Reply
  • <info> app: Inside main-15.3
    
    <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 0xFE000.
    
    <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 GPREGRET.
    
    <info> nrf_bootloader_wdt: WDT is not enabled
    
    <debug> app: in weak nrf_dfu_init_user
    
    <debug> app: timer_stop (0x200057D4)
    
    <debug> app: timer_activate (0x200057D4)
    
    <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: 0x000F1000
    
    <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_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
    
    <debug> nrf_dfu_ble: Received BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST (request: 517, reply: 247).
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Set receipt notif
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> app: Shutting down transports (found: 1)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    
    <debug> app: timer_stop (0x200057D4)
    
    <debug> app: timer_activate (0x200057D4)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Buffer 0x20006D5C acquired, len 151 (244)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
    
    <debug> nrf_dfu_ble: Freeing buffer 0x20006D5C
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command)
    
    <debug> nrf_dfu_validation: PB: Init packet data len: 74
    
    <info> nrf_dfu_validation: Signature required. Checking signature.
    
    <info> nrf_dfu_validation: Calculating hash (len: 74)
    
    <info> nrf_dfu_validation: Verify signature
    
    <info> nrf_dfu_validation: Image verified
    
    <warning> nrf_dfu_ver_validation: Faulty HW version.
    
    <warning> nrf_dfu_validation: Prevalidation failed.
    
    <debug> nrf_dfu_validation: Init command:
    
    <debug> nrf_dfu_validation:  08 01 10 34 1A 04 80 02|...4....
    
    <debug> nrf_dfu_validation:  B6 01 20 03 28 B4 AC 09|.. .(...
    
    <debug> nrf_dfu_validation:  30 B4 A9 03 38 00 42 24|0...8.B$
    
    <debug> nrf_dfu_validation:  08 03 12 20 D1 F2 86 42|... ...B
    
    <debug> nrf_dfu_validation:  07 7E 2F D0 A3 9B 67 8E|.~/...g.
    
    <debug> nrf_dfu_validation:  D4 D2 12 39 DE BD 03 08|...9....
    
    <debug> nrf_dfu_validation:  A5 E8 84 11 1C 03 97 DD|........
    
    <debug> nrf_dfu_validation:  E0 BC 49 22 48 00 52 04|..I"H.R.
    
    <debug> nrf_dfu_validation:  08 01 12 00 52 04 08 01|....R...
    
    <debug> nrf_dfu_validation:  12 00                  |..      
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0xB
    
    <warning> nrf_dfu_ble: DFU request 4 failed with error: 0xB
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Set receipt notif
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> app: Shutting down transports (found: 1)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    
    <debug> app: timer_stop (0x200057D4)
    
    <debug> app: timer_activate (0x200057D4)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_ble: Buffer 0x20006D5C acquired, len 141 (244)
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
    
    <debug> nrf_dfu_ble: Freeing buffer 0x20006D5C
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (command)
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command)
    
    <debug> nrf_dfu_validation: PB: Init packet data len: 64
    
    <info> nrf_dfu_validation: Signature required. Checking signature.
    
    <info> nrf_dfu_validation: Calculating hash (len: 64)
    
    <info> nrf_dfu_validation: Verify signature
    
    <info> nrf_dfu_validation: Image verified
    
    <warning> nrf_dfu_ver_validation: Faulty HW version.
    
    <warning> nrf_dfu_validation: Prevalidation failed.
    
    <debug> nrf_dfu_validation: Init command:
    
    <debug> nrf_dfu_validation:  08 01 10 34 1A 02 80 02|...4....
    
    <debug> nrf_dfu_validation:  20 00 28 00 30 00 38 84| .(.0.8.
    
    <debug> nrf_dfu_validation:  A4 03 42 24 08 03 12 20|..B$... 
    
    <debug> nrf_dfu_validation:  60 14 FA A9 4A D5 1E CE|`...J...
    
    <debug> nrf_dfu_validation:  E9 16 D8 8F A7 DE FC 41|.......A
    
    <debug> nrf_dfu_validation:  12 32 92 3F CE 95 32 B8|.2.?..2.
    
    <debug> nrf_dfu_validation:  08 25 48 60 4E 22 65 CA|.%H`N"e.
    
    <debug> nrf_dfu_validation:  48 00 52 04 08 01 12 00|H.R.....
    
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0xB
    
    <warning> nrf_dfu_ble: DFU request 4 failed with error: 0xB
    
    <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
    
    <debug> nrf_dfu_ble: Advertising...
    

    After sending the upgrade package through nrf Connect, it stops at DFUTARG.

Children
No Data
Related