Firmware update

Operating summary

Device management

The management subsystem allows remote management of Zephyr-enabled devices. The following management operations are available:

  • Image management

  • File System management

  • Log management (currently disabled)

  • OS management

  • Shell management

over the following transports:

  • BLE (Bluetooth Low Energy)

  • Serial (UART)

The management subsystem is based on the Simple Management Protocol (SMP) provided by MCUmgr.

Simple Management Protocol (SMP)

SMP is a communication protocol that allows network administrators to manage network equipment, monitor and diagnose network and hardware problems remotely. In the case of products under Zephyr an SMP request is sent in the form:

  • a GATT write command

  • from a write command without a GATT response -> an SMP response is sent in the form of a GATT notification specifying the same characteristic as the one that was written.

Image slots

A portion of the flash memory can be partitioned into multiple image areas, each contains two image slots: a primary slot and a secondary slot. The boot loader will run an image from the primary slot. If the boot loader needs to run the image resident in the secondary slot, it must copy its contents into the primary slot before doing so, either by swapping the two images or by overwriting the contents of the primary slot.

Device Firmware Update (DFU)

The Device Firmware Upgrade subsystem provides the necessary frameworks to upgrade the image of a Zephyr-based application at run time. It currently consists of two different modules:

  • subsys/dfu/boot/: Interface code to bootloaders

  • subsys/dfu/img_util/: Image management code

Device upgrade : Tutorial

To upgrade a device we use the standard DFU method, it is done though BLE by an App or a DFU controller with a specific GATT service. This is the current method for all firmwares version < 3.9.0. https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v16.0.0%2Flib_bootloader_dfu_process.html&cp=7_1_3_5_1

To update a device by DFU you must have a .signed.bin file for this product.

We can see 2 firmware versions in the phone

../../_images/update_show_versions.png

Versions sinp1

The product is flashed in version 11.1.1.

To start opening nRF Connect, log in to the product.

../../_images/update_connect.png

Connect to the product

Go to the product page click on the DFU icon.

../../_images/update_click.png

Click DFU icon

Select on the file with the new firmware version that you want (here 12.1.1).

../../_images/update_select.png

Select file

Select “Confirm only” (seems to have problems with test and confirm option).

../../_images/update_explain_mode.png

Modes update

If the new firmware is not present in the secondary or primary slot, it will register in the secondary slot and then the 2 FWs will be interchanged. It may take 2/3 min to download the image.

../../_images/update_upload.png

Upload image

If all the steps have gone well, the product will reboot with FW 12.1.1.