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

Firmware update without DFU

Hi, I am new to the Nordic environment. So far I have done all the integration by going through your examples code which is very good.

Now, one thing I have no knowledge about is updating the firmware image(non-secure + TF-M) without using DFU.

I do not want FW update over DFU for some personal reasons.

Please guide me to any reference or documentation for how to build a bootloader and configure the application image to run with the bootloader and do OTA update.

I do not know from where to start for implementing the OTA update.

Thank you in advance.

My setup:

NRF SDK: v2.2.0

Board: nRF5340-DK

  • Hi,

    I see that you have asked about the same issue in 301655. Please do not create duplicate tickets or ask about the same problem in multiple tickets. My colleague will continue in 301655, and I will close this as a duplicate.

    Best regards,

    Marte

  • Hi Marte!

    I'm using Zephyr and when I include CONFIG_BOOTLOADER_MCUBOOT=y and build using nRF Connect, a signed image is already generated (app_signed.hex). My questions are:

    1. Can I use this file's content to perform the update? I guess that with this method, a default publick key is used, but as it's not for production yet, there's no problem with this.

    2. To write the firmware image into MCUboot secondary slot, I should call dfu_target_write() multiple times using a buffer with the app_signed.hex data?

    3. The buffer passed to dfu_target_write() should contain ONLY the data bytes? Because a single line of the hex file is made up of start code, byte count, address, record type, data and checksum.

    4. When I use dfu_target_init(), file_size should be the size of app_signed.hex or the number of bytes that are effectively going to be written to the flash? I'm currently receiving the data of app_signed.hex via UART without any transfer encoding or management protocol (such as SMP and mcumgr).

    My application's prj.conf:

    CONFIG_LOG=y
    CONFIG_BOOTLOADER_MCUBOOT=y
    CONFIG_DFU_TARGET=y
    CONFIG_MCUBOOT_IMAGE_VERSION="0.0.1"



Related