The importance of computers in getting Neil Armstrong and his colleagues to the Moon and back to Earth cannot to underestimated. But the sort of technology available to Nasa in in the early 1960s was very different from the computer that was used on Apollo 11 and the lunar lander module.
Paul Kostek, a senior Institute of Electrical and Electronics Engineers (IEEE) member and senior systems expert at Base2, said: “Prior to the Apollo lunar mission computers were huge machines that filled up entire rooms.”
So, among the numerous engineering challenges the Apollo engineers and scientists faced was: how could such a machine be miniaturised to work on the Columbia command and service module and Eagle lunar module? “Microprocessors had not been invented,” said Kostek, “but the engineers on the Apollo programme were able to scale a computer down to something that could be flown into space.”
The computers on the spacecraft also needed to run real-time operating systems. In an article in the Lunar Surface Journal, Paul Adler, a lunar module software engineer, described worked with another engineer, Don Eyles, to develop a software sequencer that effectively ordered tasks by priority and was able to multitask in real time based on commands that had been programmed in such a way that memory was shared between tasks.
Ella Atkins, director of the autonomous aerospace systems lab at the University of Michigan and IEEE senior member, said: “I watched the Moon landing as a small child. Any time there is a deadline and a challenge, people bring their best to the job. We saw that time and time again on Apollo. In the Apollo programme, all the technology was glamorous. We had never written code that would run in space, and to communicate in real time all the way to the Moon.”
Programs had to be written in low-level assembly language because high-level programming languages such as C for system programming had not yet been invented. “In Apollo, coding was done in assembler,” said Atkins. “It was only at the time of the Space Shuttle missions that we recognised that this level of speciality and overhead didn’t really make sense. Writing software for an embedded system is easier today than it was in the 1960s.”
Atkins added: “From the Apollo mission, we learnt we could do the maths calculations fast enough to allow the orbit to be calculated correctly. We learnt we could debug code well enough so that there weren’t any problems.”
And this concept of debugging code for absolute reliability has been critical to software developed both for space missions and safety-critical systems on Earth. Kostek said: “A trip to the Moon was never going to be a one-way ticket. Nasa had to ensure that the crew of Apollo 11 returned home to Earth safely.”
Unlike today’s consumer technology and Window applications, he said, “the computers needed a high level of reliability for a space mission”, adding: “The Apollo mission used the minimal amount of code needed to launch safely. In the 1960s, software was a relatively new world. Neil Armstrong manually landed the lunar module, which used just a couple of thousand lines of code.”
Even so, as the BBC’s 8 Days: To the Moon and back documentary illustrated recently, the lunar module raised a 1202 error just before Armstrong and Buzz Aldrin were set to make the final descent. The error occurred because the small computer on the lunar module had very little memory, and this was being filled up by data from what Adler described as “a misconfiguration of the radar switches”. In effect, the computer was signalling that it was overloaded.
Armstrong asked Mission Control for clarification on the 1202 error. Jack Garman, a computer engineer at Nasa who worked on the Apollo Guidance Program Section, told Mission Control that the error could be ignored in this instance, which meant the mission could continue. Apollo 11 landed a few seconds later.
Kostek added: “The biggest challenges in programming today are the size and scope of the software. In the context of aerospace systems, you need confidence in the code. There are millions of lines of code in modern applications. How many scenarios can we really test?”
For Atkins, the programming team behind the Space Shuttle programme was the best coding team in the world. “Coding wasn’t glamorous, but they were so focused on finding and fixing problems,” she said.
Atkins believes that among the major breakthroughs after Apollo 11 has been the emergence of autonomous science run by the Earth Observing 1 spacecraft. Launched in November 2000, the spacecraft’s original mission was supposed to last one year, but it continued to orbit the Earth until 2017.
Atkins said: “For decades, all data was sent back to Earth. Earth Observing 1 represented a change in paradigm, where the software is being trusted. It was able to selectively download science data and successfully convinced scientists that on-board processing of data could increase the value to science.”
Takeaways from Apollo 11
It was one small step for Neil Armstrong, but a giant leap in faith in software, according to Kostek, who said: “Since the time of Apollo, all space probes have been over-engineered. It may take 10 to 15 years to get to a planet, but the probe is designed to last for 30 years and offers extra service life, which has been incredibly fortunate for the scientists. These systems are built simply and reliably.”
Given the vast distances a spacecraft travels on an interplanetary mission, Atkins said the probes that venture into the far reaches of the solar system and beyond need to be engineered for adaptability, in order to run experiments over and beyond the original mission goals. “On the Mars rovers Spirit and Opportunity, the craft lived far longer than they were supposed to and the scientists needed to transform their original code,” she said.
Over the lifetime of these missions, the usual conservatism that goes into space travel was lowered as scientists tried out new algorithms, she added.
Atkins said the ability to communicate remotely with a probe using limited power over the vast distances of space was demonstrated with the Galileo and Cassini missions. “Each had a moment when engineers were trying to figure out what to do next,” she said. “This resulted in changes to software to enable the science to be done better and to correct problems in the hardware.”
Cassini continued operating for almost 20 years, changing the way that scientists think about the solar system, before it was crashed into Saturn on 15 September 2017. It is this ability to adapt computer systems beyond their original design goals that defines modern space exploration.