Managing Modem Firmware

Modem Firmware Update over UART

This sample can be used to load new modem firmware to your device using the bootloader only. This is useful if you do not have a programmer!

Setup

Make sure you have the VSCode plugin installed and running. Here are the instructions for each major architecture:

Get the modem firmware

Get your modem firmware of choice by nagivating to the nRF9160 Download page and scrolling to the nRF9160 SiP modem firmware section:

Download page

Download the version you'd like to use.

IMPORTANT: currently nRF9160 Feather is shipped with version 1.2.3 of the modem firmware. If you upgrade > v1.3.0 you cannot downgrade according to Nordic.

Build

Build the sample located in samples/mfw_update targeting circuitdojo_feather_nrf9160_ns.

Building sample complete Building sample complete

Loading

Then load to your device:

Loading Load complete

Running Python script

First you need to install the dependencies by running the following within samples/mfw_update/:

pip3 install -r requirements.txt

With python installed you should be able to run the corresponding update_modem.py script easily:

python3 update_modem.py mfw_nrf9160_1.3.0.zip /dev/tty.SLAB_USBtoUART 1000000

Note: update_modem.py is located in NFED under the nfed/samples/mfw_update/ path.

Here's what it should look like at the end of the process.

Upload complete

Confirming

You can confirm you have the version you loaded by running the AT+CGMR AT Command using at_client:

The AT host sample started
> AT+CGMR
mfw_nrf9160_1.3.0
OK

Modem Firmware Update with Programmer

Your modem firmware plays an important role in the nRF9160. The easiest way, as of this writing, to update is to use the Programmer's Update modem function. It's important to note that not all firmware is certified to work on every provider. For a full up-to-date list, check out Nordic's documentation.

Another note: you will need a programmer and Tag Connect cable in order to update the modem firmware.

Here are the instructions for updating your modem firmware:

  1. Download the modem firmware you need.
  2. Next, open up the Programmer in nRF Connect For Desktop. (You may need to open it first)
  3. Then open up a connection to your programmer. (Your programmer should be connected to USB and attached to your nRF9160 Feather) Port choices
  4. Once opened, the program will read the memory contents of your device and display it. Reading non-volatile mem
  5. To update the modem firmware, scroll down to the bottom right and click Update modem Update modem button
  6. Find your modem firmware Find modem firmware
  7. Start the DFU process by clicking Write! Start the process

Then, your device will be updated. This process takes about 45 seconds. You can check if the firmware version using the AT+CGMR AT command. Devices running on Verizon must use modem firmware v1.1.2.