Applications

Applications (or Apps) are software products that build on top of MODE’s core APIs to accomplish a workflow-specific task.

MODE includes a proof-of-concept application simulator in our Developer Console. We also have produced several other domain-specific applications (e.g. Sensor Cloud Eval and the Mobility Cloud app) as design references for developers.

Developer

When an account is created on the Developer Console, this is considered a “Developer” account.

As a developer, you can configure and manage the cloud backend for a project. A project can have multiple developers. A developer manages all resources associated with a project, including homes, users, smart modules, and devices.

Developer Console

The Developer Console is the main tool you will use to build your IoT system. It is where you will set up your project, test and debug your firmware and apps, and monitor usage when the project is released to your customers.

If you have not already done so, create an account on the Developer Console here.

Device

A device, sometimes referred to as "device instance", is a single instance of a device class, i.e. a uniquely identifiable IoT product. A device represents a unit of the hardware product that you want to manage with the MODE platform. You will assign a unique identifier for each device. MODE maintains a database of devices for your project to track the information associated with each unit.

Examples of a device class are Mobility Cloud Gateway or Sensor Cloud Gateway. As an example, consider having many Sensor Cloud Gateways; each gateway is considered a device instance of the Sensor Cloud Gateway class.

Device Class

A device class is a logical grouping of devices, i.e. the make and model of your product. Devices that behave in the same way belong to a device class. When you modify a device class, all devices belonging to that class will be affected.

Examples of a device class are Mobility Cloud Gateway or Sensor Cloud Gateway. As an example, consider having many Sensor Cloud Gateways; each gateway is considered a Device that is an instance of the Sensor Cloud Gateway class.

Device Data Proxy (DDP)

Device Data Proxy (DDP) is a key-value store for a device as well as a way of communication with devices. DDP provides a mechanism for a device to watch the changes made by others to the data store, while the device itself can also update the data. Essentially, it acts as a proxy that allows bi-directional communication between devices and applications. It provides an alternative to the usual command-and-event method of communication. For more information on DDP, continue reading here.

Device Logs

Most deployed devices maintain a system log of the device’s history. These logs may assist in troubleshooting. MODE supports querying and downloading these logs through the Developer Console.

Firmware Bundle

Firmware on devices can be managed through the creation of firmware bundles. A firmware bundle is a collection of components (each a single-responsibility binary) that represent the firmware suite for a device class. Each device instance may only be associated with one firmware bundle at any one time.

Firmware Channel

A firmware channel represents a distribution or deployment environment for a device class. For example, a device class may have a channel for stable releases and channel for beta testing. Associating a channel to a firmware bundle is like releasing the bundle to a particular distribution. Multiple channels may point to the same bundle.

Devices by default use the stable channel. But project owner may override that for individual devices.

Firmware Component

A firmware component is a single-responsibility binary that is unique across a MODE project and can be versioned. It represents a single program that performs a certain function on a device. This gives developers the choice to design firmware in a modulized approach. For example, one may design a firmware architecture that consists of a component of "serial port communicator" and a component of "Bluetooth service daemon".

A component can potentially be used in multiple device classes of a project, as it can be included in multiple Firmware Bundles that are set up for different device classes.

Firmware Device Configuration Schema

A firmware device configuration schema is a structured piece of JSON associated with a particular firmware component version in a project. This JSON schema acts as a template for defining a configuration that will be used by the associated component version. The device configuration schema for a component version may consist of an arbitrarily number of sub-schemas, which are utilized by different parts of the firmware component software. For example, one may design a firmware component responsible for handling the transfer of files from a remote device to cloud storage, and vice-versa. The developer may choose to break these schema templates into multiple parts which correspond to different software within the component.

A device configuration schema can be shared across different component versions. For example, when creating a new component version, if no device configuration schema changes are needed, the schema from the previous component version can be copied.

Guaranteed Delivery

Guaranteed Delivery refers to Sensor Gateway's feature of delivering time series data to the cloud. Guaranteed Delivery ensures time series data are eventually stored in MODE's Time Series Database, even if a device's network connectivity is unstable.

Home

The main unit of device management is a home. A home in MODE contains a set of Users and Devices, allowing for trusted communication between all entities associated with that home. When a user is associated with a home, they are said to be a “home member” of that home.

Home Member

A home member is a project User that is associated with a home. The home member can control any device for any home for which they are a member. A User can be associated with multiple homes within a Project.

MODE Cloud

The MODE Cloud is a platform for IoT application development. Features include device and user management and access control, HTTP and MQTT APIs for device communication, over-the-air update service for device firmware, and many more. With its cloud-based time series database and easy integration with other cloud services, the MODE Cloud platform is ideal for collecting and processing data from your internet-enabled sensors and hardware.

MQTT

MQ Telemetry Transport, or MQTT, is a messaging protocol that is gaining popularity as a solution to connect low-powered devices. Although MQTT was originally designed for communications based on the pub/sub architecture, it can be used as a general-purpose “machine-to-machine” (M2M) communication protocol.

Mobility Gateway

Mobility Gateway is a MODE hardware product pre-configured to interact with MODE platform. It records a wide variety of automotive sensor data, including GPS information, driver state and driving behavior.

On-Demand Device Provisioning

On demand provisioning allows for device instances to be created “on demand”. There is no need to create device instances in the MODE database ahead of time. Instead, a new device entry is created on demand by end users.

To enable on-demand provisioning for devices, there is a setting in the Developer Console under “Settings” that must be enabled. This feature is disabled by default. If On-demand Device Provisioning is enabled, a device cannot be added manually from Developer Console. To read more on how to set up on-demand device provisioning, read our Devices guide.

Over-the-Air Updates (OTAU)

Over-the-Air Updates (OTAU) refer to the mechanism for updating firmware on devices remotely via the internet.

With MODE's firmware repository and distribution features, you can implement OTAU for your devices easily.

Pre-Provisioned Device

To assist with automated deployment of multiple devices, MODE supports pre-provisioning devices to facilitate zero-config installations of devices in the field. Device ID and API key are provisioned ahead of time using the Developer Console, and are embedded into the device hardware during manufacturing or factory configuration. A unique claim code is assigned to each pre-provisioned device and is usually shipped together with the hardware to the end user.

Project

On the MODE platform, a Project is a set of resources (Users, Homes, Devices, Smart Modules, etc.) that should be kept independent of the resources in other Projects. Each project is a "silo" - entities from different projects cannot communicate across the project boundaries.

Sensor

A sensor is any data acquisition device or electronic circuitry. Sensors may be used to measure/detect temperature, humidity, UV level, acceleration, motions, etc. In IoT, sensors are usually packaged into "sensor modules", which are responsible for transmitting the sensor data. (In Sensor Cloud, sensor modules send sensor data to the Sensor Gateway.)

Sensor Cloud

Sensor Cloud is MODE's solution for collecting sensor data and managing sensors, built on top of the MODE Cloud platform and leverages MODE's time series database technology. The technology stack includes the Sensor Gateway hardware and the Sensor Cloud web application.

Sensor Cloud Evaluation (SC Eval)

Sensor Cloud Evaluation (SC Eval) is an example web application, written in React-Typescript. SC Eval allows users of the application to view sensor data from sensor modules connected to their MODE Sensor Gateways, as well as manage their module and device connections. It serves as a template or reference design for customers in developing their own applications on top of our core platform.

Sensor Gateway

A Sensor Gateway is a MODE hardware product pre-configured to interact with the MODE platform and supports a variety of sensor modules. Sensor modules are attached to the Sensor Gateway via various protocols, and the data is pushed automatically to the MODE platform. Some examples of data collected via Sensor Gateway include temperature, UV level and humidity of an environment.

Sensor Module

A sensor module is an individual hardware unit with sensors. With Sensor Cloud, sensor modules connects to Sensor Gateway and transmit sensor data via the gateway to MODE's time series database. Depending on the design of the sensor module, they may connect to the gateway via USB, Bluetooth, or other proprietary wireless technologies.

An example of a sensor module is OMRON's 2JCIE-BL Environment Sensor.

Smart Module

Smart Modules are additional plug-in features you can add to your project.

Currently, the Smart Modules available include Time Series Database (TSDB), Stream Data Store (SDS), Video, Webhooks, Kinesis, etc. These can be found under the "Smart Modules" tab on the Developer Console.

Time Series Database

Time Series Database or TSDB is MODE's proprietary time series database technology. TSDB handles high-frequency time series data which can be difficult for ordinary databases to handle. High-speed query function enables interactive navigation of data timelines. Within MODE, TSDB can be enabled as a Smart Module for your project. For a detailed guide on how to add and use TSDB, continue reading here.

User

A user is an end-user of your IoT application. They can control devices connected to a home that they belong to. A user may control the devices from a mobile app or from a web application. These mobile apps and web user interfaces are referred to as Apps. An app interacts with homes and devices on behalf of a user.

MODE provides the API for user registration and verification so that your app can implement user onboarding easily.