Letters

Dr. Dobb's Journal December 1997


More on Apollo

Dear DDJ,

In response to Steve Barrett's letter in the May 1997 "Letters" section, which was referencing Al Steven's "C Programming" column in the February 1997 issue of DDJ, I would like to offer my Apollo experiences and information.

As a college student, a school mate and a friend of his who had an electronics repair shop, built a receiver and directional antenna to listen to the Gemini flights. One of us would stand on the roof of the building with a set of headphones and aim the antenna for maximum volume, which indicated maximum signal. The trick was figuring out when and where the Gemini spacecraft would be coming over the horizon.

My school mate and I started planning an Apollo receiving station, which used an old portable army radar system at the University for an antenna mount. We designed a high-gain tracking antenna for the deep space communications frequencies to mount on the radar antenna pedestal. We never got to complete the system.

I graduated and the company I was working for offered me the opportunity to transfer to Houston and work at the Manned Spaceflight Center (MSC), which had its name changed to Johnson Spaceflight Center some time after I had left. This was just after the fire on the pad that killed three of our astronauts.

The oversight contract I was working on reviewed the integration of the various Apollo systems. My job was to validate the integration of the landing and rendezvous radar systems to the Primary Guidance and Navigation System (PGNS) on the Lunar Module. This also included the integration of the radar data into the navigation programs. Thus started my introduction to and life-long affiliation with digital computers.

The Primary Guidance and Navigation System was designed at MIT and built by Raytheon. It was built entirely using one IC chip type, a dual four-input NAND gate, which had been designed originally for the ICBM computers. All of the components of the computer, arithmetic section, registers, clocks, and control sections, used this same chip. Each chip had a serial number to track failures and trace the chip back to a particular batch that might be suspect. Another reason for using this singular chip was its resistance to cosmic particle damage due to the size of the IC surface. It must be stated that the Primary computers on both the Command Module and Lunar Module never failed during a flight.

The original computer called for two thousand words of erasable core memory and eight thousand words of ROM. A word consisted of 16 bits. One parity bit and 15 data bits. There were no bytes. ROM consisted of core rope where the sense lines through the cores were woven through a core or around a core depending upon whether a one or zero was to be read. By the time I came on board, the programming demands had expanded the computer to four thousand words of RAM and 37 thousand words of ROM.

The programming was done at MIT in assembler. I would bench check the navigation programs and if a section needed further testing, we would schedule some time on the LM simulator. We would get it "after hours" since it was the same one that the astronauts trained in during the day. The simulator area had simulators for both the Command Module and Lunar Module which for training purposes could be linked together. The movie Apollo 13 depicted this simulation area with about 90 percent accuracy.

The QA on the programs was done by having people like me bench check the code and to load it into every simulator available and fly the heck out of it hoping to uncover any errors. Burn programs, those that controlled the main engines during a burn could not have any errors, coasting programs could be flown with work-around procedures if an error was discovered. Because the programs for a particular flight were frozen a month before launch so that the programs could be woven into the core rope ROM, errors that were found after that time, that did not impact flight safety, were written up in a work-around procedures manual that the astronauts carried on the flight. Apollo 12's launch was delayed for a month due to an error that was discovered in its burn program. New core ropes had to be woven.

Sometimes a contractor goes beyond the letter of the programming contract specs because it makes sense. MIT had designed the major programs with restart check points, which saved the Apollo 11 landing on the moon. The landing guidance program was designed to run in a two-second cycle. When it was started, it would schedule itself to start again in two seconds. It would normally be finished with a cycle by the time the scheduler started it again. During the final phase of the landing profile, the computer was running at 90 percent capacity.

During Apollo 11's final landing phase, a switch had been left in the wrong position, which caused an abnormal number of computer interrupts. This caused the computer to run at 105 percent of capacity. The landing program could not finish before it was being scheduled to start again. There wasn't any work area for the start of the next cycle of the landing program so the computer tossed out all of the programs and restarted at the last restart point to continue guiding the Lunar Module. This happened about nine times on the way down and the hard call was to let it continue or switch to the abort computer and head back to the Command Module. The programmers at MIT were following the telemetry and decided that the computer was functionally following the proper landing profile, which the controllers concurred with, and the rest is history.

Where was I during all of this? In one of the back-back rooms provided for the contractors to follow the flight on the telemetry screens on the wall. For each controller position in the main control room, which we saw on TV or in movies, there was a back room with 10 to 12 people who backed up the controller position through the head sets. Then this back room was in contact with the associated back-back room where the contractors who built or checked the systems were available for consultation.

I had prepared a LM mission profile document that integrated the astronaut flight plan with the telemetry readouts expected during different phases of the mission. I was following the landing by cross referencing my profile with the telemetry displays to make sure that the LM was on the correct descent profile. At about 500 feet, Neil Armstrong took over the landing phase manually (computer aided). If you listen to that part of the landing, you can hear Buzz Aldrin calling out the feet per second down and horizontally. That was his job while Neil looked for a landing site. During that running call out of the displays, you will hear the comment "low fuel level light." This light indicated that the computer had calculated 30 seconds of fuel left.

The landing phase seemed to last forever from that point until the touch down indicator came on and they cut the engine. There were a lot of "blue" faces as everyone -- including myself -- was holding his breath during those last few seconds. It was calculated after the fact that the LM had less than 10 seconds of fuel left at touch down.

An interesting question is how come there was such a long step from the bottom of the ladder to the surface of the moon? The landing struts were designed with compressible shock absorbers that could take a 16-feet per second vertical drop. Because Neil dropped to the surface at about 2-feet per second, the shocks never compressed, leaving a long step to the surface. This was the case on every one of the moon landings.

Apollo 13 obviously presented some interesting computer problems for the Lunar Module (LM), since it was being used as the "Lifeboat" to bring the astronauts home. The first was: Could the LM computer handle a major burn with the Command Module and Service Module still attached? The CG, Center of Gravity, would be in the wrong place for all of that mass, and could the computer keep the thrust vector through that new CG during a major burn? The mass parameter for the LM was in RAM, so the value was changed to reflect the new mass figures. The next question: Could the docking collar between the LM and Command Module take the stress of a major burn? Everyone thought so, but no one wanted to guarantee it. The burn that was made on the way to the moon to put them on a quick return course to the earth worked without a hitch.

The last question:Could the LM computer handle the guidance in that mid-course third of space half way between the earth and the moon? The LM did not have any programs to handle this area since it was never expected to be in that position. The highly elliptical trajectories computed around the moon or earth would tax the accuracy of the computer in that area. This became a mute point since the computer had to be shut down to conserve power. At that point, all of the flight trajectories were computed and tracked from the earth.

A lot of what was learned during the Apollo flights as far as navigation and control programming has been integrated into the Shuttle program. It's interesting to note that the Shuttle has five computers to accomplish earth orbit guidance and control. During any burn phase, three of the computers are working in parallel -- with two out of three voting to verify the guidance commands. A fourth computer is running as a hot stand-by in case one of the three computers fails. There have been computer failures on the Shuttle flights but no impact to the missions or safety of the crew.

I was there for Apollo 7, Command Module in earth orbit, Apollo 8, Command Module in moon orbit, Apollo 9, Command and Lunar Modules in earth orbit practicing the moon landing sequences, Apollo 10, moon mission to 10,000 feet above the moon surface, Apollo 11, moon landing, Apollo 12, moon landing, and Apollo 13, aborted moon landing.

Web sites readers might find interesting include http://www.hq.nasa.gov/office/pao/History/alsj/a11/a11.landing.html, which contains a transcript of the Apollo 11 landing phase with post mission comments by Neil Armstrong and Buzz Aldrin. For detailed description of the Apollo computer and its interfaces to the astronauts, see http://www.ksc.nasa.gov/history/apollo/apollo.html and http://wwwis.cs.utwente.nt:8080/~faase/Ha/Apollo.html.

Edward C. Brann, II
ebrann@nwinfo.net

DDJ


Copyright © 1997, Dr. Dobb's Journal