Engineering note
Take your High Reliability Control System to the Stars
When I started at IOT-eq a little over two years ago, the first thing I did was distribute copies of “The Power of 10: Rules for Developing Safety-Critical Code” among our developers. These rules appeared in a 2006 article by Gerard J. Holzmann from NASA/JPL. Later, while reading a Q&A by SpaceX engineers about the software architecture used for the successful Demo-2 launch, I discovered that they use those same rules when developing software.
That was only the start. The similarities between IOT-eq’s software and system design and those used by SpaceX are startling. This article highlights some of those similarities as a guide to keep doing the things we are doing right.
Detached HMI process using Chromium, HTML, and JavaScript
Web technologies have achieved a high level of maturity after many years of worldwide use. As SpaceX does, IOT-eq uses Linux-based industrial panel PCs running Chromium for our new human-machine interfaces. HTML and JavaScript pages provide a modern view of the control system.
This architecture detaches user interaction from the control system, providing a safe, modern, and efficient way to display information without risking the process.
Multiprocessing
In the SpaceX Q&A, the engineers describe distributing work among thousands of Linux computers and microcontrollers. Dividing tasks among multiple similar processors is something IOT-eq also uses and recommends in customer architectures.
For example, each Duro1 control platform contains five microcontrollers that handle I/O and one dual-core Linux processor. Some smaller systems created for customers have five Linux computers and at least twelve microprocessors running together in a seamless, high-reliability system.
A sharp division between software and configuration
Some developers believe in monolithic software created with one application in mind. But monolithic software is difficult to maintain and not portable among customers.
Like SpaceX, IOT-eq divides software into base software and configuration. Every SpaceX mission has a unique configuration containing guidance and navigation parameters. In the same way, every IOT-eq project has a configuration unique to the customer system.
That customer configuration is the customer’s intellectual property and runs only on their systems. Our base software, however, is multipurpose software that keeps becoming more reliable because we continue building on it. Unlike a launch that has already happened, we can distribute software upgrades to make existing control systems better.
What this means
Technology should not be used merely for its own sake; it must offer tangible benefits. Applying proven technologies helps ensure that a control system is stable, maintainable, and ready for the future. These are the cornerstones of a successful system that can save operators and engineers many headaches.
By learning every day, applying continuous improvement, and following the footsteps of giants, we can bring the best available technology to industrial customers.
References
- G. J. Holzmann, “The Power of 10: Rules for Developing Safety-Critical Code,” IEEE Computer, 39(6), 2006.
- We are the SpaceX software team, ask us anything!