This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Serial DFU update softdevice fail

Just test SDK14.20 serial DFU demo project on Nordic PCA10040 board by USB serial.

Got below exception. Any clue for it please?

Thanks.

C:\gxf\nrfutil\nordic>..\nrfutil pkg generate --hw-version 52 --sd-req 0x91 --softdevice ..\s132_nrf52_3.1.0_softdevice.hex --key-file private-key.pem softDevice31.zip
Zip created at softDevice31.zip

C:\gxf\nrfutil\nordic>..\nrfutil dfu serial --package softDevice31.zip --port COM4

Traceback (most recent call last):
File "nordicsemi\__main__.py", line 1314, in <module>
File "click\core.py", line 764, in __call__
File "click\core.py", line 717, in main
File "click\core.py", line 1137, in invoke
File "click\core.py", line 1137, in invoke
File "click\core.py", line 956, in invoke
File "click\core.py", line 555, in invoke
File "nordicsemi\__main__.py", line 1006, in serial
File "nordicsemi\__main__.py", line 941, in do_serial
File "nordicsemi\dfu\dfu.py", line 121, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 97, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 253, in send_init_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 370, in __execute
File "nordicsemi\dfu\dfu_transport_serial.py", line 451, in __get_response
pc_ble_driver_py.exceptions.NordicSemiException: Extended Error 0x07: The array of supported SoftDevices for the update does not contain the FWID of the current SoftDevice.
[9804] Failed to execute script __main__

Parents Reply Children
  • Hi Sigurd
    Thank you for your help. I add --sd-req 0x9D,0x91 this time. The softdevice 5.0 is programmed version.
    It is better this time, but still get some error.
    Please help.
    Thanks.
    C:\gxf\nrfutil\nordic>..\nrfutil pkg generate --hw-version 52 --sd-req 0x9D,0x91 --softdevice ..\s132_nrf52_3.1.0_softdevice.hex --key-file private-key.pem softDevice31.zip
    Zip created at softDevice31.zip
    C:\gxf\nrfutil\nordic>..\nrfutil dfu serial --package softDevice31.zip --port COM4
      [###################################-]   97%  00:00:00
    Traceback (most recent call last):
      File "nordicsemi\__main__.py", line 1314, in <module>
      File "click\core.py", line 764, in __call__
      File "click\core.py", line 717, in main
      File "click\core.py", line 1137, in invoke
      File "click\core.py", line 1137, in invoke
      File "click\core.py", line 956, in invoke
      File "click\core.py", line 555, in invoke
      File "nordicsemi\__main__.py", line 1006, in serial
      File "nordicsemi\__main__.py", line 941, in do_serial
      File "nordicsemi\dfu\dfu.py", line 121, in dfu_send_images
      File "nordicsemi\dfu\dfu.py", line 102, in _dfu_send_image
      File "nordicsemi\dfu\dfu_transport_serial.py", line 299, in send_firmware
      File "nordicsemi\dfu\dfu_transport_serial.py", line 370, in __execute
      File "nordicsemi\dfu\dfu_transport_serial.py", line 454, in __get_response
    pc_ble_driver_py.exceptions.NordicSemiException: Response Code InvalidObject
    [11960] Failed to execute script __main__
  • Hi,

    Response Code InvalidObject

    This means that the private key used to sign the image with, is not the same private key used to generate the public key found in the bootloader code(dfu_public_key.c)

    When you build a zip file with your own private key, you must also build the bootloader with the public key corresponding to that private key. Otherwise the checking of the signature of the update will fail. 

  • Hi Siguard

    I found the problem. DFU doesn't allow  changing to different major softdevice only.

    I combined same bootloader and 3.1 softdevice then upgraded successfully. 

    This serial DFU bootloader built with SDK 14.20. It looks like no problem to work with low version softdevice.

    Just want to confirm, does serial DFU bootloader rely on same SDK version's softdevice?

  • When doing only a SoftDevice update, the SoftDevice must be of the same Major Version as the old bootloader may not be compatible with the new SoftDevice. So if you are doing a SD major version update, you should combine it with a bootloader update . See the Combination table at this page.

Related