As the IoT platform model is attracting a larger following and is carving its way into large industrial corporations, building open-source IoT platforms is a logical step towards making the IoT platform movement available to as many users and contributors as possible.
We at Record Evolution love open source and continuously strive to develop an IoT product that combines the benefits of open source and closed source. Open source technology reveals tremendous opportunities in terms of know-how democratization and the development of truly global collaborative intelligence. But at times, especially in critical and security-intensive production environments, the benefits of closed source may prevail. To address these complexities, users on the Record Evolution platform are given the opportunity to develop their projects both as open source and closed source.
The Open Source Way
Open-source is a decentralized software development model that puts open collaboration at the forefront. Peer production is the guiding principle of open-source development. So a key component of open-source is making items such as source code, blueprints, and documentation free and available to everyone.
Here is a snapshot of the guiding principles behind the open source way:
- Transparency. This involves continual and unlimited access to the information necessary to complete one’s work. This way, developers share ideas, build on each other’s insights, and make decisions more effectively.
- Collaboration. This involves free participation in different projects, the ability to modify the work of others, and so opening up to new possibilities. The ideal of open source is having people put their heads together to tackle problems that cannot be solved by isolated individuals.
- Release early and often. This entails rapid prototyping and establishing iterative approaches. The goal is to streamline the discovery process and come up with better solutions in an environment that encourages freedom to experiment and change perspectives.
- Inclusive meritocracy. This is about including everyone in the decision-making process, trusting that good ideas and suggestions can come from anywhere and that every voice matters.
- Community. Building a group of like-minded individuals to join forces around a common goal, base their decision-making on shared values, and put overarching goals before personal agendas is at the core of the open-source mindset.
To learn more about the vision behind the open-source movement, the organization has prepared a guidebook containing best practices and tentative guidelines for creating an open-source community and maintaining it: The Open Source Way 2.0.
And here is our list of the top open source IoT platforms that are entirely free to use and allow you to collaborate in an open way:
OpenRemote is a 100% free open source IoT platform. The user-friendly interface makes it possible for companies and individuals to integrate and manage their assets within one central location, design applications and workflows, and visualize data in dashboards. The platform also supports an array of data processing tools.
Some of the key capabilities of OpenRemote are:
- integration of different asset types,
- support of standard protocols such as HTTP or MQTT as well as specific protocols like KNX for connecting IoT devices,
- a customizable manager interface for the automation, monitoring, and control of processes, apps, and devices,
- a mobile app so that you can connect to your phone services and push notifications,
- Multi-tenancy with user roles and a full account management service.
Check them out on GitHub here.
ThingsBoard is an open-source IoT platform for the collection processing, analysis, and visualization of data. The platform also comes with a device management service and users can connect their devices using any standard protocol such as HTTP, MQTT, or CoAP. With ThingsBoard, users can build and manage their own workflows.
ThingsBoard features include:
- IoT device management with monitoring and control mechanisms,
- scalability with the capability to orchestrate multiple devices at the same time, across the entire IoT ecosystem
- enables users to create and manage alerts for connected devices (e.g. in the event of a disconnect or inactivity), other assets, and customers with real-time alarm monitoring.
- extending default functionality with customizable rule chains, widgets, and transport implementations,
Check them out on GitHub here.
Thinger.io is a scalable IoT cloud platform for connecting devices. You have an easy-to-navigate ready-to-use cloud infrastructure that allows users to integrate, monitor, and control millions of IoT devices. The platform creators believe in the importance of a great developer experience. In their own words, the platform is “easy to use, and easy to understand. No more complex code for doing simple things.”
The platform is hardware-agnostic. You can connect any device, the most typical being Arduino, ESP8266, Raspberry Pi, and Intel Edison. You simply install the server in your own cloud and use the open-source libraries for integrating the IoT devices.
Check them out on GitHub here.
This is an open-source IoT platform that focuses on edge computing. Mainflux is patent-free and end-to-end, under an Apache 2.0 license, and covering most of the things needed for developing IoT solutions, applications, and products.
Users can benefit from the platform’s full transparency, full user control over their own assets, as well as the possibility to do community testing, support, and bug fixes. As the platform was built as a set of containerized microservices orchestrated by Kubernetes, there is no vendor lock-in.
Mainflux provides the complete infrastructure and middleware to execute:
- Device management
- Data aggregation & data management
- Connectivity & message routing
- IoT application enablement
Arduino is one of the best-known names in open-source IoT projects, encompassing both hardware and software. The Arduino Cloud IoT is a cloud solution to configure, program, and connect IoT devices using the Arduino IoT Cloud service. The Arduino software includes two types of integrated development environments (IDE1 and IDE2). A variety of boards, shields, and carriers make up the hardware palette.
The blend of IoT hardware and software makes Arduino an easy-to-implement, easy-to-use IoT platform that needs no further introduction.
Open-Source at Record Evolution
At Record Evolution, we have several projects that have been open-sourced for everyone to use, enjoy, and contribute. Here are two open-source projects related to the extraction and reading of IoT measurement data. These are relevant when it comes to IoT development scenarios where you need to extract and normalize IoT data and are dealing with device data in heterogeneous formats.
The open-source project TDMtermite is for reading the proprietary file format TDM/TDX.
TDMtermite is a C++ based library that decodes the proprietary file format TDM/TDX for measurement data. This is how users can extract and read data from National Instruments LabVIEW TDX/TDM files and export them as .csv files.
We use TDMtermite in conjunction with the Record Evolution Platform. TDMtermite is used to integrate measurement data into the platform’s ETL processes. On the platform, the TDMtermite library is available as a Python module and as a command-line tool. Thanks to the Python module of TDMtermite, data scientists can include TDM formats in their existing data pipelines by providing access to both raw data and metadata in terms of native Python objects.
First introduced by National Instruments, the TDM format relies on the technical data management data model and is employed by LabVIEW, LabWindows™/CVI™, Measurement Studio, SignalExpress, and DIAdem.
Check out TDMtermite on GitHub here.
The open-source project IMCtermite is for reading the proprietary imc Bus Format with the file extension .raw.
IMCtermite makes it possible to extract measurement data from binary files with the extension .raw, first introduced and developed by imc Test & Measurement GmbH. On the Record Evolution Platform, we use the IMCtermite library both as a command-line tool and as a Python module to integrate the .raw format into any ETL workflow.
Thanks to the integrated Python module, the extracted data can be stored in any open-source file format accessible by Python, such as .csv, JSON, Parquet, or even HDF5.
Check out IMCtermite on GitHub here.
About Record Evolution
We are a data science and IoT team based in Frankfurt, Germany, that helps companies of all sizes innovate at scale. That’s why we’ve developed an easy-to-use industrial IoT platform that enables fast development cycles and allows everyone to benefit from the possibilities of IoT and AI.