Setup: Windows 10, nrfutil verison 6.1.3, python 3.10.2, nRF 5 SDK 17.0.2
I have a custom board running the stock DFU firmware from the nRF5 SDK. The only changes we made were to turn on require signing and updated the bootloader with our public key. We've been able to OTA firmware to it for over a year now with the nRF Connect app on our phones.
We're trying to setup an automated nightly check that the OTA process. nrfutil looks like the tool that can do this. However, we keep running into a problem just getting a proof of concept up and going.
Here's the output from nrfutil
nrfutil>nrfutil dfu ble -pkg update.zip -ic NRF52 -p COM5 -a EE:17:F5:66:D0:E9 -snr 682771863 -f
Board already flashed with connectivity firmware.
[------------------------------------] 0%
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 1545, in <module>
File "click\core.py", line 1137, in __call__
File "click\core.py", line 1062, in main
File "click\core.py", line 1668, in invoke
File "click\core.py", line 1668, in invoke
File "click\core.py", line 1404, in invoke
File "click\core.py", line 763, in invoke
File "nordicsemi\__main__.py", line 1205, in ble
File "nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 100, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_ble.py", line 573, in send_firmware
File "nordicsemi\dfu\dfu_transport_ble.py", line 643, in __stream_data
File "nordicsemi\dfu\dfu_transport_ble.py", line 351, in write_data_point
File "pc_ble_driver_py\ble_adapter.py", line 567, in write_cmd
File "pc_ble_driver_py\ble_adapter.py", line 553, in write_cmd
File "pc_ble_driver_py\ble_driver.py", line 106, in wrapper
pc_ble_driver_py.exceptions.NordicSemiException: Failed to ble_gattc_write. Error code: NRF_ERROR_SD_RPC_NO_RESPONSE
[2176] Failed to execute script '__main__' due to unhandled exception!
And if I look at the output from the bootloader, the only thing it outputs is "
00> <info> nrf_dfu_settings: Backing up settings page to address 0x7E000." among the "00> <info> nrf_bootloader_wdt: Internal feed" messages.
nrfutil always fails right after the "backing up message".