Firmware management

Comprehensive description of Spotflow firmware management including technical details.

Firmware management is a feature that allows to organize one or more firmwares, their versions and associated symbol files and devices, designed specifically for embedded devices.

List of firmwares in the web application.
  • The concept of Firmware represents set of software components deployed to a fleet of devices (typically as single executable binary, e.g. an ELF file).
  • Firmware can have one or more Firmware Versions.
  • The firmware also has associated Symbol Files, each belonging to one or more firmware versions. All symbol files must be assigned to a firmware.

Each firmware can have multiple versions and symbol files.

Firmware targeting single platform

If your firmware is fairly simple (in the terms of builds), we recommend creating single firmware (e.g. Air monitor x8 firmware) and create new version (e.g. v1.2.4) with symbol file for each new build.

If your workflow includes creating many pre-prelease build, we recommend also creating one pre-release, alpha, dev or similar version and assign all symbol files from pre-release builds to this version. Upon release, you can promote the pre-release symbol files to a release version or upload new ones, depending on your workflow.

Diagram of the firmware management concepts.

Firmware targeting multiple platforms (hardware or OS)

If your firmware needs to be build for multiple platforms (e.g. different boards or operating systems), you choose one of the following strategies:

1. Stick to simple, single-firmware management (described above) and distinguish between platforms via versions

In this case, you can create separate versions for each platform by appending the platform name to the version (e.g. v1.2.4-arm, v1.2.4-riscv). Same goes for the pre-release build, where pre-release version can be split into pre-release-arm, pre-release-riscv and so on.

Diagram of the firmware management concepts.

When to choose?

This strategy is suitable for small to moderate number of target platforms, managed by the same team with the versioning scheme is (almost) the same for all of them.

2. Create multiple firmwares, one for each platform

In this case, you can create separate firmwares for each platform (e.g. Air monitor x8 firmware - Zephyr, Air monitor x8 firmware - FreeRTOS).

In each firmware, you can use the simple versioning schema (e.g. v1.2.4) or complex one to incorporate one or more targeting dimensions (e.g. v1.2.4-arm, v1.2.4-riscv).

Diagram of the firmware management concepts.

When to choose?

This strategy is suitable for moderate or large number of target platforms, managed by the multiple teams with possibly different versioning schemes.

Other scenarios

If none of the strategies above fits your scenario or you are having other issues, please open a Feature request or let us know via email hello@spotflow.io or our Discord. We will be happy to work with you to incorporate necessary changes to the platform or find other suitable solution.

Relation of firmwares, versions and symbol files to devices

If your devices are sending build IDs as part of crash reports or via Session Metadata (coming soon), they will be linked to the corresponding firmware and version in the Spotflow platform.

When the devices are linked, you can obtain various insights about your fleets such as number of devices running latest firmware version.

Each crash report shows the originating firmware and version.

How is this guide?