Firmware Files
Firmware downloads and changelogs are linked on each individual product page. The product page for your specific gateway variant always links to the correct firmware.
HEX File Naming
Firmware is distributed as Intel HEX files following this format:
app-nrf91-origin+<version>+<variant>~<packaging>.hex
Version — three dot-separated numbers, e.g. 0.12.4. The three parts are individual numbers: 0.3.11 is higher than 0.3.9.
Variant — specifies the hardware variant, e.g. hw4 for the wM-Bus Gateway V4. Add-on variants may include additional suffixes.
Packaging (after ~) — indicates what is bundled in the file:
| Packaging | File name example | Use case |
|---|---|---|
| (none) | app-nrf91-origin+0.12.4+hw4.hex | Remote firmware update via Lobaro Platform or MQTT |
boot | app-nrf91-origin+0.12.4+hw4~boot.hex | Local update via USB Config Adapter (includes secure firmware) |
The firmware name (without packaging and without .hex) is shown in the startup log and included in uplinks to the backend.
The Secure Firmware (app-nrf91-secure)
The nRF91 devices run two separate firmware images:
-
app-nrf91-secure— the secure firmware (e.g.app-nrf91-secure+0.3.4.hex). This runs in the TrustZone-M secure context of the Cortex-M33 processor. It partitions the chip into secure and non-secure areas, boots the application firmware in non-secure context, and provides a controlled API for security-sensitive operations such as the device's unique ID, secure storage, and the cryptographic primitives required for DTLS and TLS (used by CoAP and MQTT). -
app-nrf91-origin— the application firmware. It runs in non-secure context and calls into the secure firmware for crypto and identity operations.
This separation means the secure firmware only needs to be updated when the API between the two layers changes. The changelog and individual update files indicate which secure firmware version is required for each application release.
For most updates, only the application firmware (app-nrf91-origin) changes. The secure firmware (app-nrf91-secure) version only needs to change when explicitly stated in the changelog.
Updating the Firmware
For step-by-step instructions see the Firmware Update Guide:
- Local via USB — use the
~boot.hexfile with the USB Config Adapter and Lobaro Config Tool - Remote via CoAP — over-the-air via NB-IoT / LTE-M (Lobaro Platform)
- Remote via MQTT — for 3rd party MQTT backends