Might be related to this, which also has no issue yet.
I am using an MXE-202i mini-PC running Ubuntu Server 20.04 LTS and a nRF52840 dongle to run DFU OTA to program and update nRF52 production devices. I have root access and the port has been added to the dialout group. The command and the error I face is as such:
user@dfuserver:~$ nrfutil -v -v -v -v dfu ble -ic NRF52 -pkg Distribution.zip -p /dev/ttyACM0 -f -cd 30 -n "DfuTarg"
Flashing connectivity firmware...
Connectivity firmware flashed.
2020-07-28 10:17:26,106 Using connectivity board at serial port: /dev/ttyACM0
2020-07-28 10:17:26,125 Sending SoftDevice+Bootloader image.
2020-07-28 10:17:56,565 Successfully opened /dev/ttyACM0. Baud rate: 1000000. Flow control: none. Parity: none.
2020-07-28 10:17:56,566 evt> severity(20) message(Successfully opened /dev/ttyACM0. Baud rate: 1000000. Flow control: none. Parity: none.)
2020-07-28 10:17:56,567 RpcAppStatus.resetPerformed: Target Reset performed
2020-07-28 10:17:56,567 evt> status code(RpcAppStatus.resetPerformed) message(Target Reset performed)
2020-07-28 10:17:58,668 RpcAppStatus.pktSendMaxRetriesReached: No response from device. Tried to send packet 6 times.
2020-07-28 10:17:58,668 evt> status code(RpcAppStatus.pktSendMaxRetriesReached) message(No response from device. Tried to send packet 6 times.)
Traceback (most recent call last):
File "/usr/local/bin/nrfutil", line 8, in <module>
sys.exit(cli())
File "/usr/lib/python3/dist-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nordicsemi/__main__.py", line 1199, in ble
dfu.dfu_send_images()
File "/usr/local/lib/python3.8/dist-packages/nordicsemi/dfu/dfu.py", line 115, in dfu_send_images
self._dfu_send_image(self.manifest.softdevice_bootloader)
File "/usr/local/lib/python3.8/dist-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
self.dfu_transport.open()
File "/usr/local/lib/python3.8/dist-packages/nordicsemi/dfu/dfu_transport_ble.py", line 473, in open
self.dfu_adapter.open()
File "/usr/local/lib/python3.8/dist-packages/nordicsemi/dfu/dfu_transport_ble.py", line 103, in open
self.adapter.driver.open()
File "/usr/local/lib/python3.8/dist-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
However, it runs successfully on my Windows machine with the same dongle, with the exact same command and without any disconnects. Is this a known issue with nrfutil on Linux?
I am using the latest version(10.9.0) of nRF command line tools and nrfutil as well as Python 3.