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!


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 the sample located in samples/mfw_update targeting circuitdojo_feather_nrf9160_ns.

Building sample complete Building sample complete


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 script easily:

python3 /dev/tty.SLAB_USBtoUART 1000000

Note: 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


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

The AT host sample started

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.