Complex, real-life embedded system deployments often consist of multiple SoCs/MCUs running a mix of OSes, ranging from user-facing high-end nodes based on Linux/Android to MCUs dedicated to controlling specific low-level functions of the device, using an RTOS like Zephyr. Over-the-air updates for such systems poses a challenge, as the firmware needs to be updated in a safe & coordinated way.
Remote Device Fleet Manager is a permissively licensed, fully open source and self-hostable framework for modular, configurable OTA updates, fleet management and ML data management that supports Linux, Android, and, since recently, also Zephyr-based platforms.
This talk will delve into how RDFM was extended to support Zephyr-based systems, the motivations and considerations of the development and some interesting use cases it enables. RDFM allows for fully redundant updates, incl. rollback to the previous version, grouped device updates and mixed OS deployments.
To enable tight interoperability with Zephyr's ecosystem, the integration is based on the MCUmgr library, communicating with Zephyr devices via the SMP protocol. The MCUboot bootloader is used for managing the firmware on the device.