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?
