June 08 2020, 20:47

On Reddit, an Ask me anything session with the SpaceX software developers took place – https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/

— SpaceX coders confirmed that the monitors in the Dragon capsule run a GUI based on Chromium and Javascript. Initially, it was developed for a NASA presentation, but then they liked it and kept it.

Crew Dragon

— Currently, there are no games on Crew Dragon, but they are likely to be added in the future.

— The docking simulator is not related to the actual software; it was started as just a fun project

— Tesla parts are not used in the Dragons (the displays are completely different)

— They cannot disclose landing algorithms — it’s a secret 🙂

— The control system of the Dragon is designed based on the principle of minimal interaction with the pilot

SpaceX Starship:

— The ground software for Starship is based on the web stack and GUI of the Dragon, and it will also be used in the interfaces of the Starship itself.

“Starlinks” (these are SpaceX internet satellites)

— They generate about 5 terabytes of telemetry per day; the Dragon mission generates hundreds of gigabytes

— Starlink software is currently updated about once a week. Thus, the software on the launched satellites is newer than on those that are in the process of being launched.

— Starlink satellites are more like data centers with servers rather than spacecraft

— Each launch of 60 Starlinks means deploying more than 4000 computers with Linux. Currently, there are over 30K computers and 6K controllers in the orbital grouping

— Starlink satellites are programmed to switch to a high aerodynamic drag mode for quick deorbiting if communication with the ground is lost for an extended period.

General

— Many programmers came to SpaceX from the gaming industry, due to similar mathematics and the ability to solve performance issues

Programming languages used:

— primarily C/C++, using minimal third-party libraries, preferring to write their own for better control over code quality, mainly employing OOP, although they also like to simplify the code;

web stack for displays — HTML / CSS / JS + web components + proprietary framework;

— python for testing and automation

— onboard computers run RTLinux (Linux kernel with the PREEMPT_RT patch, which turns it into a real-time operating system), controllers run bare code;

— GUI at the control center is based on LabVIEW

— Code quality is ensured through unit tests and integration tests, including on flight samples

— SpaceX has a powerful tool for aligning the flight program with the simulator. It allows for the full simulation of a mission or any failure scenarios, even with hardware spread out on a table.

— They might soon share screenshots from the Dragon displays

— The flight safety system operates not on the onboard computer but exclusively on controllers and directly interacts with sensors. This system is responsible for terminating the flight, for example, if the rocket veers off course.

So much more

Leave a comment