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

nrfutil dfu ble timeout

I'm attempting to use nrfutil with a nRF52 DK to perform dfu over BLE. The command I'm using and the result I get is:

% nrfjprog --eraseall                                       
Erasing user available code and UICR flash areas.
Applying system reset.
% nrfutil dfu ble -ic NRF52 -pkg app_dfu_package_1_1.0.0.zip
No target selected. Default device name: DfuTarg is used.
Please select connectivity serial port:
	0 : /dev/tty.usbmodem0006821181671 - 000682118167
Enter your choice: : 0

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/bin/nrfutil", line 11, in <module>
    load_entry_point('nrfutil==6.1.0', 'console_scripts', 'nrfutil')()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1197, in ble
    dfu.dfu_send_images()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 115, in dfu_send_images
    self._dfu_send_image(self.manifest.softdevice_bootloader)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 473, in open
    self.dfu_adapter.open()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 103, in open
    self.adapter.driver.open()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_driver.py", line 103, in wrapper
    raise NordicSemiException(
pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: NRF_ERROR_TIMEOUT

This is with the latest nrfutil 6.1.0, on windows or mac, the result is the same.

Parents
  • Hi, 

    Try to add -f into the command to flash the connectivity FW as

    nrfutil dfu ble -ic NRF52 -f -pkg app_dfu_package_1_1.0.0.zip

    -Amanda H.

  • Ok it would be good if the error suggested that.

    Now I have another error:

    % nrfutil dfu ble -ic NRF52 -f -pkg app_dfu_package_1_1.0.0.zip
    No target selected. Default device name: DfuTarg is used.
    Please select connectivity serial port:
    	0 : /dev/tty.usbmodem0006821181671 - 000682118167
    Enter your choice: : 0
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_driver.py", line 2851, in __init__
        snr = [d.serial_number for d in serial_ports if d.port == serial_port][0]
    IndexError: list index out of range
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.8/bin/nrfutil", line 11, in <module>
        load_entry_point('nrfutil==6.1.0', 'console_scripts', 'nrfutil')()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
        return self.main(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
        rv = self.invoke(ctx)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
        return callback(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1159, in ble
        flasher = Flasher(serial_port=port, snr=jlink_snr)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_driver.py", line 2853, in __init__
        raise NordicSemiException("Board not found: {}".format(serial_port or snr))
    pc_ble_driver_py.exceptions.NordicSemiException: Board not found: /dev/tty.usbmodem0006821181671

    edit: this only occurs on macos, it worked on windows.

  • No, this results in the same error even after reboot

  • After disabling, unplugging, reconnecting and retrying I get the same error. I think this is probably a bug in nrfutil.

  • Please try the following command and provide the log if it cannot work. 

    nrfutil dfu ble -ic NRF52 -pkg app_dfu_package_1_1.0.0.zip -f -snr 000682118167

    -Amanda H.

  • This gets further, it connects to the device, but encounters another error.

    nrfutil dfu ble -ic NRF52 -pkg package.zip  -f -snr 000682118167 --name "AirTurn D96D"
    Board already flashed with connectivity firmware.
    
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.8/bin/nrfutil", line 11, in <module>
        load_entry_point('nrfutil==6.1.0', 'console_scripts', 'nrfutil')()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
        return self.main(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
        rv = self.invoke(ctx)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
        return callback(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1197, in ble
        dfu.dfu_send_images()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 115, in dfu_send_images
        self._dfu_send_image(self.manifest.softdevice_bootloader)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
        self.dfu_transport.open()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 477, in open
        self.__set_prn()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 583, in __set_prn
        self.dfu_adapter.write_control_point([DfuTransportBle.OP_CODE['SetPRN']] + list(struct.pack('<H', self.prn)))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 347, in write_control_point
        self.adapter.write_req(self.conn_handle, DFUAdapter.CP_UUID, data)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_driver.py", line 101, in wrapper
        err_code = wrapped(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_adapter.py", line 489, in write_req
        return result["status"]
    TypeError: 'NoneType' object is not subscriptable

Reply
  • This gets further, it connects to the device, but encounters another error.

    nrfutil dfu ble -ic NRF52 -pkg package.zip  -f -snr 000682118167 --name "AirTurn D96D"
    Board already flashed with connectivity firmware.
    
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.8/bin/nrfutil", line 11, in <module>
        load_entry_point('nrfutil==6.1.0', 'console_scripts', 'nrfutil')()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
        return self.main(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
        rv = self.invoke(ctx)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
        return callback(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1197, in ble
        dfu.dfu_send_images()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 115, in dfu_send_images
        self._dfu_send_image(self.manifest.softdevice_bootloader)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
        self.dfu_transport.open()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 477, in open
        self.__set_prn()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 583, in __set_prn
        self.dfu_adapter.write_control_point([DfuTransportBle.OP_CODE['SetPRN']] + list(struct.pack('<H', self.prn)))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 347, in write_control_point
        self.adapter.write_req(self.conn_handle, DFUAdapter.CP_UUID, data)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_driver.py", line 101, in wrapper
        err_code = wrapped(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_adapter.py", line 489, in write_req
        return result["status"]
    TypeError: 'NoneType' object is not subscriptable

Children
  • Hi Nick, 

    It would be nice if you could run the command with verbose log level and provide the log again. Thanks. 

    nrfutil -vvvv dfu ble -ic NRF52 -pkg app_dfu_package_1_1.0.0.zip -f -snr 000682118167

    -Amanda H.

  • nrfutil -vvvv dfu ble -ic NRF52 -pkg output/3.0.0-b.3_release_BT500S6_BL_SD_APP.zip  -f -snr 000682118167 --name "AirTurn D96D"
    Board already flashed with connectivity firmware.
    2021-01-25 16:43:19,012 Using connectivity board at serial port: /dev/tty.usbmodem0006821181671
    2021-01-25 16:43:19,021 Sending SoftDevice+Bootloader image.
    2021-01-25 16:43:22,438 Successfully opened /dev/tty.usbmodem0006821181671. Baud rate: 1000000. Flow control: none. Parity: none.
    2021-01-25 16:43:22,438 evt> severity(20) message(Successfully opened /dev/tty.usbmodem0006821181671. Baud rate: 1000000. Flow control: none. Parity: none.)
    2021-01-25 16:43:22,438 RpcAppStatus.resetPerformed: Target Reset performed
    2021-01-25 16:43:22,438 evt> status code(RpcAppStatus.resetPerformed) message(Target Reset performed)
    2021-01-25 16:43:23,653 RpcAppStatus.connectionActive: Connection active
    2021-01-25 16:43:23,653 evt> status code(RpcAppStatus.connectionActive) message(Connection active)
    2021-01-25 16:43:23,661 BLE: Scanning for AirTurn D96D
    2021-01-25 16:43:23,674 evt> adv_report conn(65535)
     peer_addr(35:36:A1:32:EA:52)
     rssi(-59)
     adv_type(BLEGapAdvType.non_connectable_undirected)
    2021-01-25 16:43:23,675 Received advertisement report, address: 0x3536A132EA52, device_name: 
    2021-01-25 16:43:23,676 evt> adv_report conn(65535)
     peer_addr(46:B8:5F:F1:9B:8D)
     rssi(-70)
     adv_type(BLEGapAdvType.connectable_undirected)
    2021-01-25 16:43:23,676 Received advertisement report, address: 0x46B85FF19B8D, device_name: 
    2021-01-25 16:43:23,677 evt> adv_report conn(65535)
     peer_addr(46:B8:5F:F1:9B:8D)
     rssi(-70)
     adv_type(None)
    2021-01-25 16:43:23,677 Received advertisement report, address: 0x46B85FF19B8D, device_name: 
    2021-01-25 16:43:23,678 evt> adv_report conn(65535)
     peer_addr(E6:21:97:15:02:0F)
     rssi(-33)
     adv_type(BLEGapAdvType.connectable_undirected)
    2021-01-25 16:43:23,678 Received advertisement report, address: 0xE6219715020F, device_name: AirTurn D96D
    2021-01-25 16:43:23,679 BLE: Found target advertiser, address: 0xE6219715020F, name: AirTurn D96D
    2021-01-25 16:43:23,679 BLE: Connecting to 0xE6219715020F
    2021-01-25 16:43:23,679 Unknown address type: {self.addr_type)
    2021-01-25 16:43:23,680 evt> adv_report conn(65535)
     peer_addr(E6:21:97:15:02:0F)
     rssi(-32)
     adv_type(None)
    2021-01-25 16:43:23,680 Received advertisement report, address: 0xE6219715020F, device_name: 
    2021-01-25 16:43:23,680 BLE: Found target advertiser, address: 0xE6219715020F, name: 
    2021-01-25 16:43:23,680 BLE: Connecting to 0xE6219715020F
    2021-01-25 16:43:23,709 BLE: Connected to [230, 33, 151, 21, 2, 15]
    2021-01-25 16:43:23,710 evt> conn_param_update_request conn(0)
     conn_params(
      min_conn_interval_ms(15.0)
      max_conn_interval_ms(15.0)
      slave_latency(0))
    2021-01-25 16:43:23,710 evt> conn_param_update_request conn(0)
     conn_params(
      min_conn_interval_ms(15.0)
      max_conn_interval_ms(15.0)
      slave_latency(0))
    2021-01-25 16:43:24,710 Successfully Connected
    2021-01-25 16:43:24,710 BLE: Service Discovery
    2021-01-25 16:43:24,761 evt> on_gattc_evt_prim_srvc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Service uuid(0x1800) start handle(1) end handle(9)
     Service uuid(0x1801) start handle(10) end handle(13)
     Service uuid(0xFE59) start handle(14) end handle(19)
    2021-01-25 16:43:24,820 evt> on_gattc_evt_prim_srvc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Service uuid(0x180A) start handle(20) end handle(65535)
    2021-01-25 16:43:24,881 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A00) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=1, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(2) value handle(3)
     Characteristic uuid(0x2A01) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(4) value handle(5)
     Characteristic uuid(0x2A04) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(6) value handle(7)
    2021-01-25 16:43:24,940 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2AA6) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(8) value handle(9)
    2021-01-25 16:43:25,000 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-25 16:43:25,060 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A00) handle(3)
    2021-01-25 16:43:25,120 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A01) handle(5)
    2021-01-25 16:43:25,180 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A04) handle(7)
    2021-01-25 16:43:25,240 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2AA6) handle(9)
    2021-01-25 16:43:25,300 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A05) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=0, write=0, notify=0, indicate=1, auth_signed_wr=0)) declaration handle(11) value handle(12)
    2021-01-25 16:43:25,360 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-25 16:43:25,420 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A05) handle(12)
     Descriptor uuid(0x2902 (Standard.cccd)) handle(13)
    2021-01-25 16:43:25,481 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x0002) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=1, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(15) value handle(16)
    2021-01-25 16:43:25,541 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x0001) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=0, write=1, notify=1, indicate=0, auth_signed_wr=0)) declaration handle(17) value handle(18)
    2021-01-25 16:43:25,600 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-25 16:43:25,661 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x0002) handle(16)
    2021-01-25 16:43:25,721 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x0001) handle(18)
    2021-01-25 16:43:25,780 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2902 (Standard.cccd)) handle(19)
    2021-01-25 16:43:25,841 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A29) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(21) value handle(22)
     Characteristic uuid(0x2A24) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(23) value handle(24)
     Characteristic uuid(0x2A25) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(25) value handle(26)
    2021-01-25 16:43:25,900 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A27) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(27) value handle(28)
    2021-01-25 16:43:25,959 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-25 16:43:26,020 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A29) handle(22)
    2021-01-25 16:43:26,080 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A24) handle(24)
    2021-01-25 16:43:26,140 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A25) handle(26)
    2021-01-25 16:43:26,200 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A27) handle(28)
    2021-01-25 16:43:26,260 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-25 16:43:26,260 BLE: Enabling longer ATT MTUs
    2021-01-25 16:43:26,320 ATT MTU exchanged: conn_handle=0 att_mtu=247
    2021-01-25 16:43:26,320 New ATT MTU is 247
    2021-01-25 16:43:26,320 BLE: Enabling longer Data Length
    2021-01-25 16:43:26,440 New Data Length is 251
    2021-01-25 16:43:26,440 BLE: Enabling Notifications
    2021-01-25 16:43:26,500 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(19)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-25 16:43:26,500 BLE: Set Packet Receipt Notification 0
    2021-01-25 16:43:26,560 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-25 16:43:26,561 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 2, 1])
    2021-01-25 16:43:26,561 Sending init packet...
    2021-01-25 16:43:26,561 BLE: Selecting Object: type:1
    2021-01-25 16:43:26,620 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-25 16:43:26,621 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 6, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
    2021-01-25 16:43:26,621 BLE: Object selected: max_size:512 offset:0 crc:0
    2021-01-25 16:43:26,680 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-25 16:43:26,681 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 1, 1])
    2021-01-25 16:43:26,681 BLE: Streaming Data: len:151 offset:0 crc:0x00000000
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.8/bin/nrfutil", line 11, in <module>
    2021-01-25 16:43:28,499 RpcAppStatus.pktSendError: Error sending packet to target. Code: 0x802a
    2021-01-25 16:43:28,499 evt> status code(RpcAppStatus.pktSendError) message(Error sending packet to target. Code: 0x802a)
        load_entry_point('nrfutil==6.1.0', 'console_scripts', 'nrfutil')()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
        return self.main(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
        rv = self.invoke(ctx)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
        return callback(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1199, in ble
        dfu.dfu_send_images()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 115, in dfu_send_images
        self._dfu_send_image(self.manifest.softdevice_bootloader)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 95, in _dfu_send_image
        self.dfu_transport.send_init_packet(data)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 524, in send_init_packet
        self.__stream_data(data=init_packet)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 642, in __stream_data
        self.dfu_adapter.write_data_point(list(to_transmit))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 350, in write_data_point
        self.adapter.write_cmd(self.conn_handle, DFUAdapter.DP_UUID, data)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_adapter.py", line 568, in write_cmd
        raise e
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_adapter.py", line 554, in write_cmd
        response = self.driver.ble_gattc_write(conn_handle, write_params)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pc_ble_driver_py/ble_driver.py", line 103, in wrapper
        raise NordicSemiException(
    pc_ble_driver_py.exceptions.NordicSemiException: Failed to ble_gattc_write. Error code: NRF_ERROR_SD_RPC_NO_RESPONSE
    

    The receiving bootloader is from 17.0.2 SDK, and works with the DFU libraries on Android and iOS.

  • Could you try to disable MSD in the Jlink driver and test again? You can follow this instruction: https://docs.zephyrproject.org/1.12.0/tools/nordic_segger.html#disabling-the-mass-storage-device-functionality

    We have a similar case here and here that you may want to have a look.

    -Amanda H.

  • Thanks. It now works if I use a DFU zip only containing an App. But if the zip also contains BL and SD which don't have higher versions, it fails with an error instead of skipping these like the DFU libraries do. I can't see an option to control this behaviour. This and the need to specify the serial number seem like bugs.

     % nrfutil -vvvv dfu ble -ic NRF52 -pkg output/3.0.0-b.3_release_BT500S6_BL_SD_APP.zip  -f -snr 000682118167 --name "AirTurn D96D"
    Board already flashed with connectivity firmware.
    2021-01-26 12:40:13,382 Using connectivity board at serial port: /dev/tty.usbmodem0006821181671
    2021-01-26 12:40:13,386 Sending SoftDevice+Bootloader image.
    2021-01-26 12:40:16,795 Successfully opened /dev/tty.usbmodem0006821181671. Baud rate: 1000000. Flow control: none. Parity: none.
    2021-01-26 12:40:16,796 evt> severity(20) message(Successfully opened /dev/tty.usbmodem0006821181671. Baud rate: 1000000. Flow control: none. Parity: none.)
    2021-01-26 12:40:16,796 RpcAppStatus.resetPerformed: Target Reset performed
    2021-01-26 12:40:16,796 evt> status code(RpcAppStatus.resetPerformed) message(Target Reset performed)
    2021-01-26 12:40:18,000 RpcAppStatus.connectionActive: Connection active
    2021-01-26 12:40:18,001 evt> status code(RpcAppStatus.connectionActive) message(Connection active)
    2021-01-26 12:40:18,007 BLE: Scanning for AirTurn D96D
    2021-01-26 12:40:18,019 evt> adv_report conn(65535)
     peer_addr(E6:21:97:15:02:0F)
     rssi(-31)
     adv_type(BLEGapAdvType.connectable_undirected)
    2021-01-26 12:40:18,019 Received advertisement report, address: 0xE6219715020F, device_name: AirTurn D96D
    2021-01-26 12:40:18,019 BLE: Found target advertiser, address: 0xE6219715020F, name: AirTurn D96D
    2021-01-26 12:40:18,019 BLE: Connecting to 0xE6219715020F
    2021-01-26 12:40:18,019 Unknown address type: {self.addr_type)
    2021-01-26 12:40:18,021 evt> adv_report conn(65535)
     peer_addr(E6:21:97:15:02:0F)
     rssi(-30)
     adv_type(None)
    2021-01-26 12:40:18,022 Received advertisement report, address: 0xE6219715020F, device_name: 
    2021-01-26 12:40:18,022 BLE: Found target advertiser, address: 0xE6219715020F, name: 
    2021-01-26 12:40:18,022 BLE: Connecting to 0xE6219715020F
    2021-01-26 12:40:18,055 BLE: Connected to [230, 33, 151, 21, 2, 15]
    2021-01-26 12:40:18,056 evt> conn_param_update_request conn(0)
     conn_params(
      min_conn_interval_ms(15.0)
      max_conn_interval_ms(15.0)
      slave_latency(0))
    2021-01-26 12:40:18,056 evt> conn_param_update_request conn(0)
     conn_params(
      min_conn_interval_ms(15.0)
      max_conn_interval_ms(15.0)
      slave_latency(0))
    2021-01-26 12:40:19,057 Successfully Connected
    2021-01-26 12:40:19,057 BLE: Service Discovery
    2021-01-26 12:40:19,106 evt> on_gattc_evt_prim_srvc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Service uuid(0x1800) start handle(1) end handle(9)
     Service uuid(0x1801) start handle(10) end handle(13)
     Service uuid(0xFE59) start handle(14) end handle(19)
    2021-01-26 12:40:19,166 evt> on_gattc_evt_prim_srvc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Service uuid(0x180A) start handle(20) end handle(65535)
    2021-01-26 12:40:19,227 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A00) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=1, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(2) value handle(3)
     Characteristic uuid(0x2A01) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(4) value handle(5)
     Characteristic uuid(0x2A04) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(6) value handle(7)
    2021-01-26 12:40:19,286 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2AA6) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(8) value handle(9)
    2021-01-26 12:40:19,346 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-26 12:40:19,406 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A00) handle(3)
    2021-01-26 12:40:19,466 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A01) handle(5)
    2021-01-26 12:40:19,526 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A04) handle(7)
    2021-01-26 12:40:19,586 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2AA6) handle(9)
    2021-01-26 12:40:19,646 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A05) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=0, write=0, notify=0, indicate=1, auth_signed_wr=0)) declaration handle(11) value handle(12)
    2021-01-26 12:40:19,706 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-26 12:40:19,766 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A05) handle(12)
     Descriptor uuid(0x2902 (Standard.cccd)) handle(13)
    2021-01-26 12:40:19,826 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x0002) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=1, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(15) value handle(16)
    2021-01-26 12:40:19,886 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x0001) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=0, write=1, notify=1, indicate=0, auth_signed_wr=0)) declaration handle(17) value handle(18)
    2021-01-26 12:40:19,946 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-26 12:40:20,006 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x0002) handle(16)
    2021-01-26 12:40:20,066 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x0001) handle(18)
    2021-01-26 12:40:20,126 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2902 (Standard.cccd)) handle(19)
    2021-01-26 12:40:20,186 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A29) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(21) value handle(22)
     Characteristic uuid(0x2A24) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(23) value handle(24)
     Characteristic uuid(0x2A25) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(25) value handle(26)
    2021-01-26 12:40:20,246 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Characteristic uuid(0x2A27) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(27) value handle(28)
    2021-01-26 12:40:20,306 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-26 12:40:20,366 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A29) handle(22)
    2021-01-26 12:40:20,426 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A24) handle(24)
    2021-01-26 12:40:20,486 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A25) handle(26)
    2021-01-26 12:40:20,546 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0)
     Descriptor uuid(0x2A27) handle(28)
    2021-01-26 12:40:20,606 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
     
    2021-01-26 12:40:20,606 BLE: Enabling longer ATT MTUs
    2021-01-26 12:40:20,666 ATT MTU exchanged: conn_handle=0 att_mtu=247
    2021-01-26 12:40:20,666 New ATT MTU is 247
    2021-01-26 12:40:20,667 BLE: Enabling longer Data Length
    2021-01-26 12:40:20,786 New Data Length is 251
    2021-01-26 12:40:20,786 BLE: Enabling Notifications
    2021-01-26 12:40:20,846 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(19)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-26 12:40:20,846 BLE: Set Packet Receipt Notification 0
    2021-01-26 12:40:20,906 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-26 12:40:20,907 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 2, 1])
    2021-01-26 12:40:20,907 Sending init packet...
    2021-01-26 12:40:20,908 BLE: Selecting Object: type:1
    2021-01-26 12:40:20,966 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-26 12:40:20,967 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 6, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
    2021-01-26 12:40:20,967 BLE: Object selected: max_size:512 offset:0 crc:0
    2021-01-26 12:40:21,026 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-26 12:40:21,027 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 1, 1])
    2021-01-26 12:40:21,027 BLE: Streaming Data: len:151 offset:0 crc:0x00000000
    2021-01-26 12:40:21,031 Call ble_gattc_write: response(None) write_params(Write Params write_op(BLEGattWriteOperation.write_cmd) flags(BLEGattExecWriteFlag.prepared_cancel) handle(16) offset(0) data([18, 148, 1, 10, 78, 8, 1, 18, 74, 8, 2, 16, 52, 26, 4, 129, 2, 183, 1, 32, 3, 40, 236, 146, 9, 48, 176, 202, 1, 56, 0, 66, 36, 8, 3, 18, 32, 93, 60, 58, 188, 99, 232, 117, 234, 69, 89, 31, 247, 86, 172, 52, 16, 199, 174, 103, 94, 114, 242, 166, 121, 95, 72, 161, 240, 51, 7, 224, 180, 72, 0, 82, 4, 8, 0, 18, 0, 82, 4, 8, 1, 18, 0, 16, 0, 26, 64, 115, 14, 195, 115, 98, 246, 234, 157, 226, 50, 189, 205, 81, 74, 3, 92, 139, 245, 59, 59, 239, 233, 216, 45, 199, 233, 48, 108, 139, 134, 57, 105, 74, 66, 244, 253, 176, 190, 140, 178, 211, 135, 21, 48, 109, 152, 94, 2, 119, 58, 238, 19, 16, 48, 33, 93, 90, 189, 52, 205, 70, 142, 0, 217]))
    2021-01-26 12:40:21,057 evt> gattc_evt_write_cmd_tx_complete conn(0)
     count(1)
    2021-01-26 12:40:21,116 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-26 12:40:21,117 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 3, 1, 151, 0, 0, 0, 120, 75, 102, 162])
    2021-01-26 12:40:21,176 evt> on_gattc_evt_write_rsp conn(0)
     status(BLEGattStatusCode.success)
     error_handle(0)
     attr_handle(18)
     write_op(BLEGattWriteOperation.write_req)
     offset(0)
     data([])
    2021-01-26 12:40:21,296 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0)
     error_handle(0)
     attr_handle(18)
     hvx_type(BLEGattHVXType.notification)
     data([96, 4, 11, 5])
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.8/bin/nrfutil", line 11, in <module>
        load_entry_point('nrfutil==6.1.0', 'console_scripts', 'nrfutil')()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
        return self.main(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
        rv = self.invoke(ctx)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
        return callback(*args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1199, in ble
        dfu.dfu_send_images()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 115, in dfu_send_images
        self._dfu_send_image(self.manifest.softdevice_bootloader)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 95, in _dfu_send_image
        self.dfu_transport.send_init_packet(data)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 525, in send_init_packet
        self.__execute()
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 606, in __execute
        self.__get_response(DfuTransportBle.OP_CODE['Execute'])
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 681, in __get_response
        raise NordicSemiException('Extended Error 0x{:02X}: {}'.format(resp[3], data))
    pc_ble_driver_py.exceptions.NordicSemiException: Extended Error 0x05: The firmware version is too low. For an application, the version must be greater than or equal to the current application. For a bootloader, it must be greater than the current version. This requirement prevents downgrade attacks.
    

  • Hi Nick, 

    Good to know it can work now.

    nrbrook said:
    But if the zip also contains BL and SD which don't have higher versions, it fails with an error instead of skipping these like the DFU libraries do. I can't see an option to control this behaviour.

    The util reflects this as the error message indicates

    Extended Error 0x05: The firmware version is too low. For an application, the version must be greater than or equal to the current application. For a bootloader, it must be greater than the current version. This requirement prevents downgrade attacks.

    As for the serial number, the second log indicates that Board not found: {}".format(serial_port or snr). It is hard to say why the serial_port doesn't work on your MAC but the serial number could. Sorry, I don't familiar with MacOS. 

    -Amanda H. 

Related