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.