On July 20, 1969, fifty years ago today, astronauts Neil Armstrong, Buzz Aldrin and Michael Collins They completed the greatest journey that human beings have ever undertaken. Behind the protagonists of the feat, were the efforts of thousands of people to overcome one of the greatest challenges in our history.
Technology, how could it be otherwise, was the great driver of the great adventure and, above all the innovation linked to the space race, we want to pay a small tribute to the Apollo Guidance Computer (AGC); the first computer in history to incorporate integrated circuits and fundamental support from astronauts during the most important mission of their lives.
Among the 24 kilometers of cables installed in the ship, an on-board computer was in charge of assisting the stabilization systems, the ignition of the engines, navigation and everything that happened during the flight. Was 2,000 times slower and had 1,000 times less memory than the smartphone in your pocket.
From the “human calculators” to the fourth crew member
One of the crucial aspects of a space mission is the calculation of trajectories. During the first space missions, complex mathematical operations were performed by “human calculators” that formed a NASA department with a large presence of black women. The story of three of them, Katherine Johnson, Dorothy Vaughan, and Mary Jackson It was taken to the cinema a few years ago in the movie “Hidden Figures.”
Mary Jackson, working at NASA facilities.
When the special race accelerated, IBM computers occupying an entire room began to replace them and the transition, which almost everyone understood as necessary, was not an easy one. Not surprisingly, John Glenn, the first American astronaut to orbit around the earth, requested that Katherine Johnson verify by hand the results of the first models of automatic calculation.
To meet the challenge of bringing a man to the moon, NASA engineers considered that it was necessary to install a computer on the aircraft capable of assisting astronauts during the mission, providing them with real-time data and performing the necessary calculations without relying on communication with Earth.
The astronauts, expert pilots, were not very enthusiastic about let a machine do its job. They were used to controlling their planes in the most critical situations and had conducted many tests on manned ships, so it was difficult to convince them to look at a screen and enter commands was going to consume much of their time in space.
In 1961During the first stage of development of the Apollo and Saturn rocket, NASA commissioned the laboratory Charles Stark Draper of the Massachusetts Institute of Technology (MIT) the development of the Apollo Guidance Computer, a computer capable of integrating into command and lunar modules. The person in charge of the hardware would be Eldon C. Hall, who had extensive experience designing defense technology for the U.S. Navy.
Back then, little importance was given to the concept “software” and the interaction with most systems was reduced to developing commands to solve specific problems. Selected Margaret Hamilton (who collaborated with Hal Lanning) to design an innovative and accessible solution for astronauts, turning it into the first software engineer in history.
Eldon Hall was in charge of designing the AGC hardware.
From the room to the briefcase: the hardware challenge
The main problem with the specifications that the AGC should have is that nobody had built anything like it so far and nobody had any idea how to do it. At MIT they rescued a project about sending an unmanned probe to Mars in 1958, as the basis for the development of a compact computer, based on the technology of Polaris missiles and that would combine data from a gyroscope, various accelerometers, and a sextant. to fix the position and course of the ship.
To make matters worse, the technology developed for the mission would have to be strong enough to withstand space flight, use the minimum number of transistors (which had very little reliability in those days) and have an interface as simple as possible to smooth the learning curve of astronauts and reduce the possibility of mistakes.
During the first years of the sixties, the AGC project worked very hard, but at MIT they were aware that technology was too primitive for what it was intended to do. In addition, at NASA they were not convinced with the way of working of the Institute, neither in time nor in its obsession to duplicate efforts and remake parts continuously. To solve it, they decided to send a “solver” named Bill Tindall, who would be known for his extensive and compelling writing on how things should be done. They went down in history as Tindallgrams.
The experts, aware of the insurmountable limitations of the hardware they had, turned the project around: AGC would no longer be a computer that would control all aspects of the mission, but a much more specialized machine designed to support. Navigation data would be sent from Earth and the on-board computer would be available in the event of communications failure.
In this way, most of the operations would be carried out from NASA’s powerful computing center in Houston, where five very powerful IBM 360/750 computers with one megabyte of memory, 42 tape drives and 25 printers would ensure that the AGC did not have excessive prominence.
Although it may seem, the project was still very ambitious. Yes, from Houston they could control navigation and had access to all kinds of data, but there was a delay of up to a second due to the distance to Earth and communications stopped working when the Apollo was on the far side of the Moon.
Obviously, one of the biggest challenges the development team faced was miniaturization. At a time when the size of a computer was calculated in cubic meters, they managed to design a system 55 centimeters long, 33 centimeters wide and 15 centimeters high, weighing “only” 32 kilos. It worked with 55 volts.
In addition, and with the aim of reducing the possibilities of failure to a minimum, its internal design was simplified to two metal trays, one for the chips or the other for the memory, in a total of 30,000 components, an achievement for the time.
According to the official documentation published by NASA, it was thought to install a duplicate system on board in case the main one failed, but it was rejected. Finally, it was decided to subject the AGC to all kinds of tests and hermetically seal it so that it could work in almost any circumstance.
He Apollo Guidance Computer It was the first computer in history equipped with “microchips” or integrated circuits, which were supplied by the company Farichild Semiconductors. It was the company where I worked Gordon Moore, which Intel founded in 1968 with Robert Noyce and formulated the famous law that predicted that the power of computers would double every 24 months.
For the development of the different AGCs that were part of the Apollo program, a million chips, 60% of what US industry could produce at that time. In total 42 AGCs were built, at a cost of approximately $ 200,000 per unit (the equivalent of a current 1.5 million).
Wired core memory.
A memory sewn by hand
In the early days of computing, the industry had different solutions for storing data, but none were valid for the Apollo project. MIT used a technique called “rope memory” that combined a set of cables that went through ferrite rings: when a cable passed through the outside it was 0 in binary and when it passed through the inside it meant 1. Its capacity Total was 35,864 words.
To put it into practice, MIT hired textile workers with the help of an automatic system that showed what they should do with each ring. Tedious and almost entirely manual work that had a great advantage: it couldn’t be erased, altered, or corrupted.
This is how the memory of the Apollo 11 computer was “sewn”.
In addition to this permanent memory, a bank of RAM with a capacity for 2,000 words was installed, which the system used as a temporary notepad to solve operations. Instead of opting for a timeshare solution (the usual thing on computers at that time) scheduled to work by priority: Each program had a priority depending on its importance, avoiding delays or hangs on tasks that were not essential. As would be demonstrated during the mission, this decision was decisive.
The oscillator crystal installed in the Apollo Guidance Computer had a frequency of 2,048 MHz, It was divided into a 1,024 MHz clock with four phases for internal tasks and another two with 512 KHz, called the master frequency, which was used to synchronize the Apollo’s external systems. Another curious detail is the presence of 16-bit input and output buses.
DSKY or a revolutionary interface
Designed by MIT’s Alan Green, the display and keyboard unit was the way astronauts interacted with the system. Although it may seem chaotic (you can try it in simulators like this), in reality much of the interface is dedicated to displaying status information and the interaction is simple.
Rather than having to learn a programming language or install hundreds of buttons, DSKY allowed introduce verbs and nouns to give orders. After pressing an unlock button (essential to avoid disasters), the astronaut entered a numerical code followed by a noun or a verb and only had to press enter to execute it. In the case of more complex orders the system waited until each data was entered and could execute prerecorded routines (Major Modes) that saved time.
In a single chassis 21.6 by 17.8 centimeters the DSKY had twelve activity indicators, a monitor that was in charge of showing the program in execution and three permanent records that indicated altitude, speed or other data that were of interest depending on the task executed.
Multitasking software in the 60s
To design the software that made the AGC work, it took the work of 350 engineers and the equivalent of 1,400 years of work by a single person until you land on the Moon.
With the aim of simplifying the work of the programmers, the assembly language was chosen as the basis of the software, representing by text the numerical codes with which the computer works.
The solution included a high-level language interpreter that integrated a pseudo-virtual machine much more complex and with greater capacity than those of the native AGC language. To execute them, they only had to invoke the interpreter that was stored in the ROM and indicate the program to interpret.
Margaret Hamilton, head of the Apollo software poses with the source code.
The Apollo Guidance Computer operating system consisted of a real-time Exec system that coordinated program execution, allocated RAM, and prioritized tasks. It implemented an advanced simple or cooperative multitasking system and was capable of executing up to eight at the same time (from controlling the power of an engine to managing the orientation of the ship or the cooling system).
The development team implemented an interrupt component called “Waitlist” that could schedule multiple tasks of a specified duration. In addition, a low priority task known as a “dummy job” was always present and tasked with performing operational diagnostics. When it could be executed, it displayed a green indicator indicating to the crew that there was no higher priority task planned.
Without a doubt, one of the milestones of the AGC software was its fault tolerance. Although NASA initially ruled it out, claiming that the probability of human error was minimal, they changed their minds when an astronaut mistakenly erased all data from the computer during a test error command. The system had exception control and the possibility of actually a “soft reset”, restarting the machine while keeping the RAM information.
The vision of a computer that knew how to react when things were not going according to plan It was a revolution for the time. AGC’s software development team implemented innovative concepts and built robust, robust code that went down in technology history.
An excerpt from the AGC source code.
Actually not one but two AGC computers were installed: They were identical, but the software contained different instructions. The one that was installed in the command module contained instructions to return to earth and its code lines were named as Colossus. The one in the lunar module contained the code necessary for the landing and takeoff, and its code was called Luminare. There was a third, called the Abort Guidance System, and assigned to security.
The Apollo Guidance Computer software is available to anyone who wants to check it out on the GitHub platform.
Reboot, but don’t hang up
During the Apollo 11 mission, the AGC functioned as planned until the descent into the Sea of Tranquility began. Suddenly, during the braking phase, Armstrong’s heart rate sounded and alerted to an alarm on the DSKY screen. Seconds later, Buzz Aldrin confirmed that it was the alarm 1202 but what the hell did that mean?
Charlie Duke as CapCom of Apollo 11 during the moon landing.
From mission control it was decided that the Eagle would continue to descend and enter the approach phase: when there were 1524 left to land the AGC, it showed an error again. This time the 1201. While the entire world contained the encouraging Steve Bales, mission controller simply said “We continue with the plan.” In total, they happened five alarms During those critical minutes, the cabin alarm light (master alarm) came on indicating that something was wrong.
Actually, the only thing that happened was that the AGC was overloaded for receiving too much information. Astronauts, on schedule, had left rendezvous radar’s manual mode (SLEW) on (in space lingo, docking), cluttering the system. History has shown that it was an oversight in power supply design specifications unknown to both astronauts and Houston.
The robustness of the software created by the Hamilton team was tested. The AGC was designed to use a maximum of 85% of its capacity, leaving 15% for contingencies. In addition, an asynchronous executive system discarded non-essential tasks and a restart protection system was responsible for interrupting incomplete tasks and resuming essential ones without stopping.
The AGC solved it by canceling the pending tasks except the one with priority number one: landing on the Moon. As Armstrong switched to manual control for the last phase of the landing, demands on the AGC dropped and alarms ceased immediately. For the vast majority, this is little more than an anecdote and is, without a doubt, the best tribute for an Apollo Guidance Computer that only did what it was supposed to do.
Images | NASA | National Air and Space Museum