During the development of the Apollo Guidance Computer (AGC) by the MIT Instrumentation Laboratory (see Part 1 and Part 2 for the complete backstory), an inauspicious event occurred sometime during 1965-1966, while the Gemini missions were going on.
The Gemini program helped NASA get ready for the Apollo Moon landings missions by testing out rendezvous and other critical techniques and technologies. Ten crews flew missions in Earth orbit on the two-person Gemini spacecraft.
“IBM was doing the flight control system for the Gemini Program,” recalled Dick Battin, who led the design of the AGC for the Instrumentation Lab, “and they needed to make a program change in one of the programs for Gemini. IBM did a little calculation and told NASA, ‘It’ll cost you $1 million.’ In those days, that was a lot of money.”
George Mueller, NASA’s Associate Administrator for Manned Space Flight, was aghast. $1 million for something called ‘software?’
“Well, if it costs a million dollars for IBM to make a change in this software, what kind of a problem are we going to have with the Apollo system, the Apollo computer?” Mueller said. “That’s a much bigger job… And by the way, who’s doing the Apollo guidance computer work anyhow?”
That’s the way Battin remembered it, anyway.
“So, that was the first time that a top person at NASA said, ‘What’s going on with the Apollo computer?’” Battin said. “Well, then all of a sudden now the floodlights are on us. George Mueller came up to [Boston] to visit, and then he was sending people up from Headquarters. He found out that we had this funny computer and funny programming system. All of sudden the interest in Apollo software became paramount.”
The system was designed with three major sub-units: the inertial measurement unit (IMU), the computer unit and optical unit. It could use all known methods of obtaining navigation data including inertial, celestial, on-board radar, and ground tracking. The computer was the central component or “brain” of the Apollo Guidance, Navigation and Control system.
The Instrumentation Lab had designed the Apollo guidance systems, but all the parts were built elsewhere: Raytheon put together the guidance computers, AC Sparkplug built the inertial system, while Kollsman Instrument Company built the optics. But The Lab was responsible for the software. Basically what they were doing was creating something out of nothing, even creating the term ‘software engineer.’
“Everything had to be done very carefully to try to keep within the size of memory we had,” Battin explained. “Also, it was not a fast computer, but the computer had to do real-time computations. If you had one second to do some calculations and if it took two seconds, that’s not acceptable, because the clock is running and you’ve got to keep up with it.”
But when the software development began to fall behind schedule, Mueller sent in a troubleshooter named Bill Tindall — an engineer, genius and Renaissance Man — who was working at the Manned Spacecraft Center in Houston in Mission Planning. Tindall was eventually named Chief of Apollo Data Priority Coordination, responsible for all guidance and navigation computer software development by The Lab. He traveled back and from from Houston to Boston every week.
Tindall went through the lab’s work with a fine-tooth comb and quickly grasped the key issues and clearly characterized the proposed fixes. The biggest fix was hiring more people to work on the software.
“When Bill Tindall came to The Lab and sort of took over—he was going to whip us into shape about the software,” Battin said. “And it became obvious we needed more people. But it was a management technique, which I, frankly, was not equipped to handle. I was really a person who liked to do things myself, and I wasn’t really up to trying to direct the whole orchestra when I wanted to concentrate on a piece of it. But it didn’t take me too long to realize that we couldn’t really keep doing things the way we were doing it, because we had some very good people, but no matter how hard they worked, we could never have made the schedule.”
Eventually, The Lab had 350 people working on software, putting in the equivalent 1,400 man-years to develop the AGC software before the first Moon landing. The code — a combination of assembly language and interpreted mathematical language — was written by hand before being input to huge stacks of punch cards for testing. All the while, everything was being constantly updated and changed – both the hardware and the software – to keep up with the demands and changes in the Apollo mission plans. However, with the dedication and hard work of the engineers at The Lab, the software became a giant leap in anything that had been done previously, being able to handle all the real-time demands, while the computer itself was the first flight computer to use integrated circuits.
In another first, the AGC system required an interface for the astronauts to communicate with it. Lab engineer Ramon Alonso came up with a simple display keyboard, named the “DSKY” (pronounced diss-key). It had a digital display with big buttons with only numbers (no letters) and communicated with the AGC via a verb-noun interface, where two-digit numbers represented programs, verbs and nouns. However, the DSKY consisted of a limited vocabulary of 99 nouns and 99 verbs.
Astronauts would punch in the numbers for the action they wanted to take and the program they wanted to run. While it sounds complicated, the astronauts said it was easy to use (especially for people in the 1960s who had never seen or used a computer before) and operating it soon became second nature. One NASA software engineer, Jack Garman, compared it to playing the piano, where after playing a song several times, you don’t have to look at the keys to know where to put your fingers.
The first true test of the AGC came on the Apollo 8 mission, the first flight to fly to the Moon and enter lunar orbit. On December 24th, Frank Borman, James Lovell, and William Anders used the AGC to successfully complete Lunar Orbit Insertion, making ten revolutions around the Moon. Each time they went around to the Moon’s farside, the crew lost all communications and tracking with Earth, but the computer kept them on track.
On the way home, however, Lovell accidentally punched the wrong code into the DSKY, and ended up erasing some of the computer’s memory and causing the spacecraft to think they were in the wrong place. But in a true test of the backup optical navigation system, Lovell quickly used the sextant and telescope to figure out their exact position and then manually entered the correct coordinates into the AGC.
But it was on Apollo 11 that the AGC really proved itself. On July 20, 1969, as astronauts Neil Armstrong and Buzz Aldrin descended to the Moon’s surface aboard the lunar module “Eagle,” a master alarm rang out signaling an overload of the LM’s main computer,
Despite, the “1202” (and later a similar 1201) alarm for the overload, the guidance computer performed as it was supposed to, and with its priority scheduling, switched off every program except the number one priority (the landing program) and restarted, making it possible for Armstrong and Aldrin to proceed with the landing.
The alarms were unnerving, however. But thanks to a simulation of these alarms just two weeks before Apollo 11 launched, Jack Garman and flight controller Steve Bales knew not to call for an abort to the landing when the computer alarms sounded. The 1202 alarm was traced to an obscure electrical condition in which the computer was flooded with inputs that could steal as much valuable processing time. It was estimated this problem might occur only one time in a hundred, and only if the mode switch for the rendezvous radar (although irrelevant during the landing) was in a certain position.
“The alarm was merely telling us that the computer was doing things, shutting down activities, and restarting those activities which were absolutely essential,” said Battin. “It just means that the computer was doing a restart, because it had too much to do. Every time I tell people that the Apollo computer never made a mistake, never made an error, they always bring up [these alarms]. But the computer did exactly what it was supposed to do.”
Note: Dick Battin passed away in 2014, but his marvelous oral history can be found on Johnson Space Center’s History archives.