With SpaceX, the giant changing the space race, software plays an integral role in every aspect of any flight. Recently, the software development team of this company has shed light on what technology was used on the newly launched Crew Dragon capsule with humans, as well as in SpaceX in general.
At 2h22′, May 31st 2020 (VN time), the Falcon 9 rocket successfully took SpaceX’s Crew Dragon capsule to orbit from platform 39A of NASA’s Kennedy Space Center in Florida, USA. This event market the first time the US succeeded in getting astronauts into space from their own soil since 2011. This is one of many efforts by SpaceX founder and CEO Elon Musk to change and modernize the space industry, a field that still relies on technology dating back decades. This message is also reflected in the software development process for aerospace hardwares of this company.
On Reddit, 6 members in SpaceX software team have recently answered questions from audience all over the world over the technologies used in the development and deployment of new-generaltion space programs, including Falcon rockets, Dragon capsules and Starlink satellites. The interesting thing is, some software packages adopted in these equipment are actually “cousins” to, or might even be found on, those on our own PC or phone.
1. Chromium Interface
SpaceX uses Chromium, Google’s open-source foundation for the Chrome web browser, for the touchscreen user interface on the Crew Dragon, said Sofian Hnaide, a developer who worked on the Crew Dragon display technology. “We liked all the modern features that comes with browsers out of the box,” Hnaide said during the AMA, adding that Chromium gave SpaceX access to lots of programmers already skilled with the technology.
The open-source operating system Linux is used on the Starlink satellite system, SpaceX’s growing network of satellites to deliver internet access to computers on Earth. This is where The Chromium-based interface that connects to vehicle control software written in the C++ language will be running on.
SpaceX modifies Linux to support the company’s own hardware, which also enables real-time Linux options, which helps ensure the software responds to input reliably and quickly. SpaceX maintains its own Linux variant, said Josh Sulkin, leader of software design for SpaceX’s Crew Dragon capsule, but it’s a close cousin to the version running inside every Android phone.
3. Computer Security
Modern software means modern software problems, like security. SpaceX uses several security methods to keep its spacecraft, systems and data safe, said Jeff Dexter, who runs SpaceX’s flight software and cybersecurity programs.
For example, SpaceX uses end-to-end encryption to protect data sent to and from Starlink satellites from interception, and all hardware runs software signed by SpaceX to help block outside software, he said. It also runs automated tests to hunt for problems in software.
“We have a dedicated team that identifies how our vehicles and satellites could be hacked so we can eliminate or prohibit these sorts of threats when we’re building our vehicles,” Dexter said.
4. Other modern methods
SpaceX incorporates not just modern software, but also modern software development methods like frequent updates.
SpaceX updates its Starlink software weekly, said Matt Monson, who leads Starlink software work and previously worked on the company’s Dragon. He said, “On this kind of project, pace of innovation is everything.” SpaceX also held a week-long “hackathon” with astronauts Behnken and Hurley, letting them try the software during the day, then rebuilding it each night to incorporate their feedback for the next day’s tests.
SpaceX also uses A/B testing, which lets the company test changes on a subset of satellites, he said. It’s a method widely used in more conventional programming, for example to gauge whether a website loads faster.