How it works

Our software stack is based around Embedded Linux and IoT, focusing on robustness, security, and integration tools. The stack consists of Distribution & Upgrades, Certificate Management, Serial communications, Data logging and Frontend Visualizations.

Distribution & Upgrades

Modio Embedded OS is a distribution aimed for embedded and unattended machines. We release on a time based schedule, and keep in sync with Debian. All of our embedded devices in the field run Modio Embedded OS. When a security update in the Linux environment is published, we evaluate the need for an instant release. We try to keep Modio Embedded OS limited in scope, in order to reduce the size on disk, updates and general churn. It includes a set of tools for delta based software upgrades between versions, and is tailored for unattended devices.

Caramel

Caramel is our CA system, it manages TLS certificates, updates & refreshing, in a manner that doesn't require the use of second channels like OCSP and revocation lists to remain secure. Designed to be simple to use for machines and automated deployments, for systems with both sporadic and constant internet access.

Serial Communications

On the SCADA and IoT side, you often have to communicate with serial devices. Even if protocols are standardised, they require a database of knowledge about hardware, representation and conversion of units. Our serial library is a set of tools to abstract and manage these databases of devices for Modbus, Mbus, ILM, Zigbee, etc.

Data Acquisition & Logging

It's not enough to communicate with serial devices, the data has to go somewhere. Our logging layer is the client & server side with associated API's. The server side provides some extra features on top of the normal Zabbix ones, in the shape of certificate validation, semantic and syntactic data validation, automatic registration and notifications.

Dashboard & Visualizations

Simply having the data doesn't end a project, it has to be presented as well. Our dashboard is based on Freeboard, with a stateless, cache-friendly, REST-ful API to Zabbix data stores. This layer includes Javascript libraries, Python framework, a Javascript & SVG based display for kiosk mode displays of flowgraphs.