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

Can not reprogram board after attempting to use DFU

I was attempting to implement the secure bootloader example on my custom board (nrf52832) and it failed, so I have been trying to reprogram the board with our normal application using j-link and SES ver 5.42b. It fails when it attempts to flash the softdevice. I get the same error if I try to use nrfjprog. I have tried using the recover command in nrfjprog along with just trying to program the software but I get a write verify failed. At this point I have run out of things to try.

Parents Reply Children
  • Hi Marcus,

    Yes the new link works but the still the same problem... anyway I am going to close this ticket out and set this board aside and just chalk it up as a anomaly. I've grabbed another board and I am able to successfully program the secure bootloader, though I modified by using my own public_key.c. But when I use the nRFConnect App to program the Application, i get an error on the nRFConnect saying "240 bytes were sent but only 200 bytes were received" and it seems like it quits. Should i open another ticket or still use this one. 

  • Marcus,

    Not sure if this will help but here is the debug output from the board during the upgrade process

    debug> app: timer_stop (0x20005984)
     app:  nrf_dfu_ble: Configuring BLE stack.
     nrf_dfu_ble: Enabling the BLE stack.
     nrf_dfu_ble: No advertising name found
     nrf_dfu_ble: Using default advertising name
     nrf_dfu_ble: Advertising...
     nrf_dfu_ble: BLE DFU transport initialized.
     nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
     nrf_dfu_validation: PB: Init packet data len: 73
     app: Enter main loop
     nrf_dfu_ble: Connected
     nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
     nrf_dfu_ble: max_conn_interval: 12
     nrf_dfu_ble: min_conn_interval: 12
     nrf_dfu_ble: slave_latency: 0
     nrf_dfu_ble: conn_sup_timeout: 600
     nrf_dfu_ble: Received BLE_GAP_EVT_PHY_UPDATE_REQUEST.
     nrf_dfu_ble: Received BLE_GAP_EVT_PHY_UPDATE (RX:2, TX:2, status:0)
     nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST.
     nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE (27, max_rx_time 2120).
     nrf_dfu_ble: Received BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST (request: 293, reply: 23).
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command)
     nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
     nrf_dfu_settings: Backing up settings page to address 0x7E000.
     nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
     nrf_dfu_req_handler: Writing valid init command to flash.
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_ble: Set receipt notif
     nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (data)
     nrf_dfu_req_handler: crc = 0x0, offset = 0x0, max_size = 0x1000
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data)
     nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x00026000, len=1 pages), queue usage: 0
     nrf_dfu_req_handler: Creating object with size: 4096. Offset: 0x00000000, CRC: 0x00000000
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_flash: Flash erase success: addr=0x00026000, pending 0
     nrf_dfu_ble: Buffer 0x2000675C acquired, len 20 (20)
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_ble: Buffer 0x20006770 acquired, len 20 (20)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026000, src=0x2000675C, len=20 bytes), queue usage: 0
     nrf_dfu_ble: Buffer 0x20006784 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006798 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006798 acquired, len 20 (20)
    =0x2000675C, len=20 bytes), queue usage: 0
     nrf_dfu_ble: Buffer 0x20006784 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006798 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067AC acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067C0 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067D4 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067E8 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067FC acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006810 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006824 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006838 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006784 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006798 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067AC acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067C0 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067D4 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067E8 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x200067FC acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006810 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006824 acquired, len 20 (20)
     nrf_dfu_ble: Buffer 0x20006838 acquired, len 20 (20)
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: Flash write success: addr=0x00026000, pending 0
     nrf_dfu_ble: Freeing buffer 0x2000675C
     nrf_dfu_flash: Flash write success: addr=0x00026000, pending 0
     nrf_dfu_ble: Freeing buffer 0x2000675C
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026014, src=0x20006770, len=20 bytes), queue usage: 0
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026028, src=0x20006784, len=20 bytes), queue usage: 1
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x0002603C, src=0x20006798, len=20 bytes), queue usage: 2
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026050, src=0x200067AC, len=20 bytes), queue usage: 3
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026064, src=0x200067C0, len=20 bytes), queue usage: 4
     nrf_dfu_flash: nrf_fstorage_write() failed with error 0x4.
     nrf_dfu_ble: Freeing buffer 0x200067C0
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026064, src=0x200067D4, len=20 bytes), queue usage: 4
     nrf_dfu_flash: nrf_fstorage_write() failed with error 0x4.
     nrf_dfu_ble: Freeing buffer 0x200067D4
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: Flash write success: addr=0x00026014, pending 3
     nrf_dfu_ble: Freeing buffer 0x20006770
     nrf_dfu_flash: Flash write success: addr=0x00026028, pending 2
     nrf_dfu_ble: Freeing buffer 0x20006784
     nrf_dfu_flash: Flash write success: addr=0x0002603C, pending 1
     nrf_dfu_ble: Freeing buffer 0x20006798
     nrf_dfu_ble: Freeing buffer 0x20006798
    =0x0002603C, pen nrf_dfu_flash: Flash write success: addr=0x00026050, pending 0
     nrf_dfu_ble: Freeing buffer 0x200067AC
     nrf_dfu_flash: Flash write success: addr=0x00026014, pending 3
     nrf_dfu_ble: Freeing buffer 0x20006770
     nrf_dfu_flash: Flash write success: addr=0x00026028, pending 2
     nrf_dfu_ble: Freeing buffer 0x20006784
     nrf_dfu_flash: Flash write success: addr=0x0002603C, pending 1
     nrf_dfu_ble: Freeing buffer 0x20006798
     nrf_dfu_flash: Flash write success: addr=0x00026050, pending 0
     nrf_dfu_ble: Freeing buffer 0x200067AC
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026064, src=0x200067E8, len=20 bytes), queue usage: 0
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x00026078, src=0x200067FC, len=20 bytes), queue usage: 1
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x0002608C, src=0x20006810, len=20 bytes), queue usage: 2
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x000260A0, src=0x20006824, len=20 bytes), queue usage: 3
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
     nrf_dfu_flash: nrf_fstorage_write(addr=0x000260B4, src=0x20006838, len=20 bytes), queue usage: 4
     nrf_dfu_flash: nrf_fstorage_write() failed with error 0x4.
     nrf_dfu_ble: Freeing buffer 0x20006838
     nrf_dfu_req_handler: Request handling complete. Result: 0x1
     nrf_dfu_flash: Flash write success: addr=0x00026064, pending 3
     nrf_dfu_ble: Freeing buffer 0x200067E8
     nrf_dfu_flash: Flash write success: addr=0x00026078, pending 2
     nrf_dfu_ble: Freeing buffer 0x200067FC
     nrf_dfu_flash: Flash write success: addr=0x0002608C, pending 1
     nrf_dfu_ble: Freeing buffer 0x20006810
     nrf_dfu_flash: Flash write success: addr=0x000260A0, pending 0
     nrf_dfu_ble: Freeing buffer 0x20006824
     app: timer_stop (0x20005984)
     app: timer_fire (0x20005984)
     app: Inactivity timeout.
     nrf_dfu_ble: Enabling SoftDevice.
     nrf_dfu_ble: Configuring BLE stack.
     nrf_dfu_ble: Enabling the BLE stack.
     nrf_dfu_ble: No advertising name found
     nrf_dfu_ble: Using default advertising name
     nrf_dfu_ble: Advertising...
     nrf_dfu_ble: BLE DFU transport initialized.
     nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
     nrf_dfu_validation: PB: Init packet data len: 73
     app: Enter main loop
     app: timer_stop (0x20005984)
     nrf_dfu_ble: BLE DFU transport initialized.
     nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
     nrf_dfu_validation: PB: Init packet data len: 73
     app: Enter main loop
  • Marcus,

    We can definitely close this ticket out as I figured out what was wrong with the bootloader not working

    Thanks for everything

Related