nRF9160: HTTP full modem update

The HTTP full modem update sample demonstrates how to perform a full firmware update of the modem (as opposed to a delta update). The sample downloads a modem firmware signed by Nordic and performs the firmware update of the modem.

Overview

An external flash memory with a minimum of 2MB of free space is required to perform a full modem update. Hence, only versions 0.14.0 and later of the nrf9160 DK support this sample as the prior versions do not have any external flash memory.

The sample connects to a remote HTTP server to download a signed version of the modem firmware, using the FOTA download library. It then writes the firmware to the external flash memory. After the modem firmware has been stored in the external flash memory, the sample will use the Full modem firmware update from flash device to pre-validate the update and program it to the modem.

Two different versions can be downloaded, depending on what version is currently installed. The version which is not currently installed is selected.

Requirements

The sample supports the following development kit, version 0.14.0 or higher:

Hardware platforms

PCA

Board name

Build target

nRF9160 DK

PCA10090

nrf9160dk_nrf9160

nrf9160dk_nrf9160ns

The sample is configured to compile and run as a non-secure application on nRF91’s Cortex-M33. Therefore, it automatically includes the Secure Partition Manager that prepares the required peripherals to be available for the application.

You can also configure it to use TF-M instead of Secure Partition Manager.

Building and running

This sample can be found under samples/nrf9160/application_update/full_modem_update in the nRF Connect SDK folder structure.

See Building and programming a sample application for information about how to build and program the application.

The sample is built as a non-secure firmware image for the nrf9160dk_nrf9160ns build target. Because of this, it automatically includes the Secure Partition Manager.

Testing

After programming the sample to the development kit, test it by performing the following steps:

  1. Start the application and wait for a prompt for pressing a button.

  2. Press the button to start the update procedure.

  3. Once the download is completed, the modem update procedure will begin automatically.

  4. Reset the development kit.

  5. Observe that the LED pattern has changed.