The Eclipse Kiso software stack is mainly developed in C, including a core component “essentials” and HAL, device drivers, network support, FOTA etc.
Essentials comes to serve the needs for agility in software and hardware development, where changing the underlying OS and hardware does not necessarily mean scrapping all the already developed code. It defines HAL APIs and includes an OS adaption layer.
HAL (Hardware Abstraction Layer) which consists of two sub-components: BSP (Board Support Package) and MCU (Micro Controller Unit). If an application needs to migrate from a hardware A to hardware B it needs to have the BSP/MCU for the B hardware without the need to port the entire application.
Device drivers are provided for common devices normally available for IoT application, and more drivers will be added in the roadmap as more hardware platforms are supported.
Network support is also in place. Kiso includes a generic network stack itself and at the same time adapts third party solutions for supporting BLE, Wlan, LoRa and popular cellular network features.
FOTA (Firmware Over-the-Air) is also an important feature in Kiso for IoT devices. It is an efficient and automatic way of distributing software update, configuration and also a way of device management.
In addition to the software stack, the Eclipse Kiso provides hardware reference designs including schematics, block diagrams, and datasheets. This is not necessary for using Eclipse Kiso software part, but could be interested when developers want to develop their own hardware. Kiso will run and test on the hardware reference designs before they are published.
Moreover, relevant environment regarding toolchains, continuous integration setup, test framework and documentation will also be available.