A Runtime Configuration Registry for RIOT
Lasse is an Informatics of Technical Systems graduate from HAW Hamburg, earning his Bachelor’s degree in 2023. His thesis focused on creating a runtime configuration system module for RIOT OS. Currently, he’s pursuing a Master’s degree at HAW Hamburg while working with the Internet Technologies Group, where he now focuses on designing an OSCORE abstraction layer for RIOT OS.
Many applications on the Internet of Things (IoT) use parameters that need to be changed at runtime. Typical examples can be authentication credentials, the sampling rate of a measurement or an LED color. Furthermore in modern industrial spaces runtime parameters of devices are remotely changeable using plug-and-play capable protocols such as LwM2M etc. As of today, RIOT OS does not provide an API for runtime parameters. Instead, each application needs to implement custom, often redundant logic for its specific use case. A fully featured integration of external Configuration Managers such as LwM2M proves to be particularly difficult given the vast amount of drivers and devices that need to be supported and maintained for every single management tool.
In this talk we introduce a system-level configuration registry that allows for setting and getting configuration parameter values at runtime. We organize parameters according to a standardized schema that includes type information and other metadata such as name and description fields to make them accessible to other modules such as Configuration Managers. The parameter values are optionally persisted on local storage. To change the parameter values we specify a CLI and discuss designing a CoAP API. Furthermore, we discuss important API design decisions and explain why standardized, module-independent schemas for common configuration parameters are essential for the integration of external management tools such as LwM2M.