HI,
I have found some problem with nrfutil (version 5.2.0 installed from pypi).
Problem description:
When I am updating dfu with success (correct keys, packages etc) everything goes fine but in my CI test I am verifying situation that package signed with wrong key is trying to be updated over dfu ble. In this case dfu procedure should fail and it fails with proper code:
DFU CALL: nrfutil dfu ble -ic NRF52 -p /dev/ttyACM0 -a 70B3D5C53310 -pkg application.zip
Traceback (most recent call last): File "/home/patlas/.local/bin/nrfutil", line 11, in <module> sys.exit(cli()) File "/home/patlas/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__ return self.main(*args, **kwargs) File "/home/patlas/.local/lib/python2.7/site-packages/click/core.py", line 717, in main rv = self.invoke(ctx) File "/home/patlas/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/patlas/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/patlas/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/patlas/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke return callback(*args, **kwargs) File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/__main__.py", line 812, in ble dfu.dfu_send_images() File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu.py", line 122, in dfu_send_images self._dfu_send_image(self.manifest.application) File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu.py", line 90, in _dfu_send_image self.dfu_transport.send_init_packet(data) File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 495, in send_init_packet if try_to_recover(): File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 489, in try_to_recover self.__execute() File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 583, in __execute self.__get_response(DfuTransportBle.OP_CODE['Execute']) File "/home/patlas/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 660, in __get_response raise NordicSemiException('Response Code {}'.format(get_dict_key(DfuTransport.RES_CODE, resp[2]))) pc_ble_driver_py.exceptions.NordicSemiException: Response Code InvalidObject
but unfortunately my devkit (which perform nrfutil dfu process) does not disconnect from updated peripheral. The only thing that I can do to perform disconnection is disconnect usb power supply from devkit but this solution in unacceptable in my case.
How to deal with it? Is it a bug in nrfutil?