Updating the nRF9160 modem firmware
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 version | nRF9160 revision (build code) | Modem firmware version | Supported SDK versions |
|---|---|---|---|
| v1.2 | 1 (B0) | 1.2.7 (or older) | 1.5.1 or older |
| v1.4 | 1 (B0) | 1.2.7 (or older) | 1.5.1 or older |
| v2.0 | 2 (B1) | 1.3.0 (or latest) | 1.7.0 to latest |
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.
If you decide to update your modem firmware to version 1.3.0 or higher, it is not recommended to revert to an older modem firmware version as that can cause certificate corruption.
Updating the modem firmware
There are two ways to update the modem firmware: (a) using the Actinius I/O Serial Programmer (recommended), or (b) using a J-Link programmer.
Modem firmware update using Actinius I/O Serial Programmer (Recommended)
The easiest way to update the modem firmware is using the Actinius I/O Serial Programmer. This method doesn't require any additional software installation and works directly in your browser.
Prerequisites
- A Chromium-based browser (Chrome, Edge, Opera)
- An account on Actinius I/O
Updating the modem firmware:
- Login to Actinius I/O and click on Serial Programmer in the left sidebar.
- Click the Connect device button and select your Icarus from the serial port list.
- Select the Modem tab (next to the Firmware tab).
- Select your device type from the Device type dropdown.
- Choose a modem firmware version from the list (latest recommended for Icarus v2.0+: 1.3.7).
- Click Write modem firmware to begin the update.
- Follow the on-screen instructions to complete the update process.
Modem firmware updates can take several minutes to complete. Do not disconnect the device or close the browser during the update process.
Modem firmware update using J-Link
Prerequisites
- The Programmer application in the nRF Connect for Desktop
- A J-Link programmer. E.g. the nRF5340 development kit
- An SWD cable, e.g. a TC2030-CTX-NL TagConnect cable or a 2x5 header depending on the Icarus board you are using
Flashing the modem firmware using J-Link:
- Download the desired modem firmware version from Nordic's nRF9160 download page.
- Open the nRF Connect for Desktop and the Programmer application
- Click on Select device in the top left corner of the Programmer and select the J-Link programmer
- Click on Add file and select the modem firmware zip file
- 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.