Cirrus Link created Sparkplug an open source software specification, to help clients seamlessly integrate data between their sensors, devices or gateways and applications within an MQTT infrastructure. Sparkplug is rapidly becoming the standard for the Industrial Internet of Things (IIoT) to achieve cross industry interoperability and digital transformation.
History of MQTT and Sparkplug
MQTT is a publish/subscribe messaging protocol developed over 20 years ago to address the need for lightweight communications over low bandwidth networks. It is based on a topic structure, similar to a file structure on your computer, and a payload of data in any format (binary, ascii, raw files etc). MQTT is powerful because it enables any client or device to publish data on any topic with any payload, however it does not provide interoperability between third-party devices and applications.
The Internet expanded rapidly thanks to two technologies. First HTTP, a data exchange protocol, and then HTML, which was used to define the data sent by HTTP. Both technologies were needed, and the explosion of the Internet was made possible, and interoperable, by the uniform adoption of these common standards. The same is happening today with MQTT and Sparkplug, where MQTT is the exchange protocol and Sparkplug defines the data sent. It is expected that this will provide the same explosion of interoperability and adoption for IIoT.
The Need to Define Data
The need for an MQTT definition for the IIoT was critically overdue with the introduction of Big Data and Analytics to perform functions such as predictive maintenance or machine learning. Big Data applications cannot use proprietary data types as defined in Operational Technologies (OT) but rather needs data objects as it sees in Information Technology (IT). OT uses cryptic protocols from many different market segments, each with different data types and mechanisms for operations. MQTT needed a way to define information that comes from OT and deliver it to IT.
Seeing MQTT in action and the need for defining information is what led Cirrus Link to develop Sparkplug. With 20 years of experience using MQTT in real-time operational applications, Cirrus Link created a specification to define topic structure and payload definition for real-time industrial applications.
MQTT with Sparkplug
MQTT and Sparkplug create a publish/subscribe infrastructure that is simpler and more versatile than the legacy approach. With MQTT and Sparkplug any application or device that wants access to the data can subscribe. Sparkplug provides an OT-centric Topic Namespace Definition, IT-centric Payload Definition, and defines MQTT State Management. The publish/subscribe model is:
- Simple: The MQTT spec is 80 pages and Sparkplug adds another 60.
- Open Source: Sparkplug is an open standard that is license-free to use and is a great starting point for how to use MQTT.
- Flexible: MQTT is based on a publish/subscribe model that decouples data publishers from consumers, which means subscribers do not need to know who provides the information to which they are subscribed.
- Lightweight: MQTT reports by exception, minimizing the data footprint and leading to more efficient communications.
- Cost-Effective: IIoT powered by MQTT provides a cost-effective solution for access to data on brownfield devices.
- Vendor Support: The number of vendors natively implementing MQTT-Sparkplug, both on the hardware and software side, is growing rapidly. All of the leading cloud vendors, IoT platforms, edge computing platforms, big data and other third-party applications support MQTT
- Supports Unlimited Data Consumers: Moving to a publish/subscribe model with MQTT enables the transition from a one-to-one to a one-to-many approach, encouraging innovations while making it easy to adopt new technologies.
Architecture diagram showing MQTT/Sparkplug-enabled devices and applications
The Eclipse Foundation and Sparkplug Working Group
The Eclipse Tahu project is based on the Sparkplug specification and provides a space for members to collaborate and contact the Cirrus Link team with any inquiries. Client library implementations are listed so OEMs can access and use the programming language they use. This project encourages more industry members to implement Sparkplug to access the power of MQTT.
Due to the varying types of OEMs and companies that implement Sparkplug, or plan to, the Sparkplug Working Group was created to provide a space to collaborate.
Benefits of MQTT
- Simple and open
- Bandwidth efficient with up to 90% bandwidth reduction. Learn more here.
- State aware
- Decouples devices from applications
- Utilizes latest TCP/IP security. Read the whitepaper here.
Benefits of Sparkplug
- Fully auto discover tags
- Includes all tag metadata - source of truth at the edge
- State aware
- Provides industry interoperability with open standard
- Store and forward
- Open standard
Chariot MQTT Server
Cirrus Link offers the Chariot MQTT server, which is an OASSyS MQTT 3.1.1 compliant server for use in large scale deployments. Learn more about the Chariot MQTT Server here.
MQTT/Sparkplug Modules for the Ignition Platform
Cirrus Link has a full range of MQTT modules that use Sparkplug for the Inductive Automation - platform, enabling full IIoT capabilities for new or existing applications. MQTT architectures need three components, MQTT Clients that produce data, MQTT Clients that consume data and MQTT Servers (broker) that distribute the data.
See our modules that utilize Sparkplug here.
Diagram showing MQTT/Sparkplug modules for Ignition