I don't know if this would be public, but what CPU / Microcontrollers are used and what software do they run on the Falcon 9? Do they use an OS or is it just bare metal programming?

I found some model rocket flight computers that are available for purchase and just wanted to know what approach SpaceX took towards this.

up vote 22 down vote accepted

In this AMA by the SpaceX software development team, they wrote:

We've been getting a lot of questions about how C#/MVC/etc have to do with rockets. They don't.

About their development they said:

The Flight Software team is about 35 people. We write all the code for Falcon 9, Grasshopper, and Dragon applications; and do the core platform work, also on those vehicles; we also write simulation software; test the flight code; write the communications and analysis software, deployed in our ground stations. We also work in Mission Control to support active missions.

The Ground Software team is about 9 people. We primarily code in LabVIEW. We develop the GUIs used in Mission and Launch control, for engineers and operators to monitor vehicle telemetry and command the rocket, spacecraft, and pad support equipment. We are pushing high bandwidth data around a highly distributed system and implementing complex user interfaces with strict requirements to ensure operators can control and evaluate spacecraft in a timely manner.

They also said:

Dragon and Falcon 9 use a version of Linux.


They unfortunately replied to this question:

What sort of computing power (CPU, RAM, Storage, etc.) do you have access to on board the rockets and capsules themselves? What's "smarter," the Falcon 9 or the Dragon?

with:

100 Dragon sized Falcons or 1 Regular Sized Dragon

So I'm guessing any further information is strictly classified :)

  • 1
    Unrelated to your question, but the rockets and capsules are modelled using Siemens PLM software. – Vedant Chandra May 29 '15 at 10:02
  • It might be unrelated to the question, but if you are going to include that information, please include it in your answer. Comments are subject to deletion at any time. – Michael Kjörling Jun 9 '15 at 7:16
  • I gather from the infographic koan above that the Dragon is approximately 100 times smarter than a Falcon, or about the same ratio as the two beasts. – Jerard Puckett Jan 17 '17 at 1:42

SpaceX uses an Actor-Judge system to provide triple redundancy to its rockets and spacecraft. The Falcon 9 has 3 dual core x86 processors running an instance of linux on each core. The flight software is written in C/C++ and runs in the x86 environment. For each calculation/decision, the "flight string" compares the results from both cores. If there is a inconsistency, the string is bad and doesn't send any commands. If both cores return the same response, the string sends the command to the various microcontrollers on the rocket that control things like the engines and grid fins.

The microcontrollers, running on PowerPC processors, received three commands from the three flight strings. They act as a judge to choose the correct course of actions. If all three strings are in agreement the microcontroller executes the command, but if 1 of the 3 is bad, it will go with the strings that have previously been correct. The Falcon 9 can successfully complete its mission with a single flight string.

The triple redundancy gives the system radiation tolerance without the need for expensive rad hardened components. SpaceX tests all flight software on what can be called a table rocket. They lay out all the computers and flight controllers on the Falcon 9 on a table and connect them like they would be on the actual rocket. They then run a complete simulated flight on the components, monitoring performance and potential failures.

SpaceX engineers perform what they call "Cutting the strings" where they randomly shut off a flight computer mid simulation, to see how it responds.

Dragon uses a similar triple redundant system for its flight computers.

Bonus: Dragon V2 control panels are modified 17" Tesla Model S touchscreens and include the same Nvidia Tegra SoCs. They are not part of the flight hardware and are only used to display the GUI. After talking with the Dragon team at GDC2016, it appears Tesla hardware is not used. They do use some interesting software on Dragon 2. They use Chromium and JavaScript for the Dragon 2 flight interface. The actual flight computers still run on C++.

Source: Discussion with various SpaceX engineers at GDC 2015/2016

  • "Source: Discussion with various SpaceX engineers at GDC 2015" - alright, considering what else you've posted today, I'm going to take your word on that. :) – kim holder Jun 9 '15 at 2:22
  • 5
    @briligg Presentation by Jinnah Hosein, VP of Software Engineering at SpaceX I was in attendance and took notes on the talk. – T.J. Tarazevits Jun 9 '15 at 3:28
  • Based on you description (the best I found) I created a sketch of the architecture on slide 8 of my presentation on SpaceX SW/HW slideshare.net/ultradvorka/doom-in-spacex - hopefully it's correct. – Martin Dvorak Nov 2 '16 at 15:57
  • 1
    "The triple redundancy gives the system radiation tolerance without the need for expensive rad hardened components. " Most flight control systems are triple redundant for reliability ("triplex"). The use of rad hard components is not needed for a suborbital FCS system like that used on Falcon rockets as the flight control is not exposed to enough radiation over a long enough period to induce a fault in the processor, bus, etc. System that are on-orbit or used for deep space control would generally use rad hard silicon on insulator or silicon on sapphire processors like the hardened PowerPC – Larry_C Jan 16 '17 at 20:29

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.