Hi Jared,

I have gone through the following link and I have working firmware OTA update with BLE SMP.
https://devzone.nordicsemi.com/guides/nrf-connect-sdk-guides/b/software/posts/ncs-dfu#http_dfu_ext_flash

But my device design also has a cloud connection via nRF9160. Following is the complete connection diagram.

Cloud<==HTTPS==> nRF9160 <== UART ==> nRF5340 <== QSPI ==> NAND flash

my requirement is to receive the firmware update file via HTTPS to nRF9160 and it will be transmitted to nRF5340 and eventually will be written in NAND flash.

My questions are

  1. Which update file and which partition of external flash should it be written?
  2. Will App_Update.bin is the file I will need in this case as well?
  3. After file write is complete, How will I notify the McuBoot to update the nRF5340 firmware from NAND flash

Please share if you have any information that might help me to solve this problem.

Many thanks,
Dilawar

    Which update file and which partition of external flash should it be written?

    You will need to configure the bootloader on the nRF5340 to use external flash as a second slot. This is handled for you in the firmware by default if you set up a SPI flash (you actively need to disable this function if you want the second slot to live in onboard flash for any Nordic chip in NCS)

    Will App_Update.bin is the file I will need in this case as well?

    app_update.bin in your nRF53 project would be the one you need to download and transfer to the nRF53. This only gets generated when you have the bootloader enabled.

    After file write is complete, How will I notify the McuBoot to update the nRF5340 firmware from NAND flash

    That’s up to you. There may be a way to create an HCI command to check the version. I have not done this myself so there may be some research required.

    Good luck!

      So this is what I understand right now.
      I need to add a secondary image in pm_static.yml, file should look something like below.
      I will write app_update.bin file in external flash partition “mcuboot_secondary” and when write is complete I need to reboot the device.

      Is my understanding correct?

      external_flash:
      address: 0×0
      end_address: 0×200000
      region: external_flash
      size: 0×200000

      mcuboot_secondary:
      address: 0×00000
      device: mx25r16
      end_address: 0xf4000
      region: external_flash
      size: 0xf4000

      littlefs_storage:
      address: 0×100000
      device: mx25r16
      region: external_flash
      size: 0×200000

        Hi Dilawar

        I think it’s best to consult Nordic on this question. DevZone is a great resource to search on this topic and also post your question if you can’t get answers.

          19 days later
          Terms and Conditions | Privacy Policy