Basic Firmware Architecture for Connecting a Device

The following is a simple, common architecture, for custom edge firmware to connect to Exosite’s IoT Platform, Murano.

Official Documentation can be found here: Device Connectivity Overview - Exosite Documentation

In the image, the “Edge Device” is typically an IoT Gateway, but could be an end device directly, or simply some compute resource on a network that has access to both the end devices and the internet.

“Main”
Main is the core of the application and is responsible for, based on the configuration, executing the correct polling rates, collecting data from the end devices, and transmitting that data to Murano

Data Collection
Within your firmware, you need a method to get the data from the end devices. This is often some sort of Fieldbus Protocol, but is entirely dependent on where you are getting your data from and what it supports.

Data Transmit
The firmware sends data to Exosite via either HTTPs or MQTT. More details on that can be found here:

Config
Configuration management can occur in multiple ways. Two options are described below.
1.) The device can have it’s own configuration module/UI and report its configuration to Murano
2.) The device can read a configuration set remotely in Murano / ExoSense and apply it locally