Overall architecture

The challenge

Kiso was built to answer the challenges that comes with the development of the IoT market. It was built with a strong focus on the constraints that IoT devices have. Its key features are:

  • Battery management
  • Small memory footprint
  • Broad sensor support
  • Broad MCUs support
  • Broad connectivity support
  • Firmware update mechanisms and device management

The key challenges in defining the architecture were:

  • How can we design enough abstraction from the hardware to have generic applications running on specific hardware?
  • How can we design Kiso in a way that supports application development but does enforce strict behaviour patterns (How to stream data, etc.)
  • What should be Kiso code, what should be application code?
  • Which components should exist within Kiso, what do they contain?

We also need to consider our quality goals

The abstracted overview


The components overview



The component’s expected design

Base pattern (for all)

component_base_pattern-kiso-error note: Each component, besides their outside dependencies, are free to choose its architecture based on its owns needs.

Base components (Essentials, Utils)


Low layer components (Drivers, Cellular, …)


High layer components (ServalPAL)