Discuss the intricacies of space-worthy software

During the dawn of the space race, when computers took up entire rooms, satellites and probes had to rely on analog electronics to read from their various sensors and transmit the resulting data on the ground. But it wasn't long before humanity's space ambitions outpaced these early systems, leading to vast advancements in space-based digital computers in support of NASA's Gemini and Apollo programs. Today, building a spacecraft without an onboard computer (or even multiple redundant computers) is unheard of. Even the smallest CubeSats is probably running Linux on a multicore system.

Jacob Killelea

As such, software development has become an integral part of spacecraft design - from the low-level code responsible for initiating emergency systems, to the 3D touchscreen graphical interfaces used by spacecraft. crew to navigate the craft. But as you'd expect, the stakes here are higher than any normal programming task. If your code hangs here on Earth, it's an annoyance. If it locks onto a lunar lander seconds before it hits the surface, that could be the end of the mission.

To learn a little more about this fascinating area of ​​software development, we invited Jacob Killelea to host last week's Software for Satellites hack chat. Jacob is an engineer with a background in aero and thermodynamics, control systems and survival. He has written code for spacecraft destined for the Moon, and perhaps most importantly, is an avid Hackaday reader.

Reliability above all

The conversation started off pretty much as you might expect, with several people wanting to know what kinds of languages, frameworks, and even operating systems are used in spacecraft today. Jacob says that while there's an incredible amount of variability depending on the hardware and what the software needs to do, much of it is familiar to people like us. He says the language of choice tends to be C, and even if Linux is used, it tends to be for higher-level tasks that don't need to happen in real time. If it doesn't run on bare metal, critical code is likely to run on something like VxWorks. Although even here he warns that the aerospace community prefers to stick with what works, you may find that the spacecraft you've been assigned to write code for is running an early 1900s operating system. 2000s.

Reliability is ultimately the name of the game when writing code for space applications, which has led the conversation towards fault tolerance and so-called "safe mode" operation. Since faults can be triggered by external events beyond your control (such as cosmic rays), even the most carefully designed and tested code can crash. In this case, there must be a secondary system that can take over and put the machine in a known good state. Interestingly, these "safe mode controllers" are often a dedicated module and not just a different mode of operation from the main computer.

This provides true redundancy in the event of a complete computer failure, but is not without risk: Jacob recalled a mission he had investigated where a controller designed for a previous vehicle had been reused on another. ..

Discuss the intricacies of space-worthy software

During the dawn of the space race, when computers took up entire rooms, satellites and probes had to rely on analog electronics to read from their various sensors and transmit the resulting data on the ground. But it wasn't long before humanity's space ambitions outpaced these early systems, leading to vast advancements in space-based digital computers in support of NASA's Gemini and Apollo programs. Today, building a spacecraft without an onboard computer (or even multiple redundant computers) is unheard of. Even the smallest CubeSats is probably running Linux on a multicore system.

Jacob Killelea

As such, software development has become an integral part of spacecraft design - from the low-level code responsible for initiating emergency systems, to the 3D touchscreen graphical interfaces used by spacecraft. crew to navigate the craft. But as you'd expect, the stakes here are higher than any normal programming task. If your code hangs here on Earth, it's an annoyance. If it locks onto a lunar lander seconds before it hits the surface, that could be the end of the mission.

To learn a little more about this fascinating area of ​​software development, we invited Jacob Killelea to host last week's Software for Satellites hack chat. Jacob is an engineer with a background in aero and thermodynamics, control systems and survival. He has written code for spacecraft destined for the Moon, and perhaps most importantly, is an avid Hackaday reader.

Reliability above all

The conversation started off pretty much as you might expect, with several people wanting to know what kinds of languages, frameworks, and even operating systems are used in spacecraft today. Jacob says that while there's an incredible amount of variability depending on the hardware and what the software needs to do, much of it is familiar to people like us. He says the language of choice tends to be C, and even if Linux is used, it tends to be for higher-level tasks that don't need to happen in real time. If it doesn't run on bare metal, critical code is likely to run on something like VxWorks. Although even here he warns that the aerospace community prefers to stick with what works, you may find that the spacecraft you've been assigned to write code for is running an early 1900s operating system. 2000s.

Reliability is ultimately the name of the game when writing code for space applications, which has led the conversation towards fault tolerance and so-called "safe mode" operation. Since faults can be triggered by external events beyond your control (such as cosmic rays), even the most carefully designed and tested code can crash. In this case, there must be a secondary system that can take over and put the machine in a known good state. Interestingly, these "safe mode controllers" are often a dedicated module and not just a different mode of operation from the main computer.

This provides true redundancy in the event of a complete computer failure, but is not without risk: Jacob recalled a mission he had investigated where a controller designed for a previous vehicle had been reused on another. ..

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow