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.

- 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.

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.
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.
When to choose?
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).
When to choose?
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.

How is this guide?