Ran across this story about the computer aboard Apollo 11, and a fortuitous 0.1-second difference.
LUMINARY was never completely bug free. Allan told me about a fascinating series of events that could have easily prevented the first moon landing and might have caused disaster. Allan was the principal designer of the LM’s descent guidance program which steered the LM by gimballing and throttling the descent engine. Whenever the computer commanded the engine to increase or decrease thrust, the engine (and LM) reacted after a short time lag. Allan’s descent program needed a routine to accurately estimate the new thrust level, which could be accomplished by reading the “delta-V” (change in velocity) measured by the LM’s accelerometers. He wrote a short routine that took into consideration, i.e., compensated for, the engine’s lag time, which TRW’s “interface control document”, full of useful information for the programmers, said was 0.3 seconds. It took 0.3 seconds for the LM’s descent engine to achieve whatever thrust level the computer might request. The final version of the thrust routine, which was put into the LM, was written by Allan’s friend Don Eyles. Eyles was sufficiently enthusiastic about the programming challenge that he found a way of writing it which required compensating for only 0.2 of the 0.3 seconds. The IBM 360 simulator showed Eyles’ program worked beautifully. His routine was aboard Apollos 11 and 12 which landed successfully. However, telemetry transmitted during the landings later showed something to be very wrong. The engines were surging up and down in thrust level, and were barely stable. A guy at Johnson Space Center called Allan and informed him that the LM’s engine was not a 0.3-second-lag engine after all. It had been improved some time before Apollo 11’s launch such as to lower the lag time to only 0.075 seconds. Correction of this item in the interface control document had simply been overlooked. Once this discrepancy was discovered, theIBM 360 simulator was reprogrammed to properly simulate the actual, faster engine. Running on the simulator, Don Eyle’s thrust program, with the 0.2-second compensation, exhibited the surging that had occurred on the real flights. But here’s the most interesting fact: the simulator also showed that had Allan Klumpp chose to “correct” Don Eyles’ program by compensating for the full 0.3 seconds that was printed in the document, the LM would have been unstable and Apollo 11 would never have been able to land. By pure luck, Don Eyles was creative enough to write the thrust routine in a way that kept the LM just inside the stability envelope and allowed successful landings!
...