In the presentation Erlang (nearly) in space by Dieter Schön. Dieter, drawing from his extensive background in the space industry, discusses the use of Erlang for testing spacecraft systems, detailing the challenges of updating systems post-launch and the intricacies of spacecraft testing architectures. He explains how a modular framework built with Erlang allows for rapid development and flexibility, addressing specific mission challenges such as incompatible communication protocols and power supply systems. Dieter also shares advancements like a web-based GUI for monitoring devices and future projects aimed at simulating spacecraft components. He emphasizes the organizational benefits of Erlang, including concepts like single assignment, hot reloading, and the use of a PostgreSQL database for managing test parameters.
Erlang (nearly) in space: A comprehensive overview
The challenges of spacecraft testing
Building a satellite is only part of the challenge; testing it is equally complex. Once a spacecraft is launched, updating or repairing faulty components is nearly impossible. This makes the testing phase absolutely critical.
Dieter Schön, who works for a spacecraft manufacturer, outlined the different stages of spacecraft testing, which include:
- Engineering models for simulation and validation.
- Flight models that undergo rigorous stress tests.
- Integration of power, communication, and instrument subsystems.
To accomplish this, testing setups rely on specialized hardware and software frameworks, often custom-built for each mission. The traditional approach involves manually developing new test software for every spacecraft, which is inefficient and repetitive.
Why Erlang?
Modularity and flexibility
One of the key benefits of Erlang is its ability to create a modular, reusable framework for spacecraft testing. Rather than reinventing the wheel for every mission, Dieter and his team designed an Erlang-based system that could be quickly adapted using standard building blocks.
With Erlang’s actor model, individual components operate as independent processes, allowing engineers to modify or replace subsystems without disrupting the entire framework. Additionally, binary pattern matching in Erlang makes it highly effective for working with complex network protocols used in spacecraft communication.
Real-time adaptability with late binding
Space missions often require software that can adapt dynamically. Erlang’s late binding capability enables processes to handle different signals at runtime, making it possible to reconfigure test setups on the fly without restarting the system.
Fault tolerance and hot code reloading
Satellite testing requires long-running applications that must not fail. Erlang’s hot code reloading allows software updates without shutting down the system, ensuring uninterrupted test execution. Combined with its fault tolerance model, this significantly reduces downtime and prevents costly errors.
Real-world applications: Space missions using Erlang
Mission 1: Microwave sound instrument on MTOP satellite
One of the first use cases Dieter described was an instrument designed for measuring atmospheric properties from space. However, incompatible communication protocols posed a major challenge. Using Erlang, he developed a modular gateway that could interface between the differing protocols, ensuring seamless communication.
Mission 2: Space rider – Autonomous resupply vehicle
A mission to send supplies to the ISS required a redundant power supply system. Using an Erlang-powered solution called Hot Red, the team ensured power transitions were seamless, preventing disruptions to mission-critical systems.
Mission 3: Crystal – Ice thickness measurement satellite
For a project involving radio band measurement for ice thickness analysis, Dieter leveraged BeagleBone Black hardware alongside Erlang, opting for stability and reliability over alternatives like Raspberry Pi.
Extending Erlang Beyond Space
While space applications were the focus, Schön also highlighted how the same Erlang-powered framework is being adapted for other industries:
- Battery cell testing: Real-time monitoring and automated report generation.
- Stepper motor simulation: Simulating spacecraft motion with precision calculations.
A key takeaway is that Erlang’s benefits extend beyond its traditional use cases, proving valuable in any industry requiring reliability, concurrency, and adaptability.
Supporting tools and technologies
Dieter’s approach also integrates:
- PostgreSQL for test result storage.
- Common Test for internal verification.
- LiveView (Elixir) for a web-based GUI, offering real-time test monitoring.
- Rebar for efficient code management.
These tools help streamline the testing process, ensuring data integrity and efficient debugging.
Conclusion
Erlang’s capabilities make it an excellent choice for mission-critical applications, and Dieter Schön’s work in spacecraft testing is a testament to its versatility. From modular frameworks to real-time adaptability, Erlang simplifies complex challenges in space technology while maintaining high reliability and efficiency.