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

DFU test failure

Hi

  I have tried to run DFU example from SDK 15.0.0_a53641a.

  I also use nRF Connect v2.5.0 to update firmware. 

  I flashed Soft device and secure_bootloader( examples/dfu/secure_bootloader).

  Then, I made a connection using nRF connect.

   And I tried to update firmware(ble_app_buttonless_dfu_without_bonds_s132.zip) in secure_dfu_test_images)

   But, Whenever I tried to run DFU, I met the error as below

Do I miss something? I have no idea what I need to do.

 I also attach the log from nRF connect. 

 Thanks,

 

2018-10-17T18_58_33.483Z-log.txt

  • Hi,

    It looks like you have done everything correctly, but the log indicates that the signature may be invalid. Please try to follow these steps and see if you get the same error

    1. Program secure_bootloader_ble_s132_pca10040_debug.hex. E.g. nrfjprog --program secure_bootloader_ble_s132_pca10040_debug --chiperase -r

    2. Then upload this package in nRF connect:  ble_app_buttonless_dfu_without_bonds_s132.zip

  • Hi,

    Thanks for respond.

      I tested with files you provided.

      But, I still have same issue.

      Log files is attached.

    Thanks,

     

      

    5670.2018-10-18T14_07_53.465Z-log.txt

  • Hi,

    Are you still seeing this issue. The problem seems to be intermittent, I managed to reproduce it last week, but not now. Could you try to erase the connectivity device (nrfjprog -e) and let nrf connect re-program it, then check if you still get the same error. Also, can you provide the RTT log output from the DFU target (log is enabled in pre-compiled .hex)?

    Note that you can do DFU with nrf connect on android/ios as well. 

      

  • Hi,

      Yes, I still get the same error. But, I tried with mobile application as you mentioned.

       It looks that updating firmware is successful.

     

       RTT logs are attached from both case( using nrf connect on windows and on mobile application) 

       By the way, nRF52840-Preview-DK board is used for connectivity device.

    Thanks,

       

    00> <debug> app: In nrf_bootloader_init
    00> <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
    00> <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    00> <warning> nrf_dfu_settings: Resetting bootloader settings since neither the settings page nor the backup are valid (CRC error).
    00> <debug> nrf_dfu_settings: Writing settings...
    00> <debug> nrf_dfu_settings: Erasing old settings at: 0x0007F000
    00> <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0007F000, len=1 pages), queue usage: 0
    00> <debug> nrf_dfu_flash: Flash erase success: addr=0x0007F000, pending 0
    00> <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0007F000, src=0x20006D88, len=440 bytes), queue usage: 1
    00> <debug> nrf_dfu_flash: Flash write success: addr=0x0007F000, pending 0
    00> <debug> app: Enter nrf_bootloader_fw_activate
    00> <info> app: No firmware to activate.
    00> <debug> app: Enter nrf_dfu_app_is_valid
    00> <debug> app: No valid app to boot.
    00> <debug> app: DFU mode because app is not valid.
    00> <info> nrf_bootloader_wdt: WDT is not enabled
    00> <debug> app: in weak nrf_dfu_init_user
    00> <debug> app: timer_stop (0x200057D0)
    00> <debug> app: timer_activate (0x200057D0)
    00> <info> app: Entering DFU mode.
    00> <debug> app: Initializing transports (found: 1)
    00> <debug> nrf_dfu_ble: Initializing BLE DFU transport
    00> <debug> nrf_dfu_ble: Setting up vector table: 0x00072000
    00> <debug> nrf_dfu_ble: Enabling SoftDevice.
    00> <debug> nrf_dfu_ble: Configuring BLE stack.
    00> <debug> nrf_dfu_ble: Enabling the BLE stack.
    00> <debug> nrf_dfu_ble: No advertising name found
    00> <debug> nrf_dfu_ble: Using default advertising name
    00> <debug> nrf_dfu_ble: Advertising...
    00> <debug> nrf_dfu_ble: BLE DFU transport initialized.
    00> <debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
    00> <debug> app: Enter main loop
    00> <debug> nrf_dfu_ble: Connected
    00> <debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
    00> <debug> nrf_dfu_ble: max_conn_interval: 12
    00> <debug> nrf_dfu_ble: min_conn_interval: 12
    00> <debug> nrf_dfu_ble: slave_latency: 0
    00> <debug> nrf_dfu_ble: conn_sup_timeout: 600
    00> <debug> nrf_dfu_ble: Finished handling conn sec update
    00> <debug> nrf_dfu_ble: Set receipt notif
    00> <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
    00> <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    00> <debug> nrf_dfu_ble: Received BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST (request: 247, reply: 247).
    00> <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
    00> <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    00> <debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST.
    00> <debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE (251, max_rx_time 2120).
    00> <debug> app: Shutting down transports (found: 1)
    00> <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    00> <debug> app: timer_stop (0x200057D0)
    00> <debug> app: timer_activate (0x200057D0)
    00> <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    00> <debug> app: Shutting down transports (found: 1)
    00> <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    00> <debug> app: timer_stop (0x200057D0)
    00> <debug> app: timer_activate (0x200057D0)
    00> <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    00> <debug> app: Shutting down transports (found: 1)
    00> <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
    00> <debug> app: timer_stop (0x200057D0)
    00> <debug> app: timer_activate (0x200057D0)
    00> <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    00> <debug> nrf_dfu_ble: Advertising...
    00> <debug> app: timer_stop (0x200057D0)
    00> <debug> app: timer_fire (0x200057D0)
    00> <info> app: Inactivity timeout.
    00> <debug> app: Resetting bootloader.
    00> <info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
    00> <debug> nrf_dfu_settings: Writing settings...
    00> <debug> nrf_dfu_settings: Erasing old settings at: 0x0007E000
    00> <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0007E000, len=1 pages), queue usage: 1
    00> <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0007E000, src=0x20006F40, len=440 bytes), queue usage: 2
    00> <debug> nrf_dfu_flash: Flash erase success: addr=0x0007E000, pending 2
    00> <debug> nrf_dfu_flash: Flash write success: addr=0x0007E000, pending 1
    00> <info> app: Inside main
    00> <debug> app: In nrf_bootloader_init
    00> <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
    00> <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    00> <debug> nrf_dfu_settings: Settings OK
    00> <debug> app: Enter nrf_bootloader_fw_activate
    00> <info> app: No firmware to activate.
    00> <debug> app: Enter nrf_dfu_app_is_valid
    00> <debug> app: No valid app to boot.
    00> <debug> app: DFU mode because app is not valid.
    00> <info> nrf_bootloader_wdt: WDT is not enabled
    00> <debug> app: in weak nrf_dfu_init_user
    00> <debug> app: timer_stop (0x200057D0)
    00> <debug> app: timer_activate (0x200057D0)
    00> <info> app: Entering DFU mode.
    00> <debug> app: Initializing transports (found: 1)
    00> <debug> nrf_dfu_ble: Initializing BLE DFU transport
    00> <debug> nrf_dfu_ble: Setting up vector table: 0x00072000
    00> <debug> nrf_dfu_ble: Enabling SoftDevice.
    00> <debug> nrf_dfu_ble: Configuring BLE stack.
    00> <debug> nrf_dfu_ble: Enabling the BLE stack.
    00> <debug> nrf_dfu_ble: No advertising name found
    00> <debug> nrf_dfu_ble: Using default advertising name
    00> <debug> nrf_dfu_ble: Advertising...
    00> <debug> nrf_dfu_ble: BLE DFU transport initialized.
    00> <debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
    00> <debug> app: Enter main loop
    rtt_log_20181022_galaxys7_success.txt

  • Hi, 

    Thanks for the log, it seems to confirm the problem is on the nRFconnect/connectivity side. Can you provide the board version number for your PDK? It's printed on the sticker on the interface MCU (e.g., pca10056 v.11.0). Also, do you have another development kit/dongle that you can try with? 

Related