Example secure bootloader UART not working

I am trying to get the example secure bootloader uart working on my nRF52832 development board but I am seeing a lot of TX errors on the RTT log output from the debug version of the bootloader. Thinking it might be related to flow control, I compiled my own version and disabled flow control but that didn't seem to resolve anything.

I captured a Saleae output which seems to show the nrfutil (version 6.1.6) is sending a single valid Ping request but the RTT log seems to indicate TWO Ping requests were processed for unknown reasons. I want to be able to trust my bootloader is going to work so I really need this to be reliable.

Can you please help provide any insights as to what might be going wrong?

Parents
  • I performed the programming steps you suggested and everything appears to be working. I then connect up RTT viewer to capture the debug output and also start my Saleae which is connected to pins P0.05 through P0.08 and then I launch the nrfutil as you suggested. What I observe is the nrfutil attempting to talk to the bootloader running on the dev board but several errors are raised in the RTT viewer and unexpected responses on the Saleae. Please review these two items and confirm you see that same results against your own dev board as I think the example application isn't working as expected.

  • Hi 

    Thanks for sharing the logs and traces. I shared them with one of the DFU experts in the group, and he had never seen anything quite like it, so this is not an issue we are familiar with. 

    Would you be able to try the precompiled version of the nrfutil library, and see if the results are the same? 
    You can download it here.

    Would you also be able to provide the output from nrfutil itself, in case it shows any errors?

    Best regards
    Torbjørn 

  • I apologize for the not including enough detail. Here is another attempt at clarifying the information.

    My goal was to prove out the secure bootloader UART implementation using the dev board. I often do this before porting solutions to my custom board.

    My environment is as follows:
    I am using Windows 10 on a Lenovo X1 Extreme laptop computer with the Windows Nordic nrfjprog and Python 3.10 version of nrfutil installed using pip.

    My hardware setup is pretty simple, connect a Micro USB cable to the dev board and erase the Nordic chip on the dev board and program it with two files using the nrfjprog command line utility: the secure bootloader uart hex example and mbr hex image. No application was programmed on the board to force it to enter secure DFU mode.

    As far as I can tell, most of the problem appears to be on the Nordic dev board as most of the errors I am observing appear to be problems in sending response messages back to the nrfutil running on the laptop. I suspect the errors are related to flow control but am not 100% sure.

    I connected a Saleae device to pins P0.05 through P0.08 (and GND) so I could monitor the RTS, RX, CTS, and TX lines during the process.

    Observations:

    1. Sometimes when I run things it seems that I am getting past the first couple of checks (ping, and DFU version check) but during the next step ping failures occur and the process fails. It isn't clear when or why this happens.

    2. I often see errors like this from the Python nrfutil but I think the real issue is the errors observed from the RTT log:
    nrfutil dfu serial -pkg blinky_mbr.zip -p COM15 -fc 0
    [------------------------------------] 0%
    Traceback (most recent call last):
    File "C:\Python310\Scripts\nrfutil-script.py", line 33, in <module>
    sys.exit(load_entry_point('nrfutil==6.1.6', 'console_scripts', 'nrfutil')())
    File "C:\Python310\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
    File "C:\Python310\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "C:\Python310\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 1073, in serial
    do_serial(package, port, connect_delay, flow_control, packet_receipt_notification, baud_rate, serial_number, True,
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 988, in do_serial
    dfu.dfu_send_images()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 214, in open
    raise NordicSemiException("No ping response after opening COM port")
    pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port

    OR

    nrfutil dfu serial -pkg blinky_mbr.zip -p COM15 -fc 0
    [------------------------------------] 0%
    Traceback (most recent call last):
    File "C:\Python310\Scripts\nrfutil-script.py", line 33, in <module>
    sys.exit(load_entry_point('nrfutil==6.1.6', 'console_scripts', 'nrfutil')())
    File "C:\Python310\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
    File "C:\Python310\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "C:\Python310\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 1073, in serial
    do_serial(package, port, connect_delay, flow_control, packet_receipt_notification, baud_rate, serial_number, True,
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 988, in do_serial
    dfu.dfu_send_images()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 216, in open
    self.__set_prn()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 360, in __set_prn
    self.__get_response(DfuTransportSerial.OP_CODE['SetPRN'])
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 491, in __get_response
    raise NordicSemiException('Unexpected Executed OP_CODE.\n' \
    pc_ble_driver_py.exceptions.NordicSemiException: Unexpected Executed OP_CODE.
    Expected: 0x02 Received: 0x09

    3. The RTT log errors typically look like this (I added some debug to identify the return code when failing to send response messages):

    <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.
    <info> app: Boot validation failed. No valid app to boot.
    <debug> app: DFU mode because app is not valid.
    <info> nrf_bootloader_wdt: WDT is not enabled
    <debug> app: in weak nrf_dfu_init_user
    <debug> app: timer_stop (0x20000060)
    <debug> app: timer_activate (0x20000060)
    <info> app: Entering DFU mode.
    <debug> app: Initializing transports (found: 1)
    <debug> nrf_dfu_serial_uart: serial_dfu_transport_init()
    <debug> nrf_dfu_serial_uart: serial_dfu_transport_init() completed
    <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    <debug> app: Enter main loop
    <debug> nrf_dfu_serial: Received ping 1
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PING
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_serial: Sending Response: [0x9, 0x1]
    <debug> nrf_dfu_serial: Received ping 1
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PING
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_serial: Sending Response: [0x9, 0x1]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PROTOCOL_VERSION
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_serial: Sending Response: [0x0, 0x1]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11

    4. Snippet of code change to show error being returned in the response_send function

    // Send response.
    ret_code_t ret = p_transport->rsp_func((uint8_t const *)(p_serialized_rsp), index);
    if (ret != NRF_SUCCESS)
    {
    NRF_LOG_ERROR("Failed to send data over serial interface! 0x%02X", ret);
    }

    5. Output from pre-compiled nrfutil specified:
    C:\Users\rlindeman\Downloads\nrfutil.exe dfu serial -pkg blinky_mbr.zip -p COM15 -fc 0
    [------------------------------------] 0%
    Traceback (most recent call last):
    File "nordicsemi\__main__.py", line 1555, in <module>
    File "click\core.py", line 1137, in __call__
    File "click\core.py", line 1062, in main
    File "click\core.py", line 1668, in invoke
    File "click\core.py", line 1668, in invoke
    File "click\core.py", line 1404, in invoke
    File "click\core.py", line 763, in invoke
    File "nordicsemi\__main__.py", line 1074, in serial
    File "nordicsemi\__main__.py", line 988, in do_serial
    File "nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    File "nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    File "nordicsemi\dfu\dfu_transport_serial.py", line 214, in open
    pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port
    [26504] Failed to execute script '__main__' due to unhandled exception!

    RTT viewer output (this is an example of getting past the first couple of checks but continuously failing during the sending of the firmware I think).

    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x63, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x63.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x63, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x64.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x64, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x64.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x64, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x65.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x65, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x65.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x65, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x66.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x66, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x66.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x66, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x67.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x67, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x67.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x67, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x68.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x68, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x68.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x68, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x69.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x69, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x69.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x69, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6A, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6A, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6B, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6B, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6C, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6C, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6D, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6D, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6E, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6E, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6F, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6F, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x70.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x70, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x70.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x70, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x71.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x71, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x71.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x71, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x72.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x72, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x72.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x72, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x73.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x73, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x73.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x73, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x74.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x74, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x74.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x74, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x75.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x75, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x75.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x75, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x76.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x76, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x76.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x76, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x77.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x77, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x77.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x77, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x78.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x78, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x78.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x78, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x79.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x79, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x79.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x79, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7A, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7A, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7B, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7B, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7C, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7C, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7D, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7D, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7E, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7E, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7F, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7F, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x80.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x80, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x80.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x80, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x81.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x81, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x81.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x81, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x82.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x82, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x82.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x82, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x83.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x83, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x83.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x83, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x84.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x84, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x84.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x84, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x85.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x85, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x85.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x85, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x86.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x86, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x86.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x86, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x87.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x87, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x87.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x87, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x88.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x88, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x88.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x88, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x89.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x89, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x89.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x89, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8A, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8A, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8B, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8B, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8C, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8C, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8D, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8D, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8E, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8E, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8F, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8F, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x90.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x90, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11

Reply
  • I apologize for the not including enough detail. Here is another attempt at clarifying the information.

    My goal was to prove out the secure bootloader UART implementation using the dev board. I often do this before porting solutions to my custom board.

    My environment is as follows:
    I am using Windows 10 on a Lenovo X1 Extreme laptop computer with the Windows Nordic nrfjprog and Python 3.10 version of nrfutil installed using pip.

    My hardware setup is pretty simple, connect a Micro USB cable to the dev board and erase the Nordic chip on the dev board and program it with two files using the nrfjprog command line utility: the secure bootloader uart hex example and mbr hex image. No application was programmed on the board to force it to enter secure DFU mode.

    As far as I can tell, most of the problem appears to be on the Nordic dev board as most of the errors I am observing appear to be problems in sending response messages back to the nrfutil running on the laptop. I suspect the errors are related to flow control but am not 100% sure.

    I connected a Saleae device to pins P0.05 through P0.08 (and GND) so I could monitor the RTS, RX, CTS, and TX lines during the process.

    Observations:

    1. Sometimes when I run things it seems that I am getting past the first couple of checks (ping, and DFU version check) but during the next step ping failures occur and the process fails. It isn't clear when or why this happens.

    2. I often see errors like this from the Python nrfutil but I think the real issue is the errors observed from the RTT log:
    nrfutil dfu serial -pkg blinky_mbr.zip -p COM15 -fc 0
    [------------------------------------] 0%
    Traceback (most recent call last):
    File "C:\Python310\Scripts\nrfutil-script.py", line 33, in <module>
    sys.exit(load_entry_point('nrfutil==6.1.6', 'console_scripts', 'nrfutil')())
    File "C:\Python310\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
    File "C:\Python310\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "C:\Python310\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 1073, in serial
    do_serial(package, port, connect_delay, flow_control, packet_receipt_notification, baud_rate, serial_number, True,
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 988, in do_serial
    dfu.dfu_send_images()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 214, in open
    raise NordicSemiException("No ping response after opening COM port")
    pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port

    OR

    nrfutil dfu serial -pkg blinky_mbr.zip -p COM15 -fc 0
    [------------------------------------] 0%
    Traceback (most recent call last):
    File "C:\Python310\Scripts\nrfutil-script.py", line 33, in <module>
    sys.exit(load_entry_point('nrfutil==6.1.6', 'console_scripts', 'nrfutil')())
    File "C:\Python310\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
    File "C:\Python310\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "C:\Python310\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "C:\Python310\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 1073, in serial
    do_serial(package, port, connect_delay, flow_control, packet_receipt_notification, baud_rate, serial_number, True,
    File "C:\Python310\lib\site-packages\nordicsemi\__main__.py", line 988, in do_serial
    dfu.dfu_send_images()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 216, in open
    self.__set_prn()
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 360, in __set_prn
    self.__get_response(DfuTransportSerial.OP_CODE['SetPRN'])
    File "C:\Python310\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 491, in __get_response
    raise NordicSemiException('Unexpected Executed OP_CODE.\n' \
    pc_ble_driver_py.exceptions.NordicSemiException: Unexpected Executed OP_CODE.
    Expected: 0x02 Received: 0x09

    3. The RTT log errors typically look like this (I added some debug to identify the return code when failing to send response messages):

    <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.
    <info> app: Boot validation failed. No valid app to boot.
    <debug> app: DFU mode because app is not valid.
    <info> nrf_bootloader_wdt: WDT is not enabled
    <debug> app: in weak nrf_dfu_init_user
    <debug> app: timer_stop (0x20000060)
    <debug> app: timer_activate (0x20000060)
    <info> app: Entering DFU mode.
    <debug> app: Initializing transports (found: 1)
    <debug> nrf_dfu_serial_uart: serial_dfu_transport_init()
    <debug> nrf_dfu_serial_uart: serial_dfu_transport_init() completed
    <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    <debug> app: Enter main loop
    <debug> nrf_dfu_serial: Received ping 1
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PING
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_serial: Sending Response: [0x9, 0x1]
    <debug> nrf_dfu_serial: Received ping 1
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PING
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_serial: Sending Response: [0x9, 0x1]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PROTOCOL_VERSION
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
    <debug> nrf_dfu_serial: Sending Response: [0x0, 0x1]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11

    4. Snippet of code change to show error being returned in the response_send function

    // Send response.
    ret_code_t ret = p_transport->rsp_func((uint8_t const *)(p_serialized_rsp), index);
    if (ret != NRF_SUCCESS)
    {
    NRF_LOG_ERROR("Failed to send data over serial interface! 0x%02X", ret);
    }

    5. Output from pre-compiled nrfutil specified:
    C:\Users\rlindeman\Downloads\nrfutil.exe dfu serial -pkg blinky_mbr.zip -p COM15 -fc 0
    [------------------------------------] 0%
    Traceback (most recent call last):
    File "nordicsemi\__main__.py", line 1555, in <module>
    File "click\core.py", line 1137, in __call__
    File "click\core.py", line 1062, in main
    File "click\core.py", line 1668, in invoke
    File "click\core.py", line 1668, in invoke
    File "click\core.py", line 1404, in invoke
    File "click\core.py", line 763, in invoke
    File "nordicsemi\__main__.py", line 1074, in serial
    File "nordicsemi\__main__.py", line 988, in do_serial
    File "nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    File "nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    File "nordicsemi\dfu\dfu_transport_serial.py", line 214, in open
    pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port
    [26504] Failed to execute script '__main__' due to unhandled exception!

    RTT viewer output (this is an example of getting past the first couple of checks but continuously failing during the sending of the firmware I think).

    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x63, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x63.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x63, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x64.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x64, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x64.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x64, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x65.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x65, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x65.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x65, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x66.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x66, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x66.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x66, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x67.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x67, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x67.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x67, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x68.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x68, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x68.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x68, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x69.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x69, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x69.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x69, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6A, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6A, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6B, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6B, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6C, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6C, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6D, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6D, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6E, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6E, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6F, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x6F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x6F, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x70.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x70, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x70.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x70, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x71.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x71, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x71.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x71, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x72.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x72, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x72.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x72, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x73.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x73, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x73.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x73, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x74.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x74, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x74.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x74, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x75.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x75, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x75.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x75, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x76.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x76, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x76.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x76, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x77.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x77, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x77.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x77, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x78.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x78, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x78.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x78, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x79.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x79, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x79.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x79, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7A, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7A, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7B, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7B, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7C, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7C, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7D, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7D, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7E, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7E, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7F, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x7F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x7F, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x80.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x80, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x80.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x80, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x81.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x81, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x81.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x81, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x82.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x82, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x82.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x82, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x83.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x83, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x83.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x83, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x84.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x84, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x84.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x84, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x85.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x85, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x85.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x85, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x86.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x86, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x86.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x86, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x87.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x87, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x87.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x87, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x88.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x88, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x88.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x88, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x89.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x89, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x89.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x89, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8A, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8A.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8A, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8B, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8B.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8B, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8C, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8C.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8C, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8D, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8D.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8D, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8E, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8E.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8E, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8F, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x8F.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x8F, 0x2]
    <info> nrf_dfu_serial_uart: Allocated buffer 2000171C
    <info> nrf_dfu_req_handler: Invalid opcode received: 0x90.
    <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x2
    <warning> nrf_dfu_serial: DFU request completed with result: 0x2
    <debug> nrf_dfu_serial: Sending Response: [0x90, 0x2]
    <error> nrf_dfu_serial: Failed to send data over serial interface! 0x11

Children
  • I have reviewed the salea traces and debug logs you provided, and what I find the most strange is that the opcode keeps being incremented as it if was counter. The valid opcode range is supposed from 0x0 to 0xC. I've not seen that before, and I would have expected to see more arbitrary values if there were data corruption. The salea traces also show the slip escape character (xC0) being sent correctly, it's just the opcode that appears to be wrong. 

    Could you please try to run nrfutil again with -vvvv to get more verbose logs from the PC side?

    Thanks,

    Vidar

Related