Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

OTA/DFU of Custom nRF9160, nRF5340, nRF52833 hardware

Hello, 

We are designing a multiprocessor single-board solution that uses the above Nordic parts. I am working on an OTA solution to update all of the above MCUs. In our design, the nRF9160 is used to publish data to AWS and perform GNSS location reporting. It is also responsible for retrieving firmware updates from AWS. I was able to successfully perform the AWS FOTA for the nRF9160. The challenge is how to update the firmware for the other two MCUs (nRF5340 and nRF52833). The hardware architecture is the following:


nRF9160 -- UART -- nRF5340 -- UART -- nRF52833 (Each of these MCUs have external SPI flash memory interfaced to it) 

The nRF9160 and nRF5340 firmware projects are developed using the Nordic Connect SDK v2.4.0 while the nRF52833 firmware is a legacy product developed using the nRF52 SDK v17.1. 

I can likely use the Download Client library on the nRF9160 to receive the nRF5340 and nRF52833 DFU packages from AWS. From that point onwards, I'm not sure how to update the nRF5340 and nRF52833. Many thanks for any suggestions. 

Parents Reply Children
  • Hi Kenneth, many thanks for the suggestions and feedback. Unfortunately, the board design has been finalized so the re-routing of the UART is not an option at this time. However, could I get your opinion on this configuration?

    Updating nRF9160

    AWS -> nRF9160 using FOTA

    Updating nRF5340

    AWS -> nRF9160 (using Download Client) -- UART --> nRF5340 (using SMP Server/MCU Mgr over UART)

    Updating nRF52833

    As I was mentioning, the nRF52833 is a legacy product and can be updated using Nordic's DFU mobile application. At this point in time, there is no urgency in getting the nRF9160 to update the device as we have the phone app as a backup plan. However, is there a DFU Controller application source code available for the nRF5340? As was mentioned, the nRF52833 firmware was developed using the nRF52 SDK (ie non-Zephyr). This is what I was thinking:

    AWS -> nRF9160 (using Download Client) -- UART --> nRF5340 (using SMP Server/MCU Mgr over UART) -- BLE --> nRF52833 (using BLE DFU Controller on the nRF5340)

    Many thanks!

  • I think this looks good. As you write, the challenge is the update of the nRF52833 here since it's using the nRF5 SDK, maybe you can consider updating the nRF52833 to NCS also at some point, and then you can update the nRF52833 through UART (instead of BLE). Unfortunately we don't have any DFU controller application for the legacy nRF5 SDK, but it is documented here if you want to take a look at how its' done for BLE for nRF5 SDK: 
    https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_dfu_transport_ble.html?cp=9_1_3_5_2_2_3#lib_dfu_transport_msc

    Kenneth

  • Agreed. We would like to transition the nRF52833 development to the Nordic Connect SDK. That will likely be down the road since the nRF5 SDK was used to test and qualify that piece of our product.

    Many thanks for the feedback.

Related