Upgrading modem firmware using MCUboot serial recovery

nRF Util

tags
nRF Util

nrfutil device can be used to upgrade modem firmware on devices with the mcuBoot and modem device traits.

Note

This is a programming method for Nordic Thingy:91 X and Nordic Thingy:91.

The procedure happens over the MCUboot serial recovery, a mode in which the bootloader is waiting for a new image upload to start. In this mode, the new image is transferred through an USB CDC ACM class instance. The bootloader overwrites the existing application located on the primary slot with the new application image. If the transfer is interrupted, the device cannot boot the incomplete application, and the image upload must be performed again.

Complete the following steps:

  1. Prepare the nRF9160 System in Package (SiP) modem firmware file or download it from Nordic Semiconductor website.

  2. Connect your device to your computer using an USB cable.

  3. List the devices connected to the system by running the following command:

    nrfutil device list --traits mcuBoot,modem
    

    The serial number of the device will be referenced as <serial_number> in the programming step. For Nordic Thingy:91, the serial number is composed of 20 characters (for example, THINGY91_C2E0AC7F599). For Nordic Thingy:91 X, it has 21 characters (for example, THINGY91X_C2E0AC7F599).

  4. Put the SiP of the Thingy device in the application serial recovery mode by holding in the SW3 button while powering it off and on.

    Caution

    On Nordic Thingy:91, pressing the wrong button puts the nRF52840 SoC in serial recovery mode instead. Programming the nRF91 SiP firmware in this mode will make the device disappear from nrfutil device list. To recover it, reprogram the connectivity bridge firmware using an external debug probe. See Updating the Thingy:91 firmware using Programmer.

  5. Program the modem firmware file (<modem_fw_file_name>) by running the following command:

    nrfutil device program --firmware <modem_fw_file_name> --serial-number <serial_number>
    
    For example, for Nordic Thingy:91, the command could look like this:
    nrfutil device program --firmware mfw_nrf9160_1.3.3.zip --serial-number THINGY91_C2E0AC7F599