Thursday, February 20, 2020

Hacking the Apollo 14 Guidance Computer

An article I saw online recently said that your average USB charger has more computing power than the Apollo Guidance Computer, the computer used by the Lunar Modules on their trips to the moon. While this is true in a strictly technical sense, it is misleading. Despite their incredibly limited hardware, the Apollo computers were extremely sophisticated devices and their software presaged many aspects of modern computer platforms.

ArsTechnica recently published an article that does a deep dive into the Apollo Guidance Comptuer used on the Apollo 14 mission. It also explains the problem that the astronauts ran into during the mission that could have caused an unplanned abort and describes how NASA's programmers on Earth were able to use a clever hack to fix the problem.
The idea that a single errant switch could derail a lunar landing attempt was unacceptable. After the mission, a new variable in the AGC code was introduced that allowed the crew to "mask out" (that is, to ignore) the Abort and Abort Stage pushbuttons. The scenario assumed that a failing switch would be recognized well before the descent began, and commands could be entered in time to prevent an inadvertent abort. Like the fix used for Apollo 14, this would make initiating an abort through a pushbutton impossible, and any urgent situation would have to be performed on the Abort Guidance System.
The nearsighted landing radar fix was even more straightforward. The radar is placed in one of two positions during descent, depending on whether the LM is in P63 or pitched nearly vertical in the approach phase of P64. On Apollo 14, the radar likely encountered some noise in its signal, perhaps from an overly strong return from the surface or a reflection of a side lobe from the spacecraft. This caused the radar to switch away from the desired long-range setting to its short-range mode. The range selection circuits we modified so that the radar could not switch between modes unless it was correctly positioned. Easy peasy.
The recovery from Apollo 14’s Abort switch failure can only be described as brilliant and heroic. But the most important enabler of this effort was that the software, while fiendishly complex, could be understood by a small team of developers. Modern hardware and software, with its extensive protection schemes, virtualization and dynamic program management simply would make such a simple hack impossible. Faced with a comparable problem today, even if the fix were trivial, the solution likely would require large amounts of code to be recompiled, tested and uploaded to the spacecraft. This may not be possible given the short timeframe necessary to save the mission.
In the end, Apollo 14’s fix truly represented the “Spirit of Apollo," where talented teams made the impossible happen.
It's a long article, but if you have any interest in the history of the space program or early computing, you'll want to read it.

No comments: