OTA Update Softdevice + Bootloader error

I try to update/replace the code in a nRF52 board from 3rd party (Fanstel).  They only able to provide the private key which I can create the zip file but not able to give info what version of Softdevice loaded.

I am using the nRF5_SDK_17.0.2_d674dde for 

- secure_bootloader_ble_s132_pca10040.hex

- s132_nrf52_7.2.0_softdevice.hex

Using a batch file to create the zip file

set BOOT=secure_bootloader_ble_s132_pca10040
set SOFT=s132_nrf52_7.2.0_softdevice
set KEY=private.pem
set ZIP=Secure_Bootloader

nrfutil pkg generate --hw-version 52 --sd-req 0x101 --sd-id 0x101 --key-file %KEY% --bootloader-version 1 --bootloader %BOOT%.hex --softdevice %SOFT%.hex %ZIP%.zip

when I use the nRF52-DK board to perform OTA

nrfutil dfu ble -ic NRF52 -pkg Secure_Bootloader.zip -p COM15 -n "DfuTarg" -f

I get the following error : 

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.

 

Parents
  • Hello,

    So the issue is that in your DFU image, you say that the receiver needs to have a softdevice with an ID 0x0101, which it looks like the receiving nRF doesn't currently have programmed.

    You can try to set the --sd-req 0x00, which doesn't require any specific softdevices to already be programmed (as your image includes a softdevice either way). Then the device should accept it.

    Best regards,

    Edvin

  • I gather more info for this board.  The bootloader & Softdevice (s132_nrf52_6.x.x) is few years ago version.

    using the " --sd-req 0xA8,0xAF,0xB7", it show different error conditions

    Do you think a old version Bootloader can be updated ??

    1. when trying yo update just the BL or both BL+SD, it shows this error

    File "c:\tools\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 684, in __get_response
    raise NordicSemiException('Response Code {}'.format(get_dict_key(DfuTransport.RES_CODE, resp[2])))
    pc_ble_driver_py.exceptions.NordicSemiException: Response Code InsufficientResources

    2. when trying to update just the SofDevice, the DFU started but fails at 98% when the error

    Board already flashed with connectivity firmware.
    [###################################-] 98% 00:00:00
    Traceback (most recent call last):
    File "C:\Tools\Python\Python38\Scripts\nrfutil-script.py", line 33, in <module>
    sys.exit(load_entry_point('nrfutil==6.1.3', 'console_scripts', 'nrfutil')())
    .....

    .....
    File "c:\tools\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 684, in __get_response
    raise NordicSemiException('Response Code {}'.format(get_dict_key(DfuTransport.RES_CODE, resp[2])))
    pc_ble_driver_py.exceptions.NordicSemiException: Response Code InvalidObject

Reply
  • I gather more info for this board.  The bootloader & Softdevice (s132_nrf52_6.x.x) is few years ago version.

    using the " --sd-req 0xA8,0xAF,0xB7", it show different error conditions

    Do you think a old version Bootloader can be updated ??

    1. when trying yo update just the BL or both BL+SD, it shows this error

    File "c:\tools\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 684, in __get_response
    raise NordicSemiException('Response Code {}'.format(get_dict_key(DfuTransport.RES_CODE, resp[2])))
    pc_ble_driver_py.exceptions.NordicSemiException: Response Code InsufficientResources

    2. when trying to update just the SofDevice, the DFU started but fails at 98% when the error

    Board already flashed with connectivity firmware.
    [###################################-] 98% 00:00:00
    Traceback (most recent call last):
    File "C:\Tools\Python\Python38\Scripts\nrfutil-script.py", line 33, in <module>
    sys.exit(load_entry_point('nrfutil==6.1.3', 'console_scripts', 'nrfutil')())
    .....

    .....
    File "c:\tools\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 684, in __get_response
    raise NordicSemiException('Response Code {}'.format(get_dict_key(DfuTransport.RES_CODE, resp[2])))
    pc_ble_driver_py.exceptions.NordicSemiException: Response Code InvalidObject

Children
No Data
Related