SpaceX beyond boundaries
Have you ever wondered how a SpaceX rocket works? Am going to explain the below topics in the following content.
- SpaceX vehicles are powered using a Dual-core x86 Processors.
- They Use Linux OS along with LabVIEW Which is a graphical programming tool developed by National Instruments that runs on a Windows system.
- C++ and Python are the Programming languages which SpaceX programmers prefer. Which will be coming up to few hundred thousand lines.
SpaceX was introduced by Elon Musk who aims at making affordable spaceflight a reality. Their first rocket was Falcon 1 which is a two-stage liquid-fueled craft designed to send small satellite into orbit.
The company manufactures two type of rocket engines;they are:
- Hypergolic fueled SuperDraco vernier thruster
- Kerosene fueled Merlin Engine
Due to the security reasons the US government has not provided any details about the software and hardware used in this rocket. The most advanced rockets like Falcon 9 and Falcon Heavy are missile that get in to space, so the technology could be misused and may cause serious damage if it falls in to wrong hands.
With the limited resources we managed to collect the basic idea about what software/hardware is being used at SpaceX and what all challenges they face when they enter the extreme conditions in the outer space.
Radiation: The Main Issue
Here we can see that Dragon flights with an enormous amount of heat and cold condition ranging from 120°C to -150°C while facing Sun and when the sunlight is blocked by the Earth. So, while designing, they had very tough time developing software and hardware which can go through harsh conditions like this.
Even though temperature is a great concern they also faced issues like radiation which comes from Earth’s magnetic field, High energy particles ejected by the Sun and particles from outside the solar system which all affect the electronic systems inside the rocket.
When these high energy particles hit the processor or memory of the spacecraft machine it can cause a phenomenon called bit flip. A bit flip means ‘1’ will change to ‘0’ and vice versa which in term corrupt specific part of the memory.
As you can see in the above diagram if a particle hits the processor, it can cause the computation result to be completely incorrect due to single bit flip.
The above error has already occured in 1996 by the maiden flight of Arian 5, Flight 501. Although at that time it didn’t suffer from bit flip, a similar kind of error happened i.e., the software tries to put a 64-bit number into a 16-bit address causing completely different result. Due to this there was over $370 million loss due to the failure of rocket.
So, in SpaceX they use a software which can easily detect and correct these bits flip by inserting parity bits, which is the simplest form of error detection code.
Former direct of SpaceX Vehicles Certification John Muratore explained each Dragon Spacecraft is equipped with three flight computers which run on dual core x86 processors. We can notice that they have not used highly expensive radiation protected components. Instead they use off the shelf parts.
Here the systems don’t use their multi core capabilities of a processor. Instead of that the computation on the two cores performs separately like two separate computers and compares the results separately in each core. So, all together we can see that 3 computers will perform like 6 different computers independently and are regularly verifying each other’s calculations.
Here a question arises, What if all the three computers are hit by radiation at the same time? Its sure that won’t happen like that but even for that they have made a solution. Dragon is designed to handle extreme situations like this, they gave 18 other systems other than these 3 flight computers on board that uses triple redundancy computers which brings a total of 54 processors inside a single spacecraft.
The Falcon 9 rocket is packed with 3 flight computers for each engine with triple redundancy computers which carry 30 processors. This is as of 2012 data. So, in 2021 its more than that as technology has advanced.
It is a funny fact that SpaceX uses regular hardware modules that anyone can buy on Amazon. This is because they don’t use extensive radiation-hardened components. Both NASA and SpaceX are studying what effects the radiation could have on their spacecraft. If they find it, they will be compensating it.
Radiation-Tolerant Design is what they Call for their designs. Even NASA use the same technology but we can see that ISS (International Space Station) uses a mix of both radiation-hardened and radiation-tolerant components along with conventional laptops for some basic controls.
Software that Controls Everything
SpaceX uses Linux OS; it runs on almost all desktops and powers its vehicle. The programmers at SpaceX prefers using C++ because its one of the most popular Programming languages, SpaceX hires a lot of brilliant programmers to test already written codes and write new ones.
We can notice that Game developers are usually a good fit for SpaceX, as they have good experience of writing codes for a specific environment where the processing power and memory are constrained. SpaceX doesn’t use any custom software since it saves time and extra work. They already use GCC (C and C++ Compiler) and GDV (debugger).
Other than Linux, SpaceX uses LabVIEW which is a graphical programing tool developed by National Instrument. Due to its simplicity and ease of use engineers at SpaceX gets a better visualization towards the telemetry that they get from Dragon and Falcon flights. These visualization makes it easy to build data analysis algorithms which represent complex logic in the diagram and integrate measurement hardware from any vendor. They also use Matlab on the ground as an analysis tool.