Skip to content

Latest commit

 

History

History
154 lines (99 loc) · 9.3 KB

release-artifacts.md

File metadata and controls

154 lines (99 loc) · 9.3 KB

Release artifacts

This document describes the pre-built firmware published on each GitHub release. Each zip bundles one application and board-type combination built by CI from the matching NCS version pinned in west.yml.

Downloading releases

Pre-built firmware and release notes are published here.

Download the zip that matches your application and hardware setup, extract it, and flash merged.hex with a J-Link debugger or nrfutil device program. See Flashing a release below.

Release version vX.Y.Z matches the semver embedded in the firmware (X.Y.Z+0 in the device boot log).

Release bundles

Each release contains one zip per CI build flavor:

Release zip Application Hardware Description
91m1_ppp-nrf54l15-v{VERSION}.zip 91m1_ppp nRF54L15 DK + nRF9151 DK Standard PPP host; nRF Cloud CoAP/DTLS on the host
91m1_ppp-nrf54lm20b-v{VERSION}.zip 91m1_ppp nRF54LM20B DK + nRF9151 DK Same feature set on nRF54LM20B
91m1_ppp-nrf54lm20b-location-v{VERSION}.zip 91m1_ppp nRF54LM20B DK + nRF7002-EB2 + Serial Modem Wi-Fi scan for cloud-assisted location
93m1_ppp-nrf93m1-v{VERSION}.zip 93m1_ppp nRF93M1 DK PPP host for the integrated nRF93M1 modem
93m1_at-nrf93m1-v{VERSION}.zip 93m1_at nRF93M1 DK AT host; modem terminates the cloud connection

Replace {VERSION} with the release tag without the v prefix (for example 1.2.3 for tag v1.2.3).

91m1 host setups also require Serial Modem firmware on the nRF9151 or nRF9151 SMA DK. See Serial Modem firmware (nRF9151 DK) below.

Inside each zip

Everything sits at the top level, with no nested directories:

91m1_ppp-nrf54l15-v1.2.3/
├── README.md                                          what each file here is for
├── merged.hex                                         flash this on the host DK
├── zephyr.elf
├── zephyr.signed.bin
├── dfu_application.zip
├── .config
└── serial_modem_v{VERSION}_nrf9151dk_nrf91m1.zip              firmware for the companion nRF9151 / SMA DK

93m1_ppp bundles carry no modem archive, their board having an integrated modem, and 93m1_at additionally has neither zephyr.signed.bin nor dfu_application.zip. File names are fixed so scripts and documentation stay valid after extraction.

Top-level files

File Description Use case
README.md Generated per bundle: the files it contains, flash commands, and console port Flashing a downloaded zip without opening this page
merged.hex Full sysbuild image (TF-M, MCUboot where applicable, signed application, partition layout). Same contents as build/merged.hex from a local sysbuild. Programming the device with a J-Link debugger or nrfutil
zephyr.elf ELF file with debug symbols Debugging, coredump analysis, Memfault symbol upload, addr2line
zephyr.signed.bin MCUboot-signed application image FOTA through Memfault (not included in 93m1_at bundles)
dfu_application.zip DFU package wrapping the signed image with its manifest nRF Cloud FOTA jobs (not included in 93m1_at bundles)
.config Kconfig snapshot from the release build Inspecting which options were enabled without rebuilding
serial_modem_*_nrf9151dk_nrf91m1.zip Serial Modem release tested by CI that night, exactly as published upstream Programming the companion DK (91m1_ppp bundles only)

Full sysbuild image

Use merged.hex for first-time programming or when you need to replace the full flash contents, including the bootloader and secure partitions. Host applications (91m1_ppp, 93m1_ppp) are built with sysbuild, TF-M, and MCUboot; the merged image reflects that layout.

After flashing, follow the application guide for hardware setup and cloud onboarding:

ELF file with debug symbols

Upload zephyr.elf to Memfault once per release build so coredumps decode correctly. The GNU build ID logged at boot must match the symbol file. See Memfault remote debugging for the 91m1_ppp flow.

Kconfig snapshot

The .config file is useful when comparing behavior between releases or confirming that a feature (location, Memfault, FOTA, and so on) was enabled in the build you downloaded.

MCUboot-signed application image

The zephyr.signed.bin file is for signed application-only payload for over-the-air updates. CI FOTA tests build a patch-bumped copy locally; production OTA is typically managed through Memfault releases linked to your nRF Cloud project. Not produced for 93m1_at, which does not ship a signed update image in CI.

DFU package wrapping

The dfu_application.zip file is for the same signed image packaged with the manifest an nRF Cloud FOTA job expects, so a release can be deployed without rebuilding. Not produced for 93m1_at.

Everything else from the build

Only the files above ship. Per-domain MCUboot and TF-M output, .map and .dts files, and the partition metadata are not included. Build the same tag locally when you need them, as described in Building locally instead.

Serial Modem firmware (nRF9151 DK)

The nRF91M1 PPP Host Application (91m1_ppp on nRF54L15 or nRF54LM20B) needs a separate Serial Modem image on the wired nRF9151 or nRF9151 SMA DK, configured for PPP + CMUX on UART0 for an external host MCU. Every 91m1_ppp bundle carries the upstream archive CI tested that night, so there is no separate asset to download, and on-target tests flash that same archive, so what ships beside the host build is what CI verified against it.

The exact tag varies by SMHA release. Each bundle's README.md names the Serial Modem version and links to the upstream release page. Browse Serial Modem releases for the source, or use the zip already in your download.

Besides the full-flash .hex, the archive holds the ELF with debug symbols, a Kconfig snapshot, the signed application and MCUboot slot images, DFU packages for programming without a debugger, and a devicetree snapshot.

Extract it, flash the .hex on the Serial Modem DK first, then flash the host bundle's merged.hex on the host DK:

unzip serial_modem_v<tag>_nrf9151dk_nrf91m1.zip
nrfutil device program \
  --firmware serial_modem_v<tag>_nrf9151dk_nrf91m1.hex --recover

Replace <tag> with the version named in the bundle README.md (for example 2.0.0-preview3).

See nRF91M1 PPP Host Application's hardware setup for wiring and Board Configurator settings.

Flashing a release

Extract the zip, then flash merged.hex from the extracted directory.

West (from an initialized nRF Connect SDK workspace with the SEGGER J-Link connected):

west flash --hex-file merged.hex --recover

nrfutil:

nrfutil device program --firmware merged.hex --recover

Use --recover on the first flash or when TF-M or credential storage must be reset. For routine re-flash during development, omit --recover if you want to keep TF-M Protected Storage credentials.

For 91m1 two-board setups, extract the bundled Serial Modem archive and flash its .hex on the nRF9151 DK before programming the host merged.hex.

Console port after flashing

Bundle Typical console
91m1_ppp-nrf54l15-* Host DK VCOM1
91m1_ppp-nrf54lm20b-* nRF54LM20B DK VCOM0
91m1_ppp-nrf54lm20b-location-* nRF54LM20B DK VCOM0
93m1_ppp-nrf93m1-*, 93m1_at-nrf93m1-* nRF93M1 DK default console

See each application's hardware setup guide for wiring and serial port details.

Building locally instead

Release zips are convenience binaries. To modify firmware or match an unreleased commit, build from source in an NCS workspace:

cd applications/<app>
west build -b <board> -p
west flash --recover

Board identifiers match CI; see CI and contribution and each application's documentation for build arguments (for example Wi-Fi location overlays on 91m1_ppp).

Related documentation