bytedisorder

Nerdical recommendations, and musings — more questions than answers — for engineers

Apollo 11's Guidance Computer Crashloop

The first moon landing was nearly brought to a halt by a nasty computer bug in the system responsible for setting the Lunar Module down on the moon’s surface. This lecture on the Apollo Guidance Computer details the overall architecture as well as how the landing was executed. It’s a great example of how defensive design factors create resilient systems that can handle unforeseen consequences.

This historic mission might have been aborted or worse had it not been for watchdog processes, checkpointing, conservative error handling, and a cautious operator. Watching this lecture raises an important question: how would this mission have ended if Verb 16 Noun 68 had been restored as an active job in the reset handler?

The speaker is Robert Wills, an embedded software engineer at Cisco who thoughtfully introduces an archaic computer system from a bygone era and the inner workings of its operating system. The understanding he creates gives us the chance to learn from the successes and shortcomings of the Apollo Guidance Computer’s design.

Watch: The 1969 Apollo Guidance Computer - TNMOC – 1h22m

For a demonstration of the AGC’s operation the following documentary from the MIT Instrumentation Laboratory is unbeatable. The engineers that created the computer present the marvel of technology, which guided man to the moon and back with one millionth the power of a modern smart phone. A particularly good section talks about the automated sextant operations in which the AGC locates exactly the position of the spacecraft in relation to Earth. You will even see the manufacturing processes used to create the unique components of the AGC.

Watch: Computer for Apollo - MIT - 23m

Want to try running your own Apollo Guidance Computer and simulate flying to the moon? The MoonJS port of the VirtualAGC emulator is something to try:

Try: Apollo Guidance Computer Emulator