Customize SUIT DFU quick start guide
This quick start guide explains how to customize the Software Update for Internet of Things (SUIT) Device Firmware Update (DFU) to target your specific nRF54H20 System-on-Chip (SoC). It is aimed at users new to the SUIT DFU process.
Overview
The following are basic SUIT concepts you need to understand to be able to customize SUIT DFU for your device:
SUIT uses envelopes that serve as a secure transport container, and the SUIT manifest contains crucial deployment metadata.
SUIT envelopes are generated from manifest templates.
The SUIT manifest is like a blueprint that tells the system how to create a SUIT envelope, and contains instructions and metadata for the DFU procedure.
Default SUIT manifest templates are provided, but customization, especially for UUIDs, is recommended.
The manifest templates are automatically created and copied to the sample directory on the first build of SUIT samples.
See the Introduction to SUIT for more information about SUIT-specific concepts.
SUIT DFU process
The SUIT DFU process involves creating a SUIT envelope, which includes a manifest outlining the steps for the update. When you first build the SUIT sample in the nRF Connect SDK, you receive default manifest templates which you can customize according to your project’s requirements. This guide will walk you through how to customize the SUIT manifest to target your specific device.
For a complete guide on all customizable aspects of the SUIT DFU procedure, see the How to customize the SUIT DFU process user guide.
Detailed reading
If you want to learn more about SUIT DFU topics and terminology mentioned in this guide, read the following pages:
Introduction to SUIT page to learn more about SUIT-specific concepts, and an overview of the SUIT DFU procedure
SUIT manifest overview page for more information on how the SUIT manifest works
Hierarchical manifests to learn more about the structure of the SUIT manifests implemented by Nordic Semiconductor
Requirements
For this quick start guide, you need the following development kit:
Hardware platforms |
PCA |
Board name |
Board target |
---|---|---|---|
nRF54H20 DK |
PCA10175 |
|
|
Software requirements
For this quick start guide, we will install the following software:
Toolchain Manager - An application for installing the full nRF Connect SDK toolchain.
Microsoft’s Visual Studio Code - The recommended IDE for the nRF Connect SDK.
nRF Connect for VS Code extension - An add-on for Visual Studio Code that allows you to develop applications for the nRF Connect SDK.
nRF Command Line Tools - A set of mandatory tools for working with the nRF Connect SDK.
Any additional requirements described in the SUIT: Device firmware update on the nRF54H20 SoC sample.
Building the SUIT sample
Start by building the SUIT: Device firmware update on the nRF54H20 SoC sample:
west build -b nrf54h20dk/nrf54h20/cpuapp nrf/samples/suit/smp_transfer
This command builds the SUIT: Device firmware update on the nRF54H20 SoC sample for the nRF54H20 SoC.
Modifying class and vendor identifiers
Replacing and using the correct class and vendor UUIDs prevents conflicts in the DFU process. The UUIDs allow to ensure that the firmware is compatible with a given device.
This can be done by changing the class and vendor names using Kconfig options (for example in the prj.conf
file):
CONFIG_SUIT_MPI_ROOT_VENDOR_NAME="ACME Corp"
CONFIG_SUIT_MPI_ROOT_CLASS_NAME="Light bulb root"
CONFIG_SUIT_MPI_APP_LOCAL_1_VENDOR_NAME="ACME Corp"
CONFIG_SUIT_MPI_APP_LOCAL_1_CLASS_NAME="Light bulb"
After rebuiling you will be able to find the following part in the ./build/DFU/application.yaml
file.
- suit-directive-override-parameters:
suit-parameter-vendor-identifier:
RFC4122_UUID: ACME Corp # Changed vendor-identifier value
suit-parameter-class-identifier:
RFC4122_UUID: # Changed class-identifier values
namespace: ACME Corp
name: Light bulb
With the sample built and identifiers customized, your SUIT DFU process is now specifically configured for your nRF54H20 SoC.
Next steps
The SUIT DFU procedure can further be customized by:
Creating and modifying your own manifests
Generating raw UUID values
Changing the default location of the manifests
Instructions for these actions and further customization are described in the How to customize the SUIT DFU process page. Additionally, you can modify SUIT components within the manifest (see the SUIT components page for more information).