SD+BL+APP DFU update failure

Hi everyone ,

I want to perform DFU of SD+Bl+APP via UART.

I use nrfutil version 6.1.3.

The Softdevice is s140_nrf52_7.2.0_softdevice.hex and the application is based on SDK 17.0.2.

I prepared a ZIP file using :

nrfutil pkg generate --hw-version 52 --application-version 3 --application ../images/brg/version_3.0.0/3.0.0.hex --sd-req 0x00,0x0100 --softdevice ../images/brg/version_3.0.0/s140_nrf52_7.2.0_softdevice.hex --sd-id 0x0100 --bootloader ../images/brg/version_3.0.0/brg-secure_bootloader_uart_3.0.0.hex --bootloader-version 3 --key-file ../images/bootloader/private.key ../images/brg/version_3.0.0/3.0.0.zip

The zip contains: 

  • 3.0.0.bin
  • 3.0.0.dat
  • sd_bl.bin
  • sd_bl.dat
  • manifest.json

This is the manifest file : 

{
    "manifest": {
        "application": {
            "bin_file": "3.0.0.bin",
            "dat_file": "3.0.0.dat"
        },
        "softdevice_bootloader": {
            "bin_file": "sd_bl.bin",
            "dat_file": "sd_bl.dat",
            "info_read_only_metadata": {
                "bl_size": 24340,
                "sd_size": 153140
            }
        }
    }
}

When I call nrfutil dfu serial --package 3.0.0.zip -p COM7 -fc 0 -b 115200 -t 10  it starts upgrading the but stops after 53% (probably after upgrading the sd_bl).

version_3.0.0>nrfutil dfu serial --package 3.0.0.zip -p COM7 -fc 0 -b 115200 -t 10
  [###################-----------------]   53%  00:00:31
Traceback (most recent call last):
  File "c:\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python37\Scripts\nrfutil.exe\__main__.py", line 7, in <module>
  File "c:\python37\lib\site-packages\click\core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "c:\python37\lib\site-packages\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "c:\python37\lib\site-packages\click\core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\python37\lib\site-packages\click\core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\python37\lib\site-packages\click\core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\python37\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "c:\python37\lib\site-packages\nordicsemi\__main__.py", line 1064, in serial
    timeout)
  File "c:\python37\lib\site-packages\nordicsemi\__main__.py", line 978, in do_serial
    dfu.dfu_send_images()
  File "c:\python37\lib\site-packages\nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
  File "c:\python37\lib\site-packages\nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
  File "c:\python37\lib\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 214, in open
    raise NordicSemiException("No ping response after opening COM port")
pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port

Can anyone suggest what is the problem and how to fix it ?

Thanks in advance ,

Rafalino.

Related