[DFU] How to create dfu using a standalone command

Hi,

i am developing under NCS 3.2.1.

I would like to if there exist a stand-alone command for creating DFU (nrfutil sub-command or similar) instead of https://github.com/nrfconnect/sdk-nrf/blob/v3.2.1/scripts/bootloader/generate_zip.py.

Thank you,

Alessandro

Parents
  • Hi all,

    To keep it simple, I will assume the case is for an application with MCUboot as an immutable bootloader.

    TL;DR: To manually generate files for DFU, use imgtool.py.

    zephyr.signed.bin

    To update an application with MCUboot, you need zephyr.signed.bin. This file is automatically generated by our build system, as part of the Output Build Files.

    You can generate your own signed binary manually using imgtool.py if you prefer. If you do this, you can start with build/<app>/zephyr.hex, which is your application.

    To learn how to upload zephyr.signed.bin to a device to perform DFU, see DevAcademy -> nRF Connect SDK Intermediate ->  Lesson 9 on DFU.

    dfu_application.zip

    Some places you see dfu_application.zip being generated and used, such as in the DevAcademy course for FOTA. However, in this case, dfu_application is not used directly by the SoC. Instead, dfu_application contains zephyr.signed.bin and a manifest json file. The application responsible for the DFU, for example nRF Connect for Mobile or nRF Cloud, will then unzip this file, and DFU the containing zephyr.signed.bin as instructed in the manifest file. This method is useful for more flexible DFU solutions, such as multi image DFU.

    The script you refer to is used to generate dfu_application.zip from already signed binary files.

    Regards,
    Sigurd Hellesvik

Reply
  • Hi all,

    To keep it simple, I will assume the case is for an application with MCUboot as an immutable bootloader.

    TL;DR: To manually generate files for DFU, use imgtool.py.

    zephyr.signed.bin

    To update an application with MCUboot, you need zephyr.signed.bin. This file is automatically generated by our build system, as part of the Output Build Files.

    You can generate your own signed binary manually using imgtool.py if you prefer. If you do this, you can start with build/<app>/zephyr.hex, which is your application.

    To learn how to upload zephyr.signed.bin to a device to perform DFU, see DevAcademy -> nRF Connect SDK Intermediate ->  Lesson 9 on DFU.

    dfu_application.zip

    Some places you see dfu_application.zip being generated and used, such as in the DevAcademy course for FOTA. However, in this case, dfu_application is not used directly by the SoC. Instead, dfu_application contains zephyr.signed.bin and a manifest json file. The application responsible for the DFU, for example nRF Connect for Mobile or nRF Cloud, will then unzip this file, and DFU the containing zephyr.signed.bin as instructed in the manifest file. This method is useful for more flexible DFU solutions, such as multi image DFU.

    The script you refer to is used to generate dfu_application.zip from already signed binary files.

    Regards,
    Sigurd Hellesvik

Children
Related