Updating the nRF9160 modem firmware

Last updated on: March 22, 2022

The nRF9160 has a separate ARM Cortex-M33 processor in the modem that takes care of the cellular communication and GPS functionality. The processor runs a custom modem firmware from Nordic that cannot be edited by the user. The modem firmware download page provides different versions of the firmware. Depending on the hardware version of the nRF9160, you must use a different modem firmware version. Furthermore, the nRF Connect SDK also dictates which modem firmware version you can use. Nordic Semiconductor provides a compatibility matrix in their documentation to find which modem firmware version to use. This table gives a description of which modem firmware versions and SDK versions are compatible with the Icarus hardware:

Icarus versionnRF9160 revision (build code)Modem firmware versionSupported SDK versions
v1.21 (B0)1.2.3 (or older)1.5.1 or older
v1.41 (B0)1.2.3 (or older)1.5.1 or older
v2.02 (B1)1.3.0 (or latest)1.7.0 to 1.9.0

The modem firmware version of an Icarus can be checked by flashing it with the Asset Tracker (Factory Firmware Bundle) and looking at the boot-up messages on the serial monitor. For a more detailed overview on which nRF Connect SDK version to use, see the compatibility matrix from Nordic Semiconductor.

WARNING:
If you decide to update your modem firmware to version 1.3.0 or higher, you will not be able to go back to an older version.

Updating the modem firmware

The modem firmware can be updated using a J-Link programmer and a TagConnect cable. The nRF Connect for desktop program provides the Actinius Programmer application which allows you to update the modem firmware. You need the following to update your modem firmware:

  • An Icarus board
  • A J-Link programmer. E.g. the nRF5340 development kit.
  • A TC2030-CTX-NL TagConnect cable.

Flashing the modem firmware using J-Link and TagConnect:

  1. Choose and download the desired modem firmware version from the download page.
  2. Open the nRF Connect for Desktop application program.
  3. Open the Actinius Programmer application.
  4. Click on Select device in the top left corner of the application and select the J-Link programmer.
  5. Click on Add file and select the modem firmware zip file.
  6. Click on Write.

The new modem firmware will now be flashed to the nRF9160 modem. This can take around 50 seconds. After flashing, press the reset button on the board for the changes to take effect.