This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF Connect App can OTA, nrfutil fails when DFU backs up settings

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".

Parents Reply
  • I'm using 7.58e.  I did some more investigation yesterday and it's very hit-or-miss at how far it will get transferring the image over before it would error with NRF_ERROR_SD_RPC_NO_RESPONSE.  The Application starts at 0x1C000.  Looking at that in J-Mem, I can see the first part of the application gets transferred before the process fails. It never fails in the same location, but it's usually within in the first 1kB of program.

    I did try a different board and everything seems to be working smoothly now.  I think there's an issue between different samples of the the same board design.

Children
Related