SpaceX rockets fly with software you can find on your Android phone
The software packages that SpaceX uses in its Falcon rockets, Dragon capsules and Starlink satellites are closely related to programs that may be on your PC or phone.
NASA astronauts Bob Behnken and Doug Hurley used the foundation of Google’s Chrome browser – the most widely used browser in the world – every time they tapped the touchscreens that controlled the Crew Dragon capsule flew to the International Space Station on the last two days in May. And every SpaceX rocket and spaceX satellite uses a variation of the Linux operating system that powers each of the billions of Android phones in the world.
In a Reddit AMA that took place when Hurley and Behnken helped on the space station, SpaceX programmers revealed how Elon Musk’s company had worked to modernize its part of the space industry, an area that still relies on decades of technology. Software is less visible than some of the company’s imaginative hardware, like booster rockets that return to Earth and land themselves. But it is just as important because it controls all aspects of space travel. For example, the software executes the SpaceX emergency abort sequence that the Crew Dragon capsule throws away in the event a Falcon missile detonates.
Chromium interface from Crew Dragon
SpaceX uses Chromium, Google’s open source foundation for the Chrome web browser, for the Crew Dragon’s touchscreen user interface, said Sofian Hnaide, a developer who worked on the Display Dragon display technology used when launching Demo-2 Astronauts to the space station. SpaceX began efforts to demonstrate its design ideas to NASA, but SpaceX stuck to it.
Scenes from SpaceX in which NASA astronauts are brought into orbit from moment to moment
Show all photos
“We liked all the modern features that come with out-of-the-box browsers,” said Hnaide during the AMA, adding that Chromium SpaceX gave access to many programmers who are already familiar with the technology.
This means that, like millions of websites, a web app written in HTML and JavaScript shows astronauts what they need to see and interprets their taps and swipes. This is a departure from traditional aerospace programming methods that use lower languages.
Touchscreens illustrate SpaceX’s modernized computing approach, but the Dragon capsule also has more traditional hardware buttons for critical actions such as responding to a cabin fire, said Wendy Shimata, who heads the Dragon software team.
Linux in Starlink
The Chromium-based interface connects to vehicle control software that is written in the C ++ language and runs under the open source Linux operating system. SpaceX maintains its own Linux variant, said Josh Sulkin, head of software design for the SpaceX Crew Dragon capsule, but is a close relative of the version that runs in every Android phone.
SpaceX modifies Linux to support the company’s own hardware. In addition, Linux options are activated in real time, which ensures that the software responds reliably and quickly to inputs.
For Starlink, SpaceX’s growing satellite network to provide Internet access to computers on Earth, “every launch of 60 satellites contains more than 4,000 Linux computers,” said Sulkin. Most of them control tiny computers, so-called microcontrollers with tight but often important responsibilities.
“The constellation currently has more than 30,000 Linux nodes (and more than 6,000 microcontrollers) in space,” he said, referring to a computer system that is part of a larger group that works in parallel.
Modern methods
SpaceX contains not only modern software, but also modern software development methods such as frequent updates.
SpaceX updates its Starlink software weekly, said Matt Monson, who oversees Starlink software work and previously worked on the company’s Dragon. “When we launch a number of satellites, they are usually already in a build [is] older than what’s on the rest of the constellation, “he said.” With this type of project, the pace of innovation is everything. “
SpaceX also hosted a weeklong hackathon with astronauts Behnken and Hurley, during which they could try out the software during the day and re-create it each night to include their feedback for the next day’s tests.
SpaceX also uses A / B testing to help the company test changes to a subset of satellites, he said. This method is often used in conventional programming to determine, for example, whether a website loads faster.
Updates can be critical. “We have had many cases where a satellite in orbit had a bug that we had never imagined, but that could stay safe long enough to debug it, find a fix or workaround, and improve a software – Update, “said Monson.
That doesn’t mean that software is fluid. The Crew Dragon software was banned months before launch.
SpaceX computer security
Modern software means modern software problems like security. SpaceX uses various security methods to ensure the security of its spacecraft, systems, and data, said Jeff Dexter, who runs SpaceX’s flight software and cyber security programs.
For example, SpaceX uses end-to-end encryption to protect data sent to and from Starlink satellites from interception, and software signed by SpaceX is run on all hardware to help block external software. Automated tests are also performed to check for problems in the software.
“We have a dedicated team that determines how our vehicles and satellites can be hacked so that we can address or ban these types of threats while building our vehicles,” said Dexter.
Even what SpaceX programmers do for fun sounds serious. A redditor asked if they were playing the Kerbal Space Program, a space flight simulator game that worked well for those interested in orbital mechanics.
“Of course we play KSP,” said Hnaide.