Skip to main content

Why open source is essential for cyber-physical systems (CPS)

· 3 min read
Nicolas Rabault

In embedded and IoT (Internet of Things) design, there has always been a tight coupling between hardware devices and software. Systems have been more and more complex.

In contrast, modern software design (outside of embedded/IoT) is more flexible. This modern design is less monolithic and is based on microservices concepts. Instead, it uses hardware-independent blocks of code.

Now, when we look at cyber-physical systems, those characteristics are precisely needed – scalability and flexibility with the choice of hardware.

How do we as an industry make this huge transition from monolithic, tightly-coupled systems to open source microservices-type approach? We are discussing designing systems that allow for changes at the board level so that, for example, an ESP32 board could be swapped out for one from NXP if desired.

Since my studies and experiences in companies began, I have been confronted with the same problems.

Change a component, a system, add a feature, and the whole project had to be redesigned. At the same time, I saw my friends working in the software industry change course with alarming ease. All the knowledge we developed to redo what had already been done could be much more efficient if it could be reused from project to project, whatever the purpose.

And then having the ability to reuse the code and methods developed by others. This could be represented by SDKs in the software domain, for example.

A common tool adaptable to the project

With Luos, our goal is to give each developer the necessary and useful tools so that he can be as flexible and efficient in his personal or professional project. And for this change in method to take place and for us to talk about a change in philosophy beyond Luos, using the open-source philosophy was an obvious choice.

The open-source philosophy will allow anyone to improve, reuse, and share code.

Coupled with a microservices philosophy, unrelated pieces of hardware or code will be able to work together without having to know specifically how. This implies being vigilant about the system's security, but these checks are done independently depending on the parts of the code.

The next piece of the puzzle needed is to share an open API allowing users to use it as a command base, guaranteeing good compatibility. Users should be encouraged to improve those APIs, create new ones for uncovered features, and share those to create a versatile ecosystem.

Sharing experience and knowledge

One of the main obstacles to using collaborative projects and, more precisely, open-source projects is often the lack of direct contact if one is required to use the technology and needs help, for example. Open-source projects need to be carried out, understood, maintained, and improved by users who invest in themselves because they believe in the idea.

That is why we decided a few months ago with the Luos team to develop a community on Discord of cyber-physical systems, embedded and edge developers to exchange visions, best practices, and tools to use with CPS, embedded and edge systems. As our idea/project involves a change in how we develop projects, we need to surround ourselves with as many people as possible who work daily in embedded systems of all types.

Makers have joined the community, companies such as Siemens, Dyson, and Bosch, students, and researchers who exchange to help, learn from each other, and evolve together.

This community guarantees the maintenance of the technology and its exchanges keep ideas flowing, which helps more and more projects.

A technology that improves thanks to the community

With a community of CPS, embedded and edge developers who understand the issues and challenges that many face, it is also very interesting for Luos since the code developed will improve the technology globally. Linux or Github are living examples of this.

The embedded, CPS and edge developers Discord community already now has over 11,000 members who exchange ideas daily.

If you are interested in joining the community and doing your monitoring, getting help, exchanging ideas or ways to develop, we invite you to join.

Get started with Luos