Apollo Flight Journal logo
Index
Journal Home Page

The Apollo Flight Journal

The Apollo On-board Computers

By Phill Parker

[This article first appeared in Spaceflight magazine, a publication of the British Interplanetary Society, in Vol. 16, No.10, October 1974 (pp. 378-382). It was prepared in response to a number of requests from members for data and information on the Apollo on-board computers and especially the Lunar Module programs, routines and descent-type logic. The subject is difficult to compress - a complete technical description of the computer subsystems would be rather large - and readers requiring more detailed information are invited to contact the author at spaceuk@netcomuk.co.uk.]

[For those who wish to read more about the application of computers to spaceflight, the NASA History site has Computers in Spaceflight: The NASA Experience by James E. Tomayko.]

[We would like to thank Phill for contributing this essay to the Apollo Flight Journal.]

The Display and Keyboard.

The Display & Keyboard (DSKY) mounted in the Main Display Console of the Apollo 13 spacecraft, Odyssey.


Odyssey's DSKY from the Lower Equipment Bay.

Odyssey's DSKY mounted in the Lower Equipment Bay next to the control panel for the spacecraft's optics.


Introduction

One of the most important systems of the Apollo spacecraft is the Guidance and Navigation System (G&N), which played a leading role in landing the first men-on-the-moon at precise locations and helped in the three very successful ferry flights to the Skylab space station. The system will also be used in the July 1975 joint international mission of the Apollo-Soyuz Test Project (ASTP) between the United States and the Soviet Union.

The G&N system is semi-automatic, directed and operated by the three-man crew. It performs the basic functions of inertial guidance, attitude reference and optical navigation and is inter-related mechanically or electrically with the stabilisation and control, electrical power, environmental control, telecommunications and instrumentation systems. There are three main subsystems: inertial guidance, computer and optical. The inertial guidance subsystem senses acceleration changes and attitude changes instantaneously and provides attitude control and thrust control signals to the stabilisation and control system. Optical navigation subsystem sightings of celestial bodies and landmarks on the Moon and Earth are used by the computer subsystem to determine the spacecraft's position and velocity and to establish proper alignment of the stable platform.

Hardware

The guidance computer is a general-purpose digital machine with a basic word length, in parallel operations, of 15 bits with an added bit for parity checks. The instruction code includes subroutines for double and triple operations. Memory cycle time is 11.7 microseconds with a single addition time of 23.4 microseconds. The 'core rope', used for the fixed memory, has a capacity of about 36,864 words with an erasable memory (of ferrite core planes) of 2,048 words. The processor is formed from integrated circuits (ICs). The total computer weight is 29.5 kg. The fixed memory contains programmes, routines, constants, star and landmark co-ordinates and other pertinent data. The erasable memory acts as an intermediate store for results of computations, auxiliary programme information, and variable data supplied by the G&N and other systems of the spacecraft.

Block diagram of Apollo Guidance and Control System.

The astronaut and computer communicate in a number language via the Display and Keyboard unit (pronounced 'disky' and abbreviated to DSKY), which has a 21-digit display and a 19-button keyboard. Two-digit numbers represent programmes, verbs and nouns. Five-digit numbers represent data such as position, velocity, etc. In the Apollo Command Module there is one computer and two DSKY's. The computer and one DSKY are located in the lower equipment bay and one DSKY on the main console. In the Apollo Lunar Module there is one main DSKY panel, the Primary G&N Panel, with a secondary Abort Guidance Panel at the LMP position. The Apollo Command Module G&N system and the Apollo Lunar Module G&N system are almost identical except that in the Lunar Module system the optical telescope is different and there is no sextant.

The computer is functionally divided into seven blocks: timer, sequence generator, central processor, memory, priority control, input-output and power. The timer generates the synchronisation pulses to assure a logical data flow from one area to another within the computer. Additionally, it generates timing waveforms used in alarm circuitry and other spacecraft areas for control and synchronisation. The sequence generator directs the execution of machine instructions by generating control pulses which sequence data throughout the computer. By combining the order code of an instruction word with synchronisation pulses from the timer, control pulses are formed. The sequence generator contains the order code processor, command generator and control pulse generator. The sequence generator executes the instructions stored in memory by producing control pulses, which regulate the data flow among various areas of the computer and elements of the central processor causing data to be processed according to the specification of each machine instruction.

The central processor performs all arithmetic operations required of the computer, buffers all data coming from and going to the memory, checks for correct parity of all words coming from memory and generates a parity bit for all words written into memory. It consists of flip-flop registers, the write, clear and control logic, write amplifiers, memory buffer register, memory address register and decoder and the parity logic. Primarily, the central processor performs operations indicated by the basic instructions of the programme stored in memory. Communication within the central processor is achieved through the write amplifiers. Data flows from memory to the flip-flop registers (or vice-versa), between individual flip-flop registers, or into the central processor from external sources. In all cases, data is placed on the 'write' lines and routed to a specific register or to another functional area under the control of the write, clear and read logic. The logic section accepts control pulses from the sequence generator and generates signals to read the content of a register onto the write lines and write this content into another register of the central processor or to another functional area of the computer. The particular memory location is specified by the content of the memory address register. The address is fed from the 'write' lines into this register, the output of which is decoded by the address decoder logic. Data is subsequently transferred from memory to the memory buffer register.

The memory buffer register buffers all information read out or written into memory. The flip-flop registers are used to accomplish the data manipulation and arithmetic operations. Each register is 16 bits (one computer word) in length. Control pulses, associated with each register, dictate data flows into and out of each register. These control pulses are generated by the write, clear and read control logic. External inputs through the 'write' amplifiers include the content of both the fixed and erasable memory bank registers, all interrupt addresses from priority control, control pulses associated with specific arithmetic operations and the start address for an initial start condition. Data from the input and output channels is placed on the 'write' lines and routed to specific destinations either within or external to the central processor.

Memory provides the storage for the computer and is divided into fixed memory and erasable memory. The fixed memory is high density core rope; tiny nickel-iron cores woven together with thousands of copper wires and encapsulated in plastic. Each core functions as a transformer and storage does not depend on magnetisation giving it the advantages of indestructibility, permanence of data and storage of vast data amounts in a small volume. The technique requires, however, that programmes for classes of various Apollo missions be developed and verified before the rope is woven, because the programme determines the weaving or wiring sequence. The erasable memory uses planes or ferrite (iron) cores as storage devices. A core is a magnetic storage device having two directions by passing a sufficient current through a wire piercing the core. The direction of the current determines the direction of magnetisation. The core retains this magnetisation until an opposite current switches the core in the opposite way. Wires carrying current through the same core are algebraically additive. Sense wires which pierce a switched core will carry an induced pulse.

Priority control establishes a processing priority of operations, resulting from conditions which occur both internally and externally, that must be performed by the computer. Priority control consists of counter priority control and interrupt priority control. Counter priority control initiates actions which update counters in the erasable memory. Interrupt priority control transfers control of the computer to one of many interrupt subroutines stored in the fixed memory. The Input-Output section routes and conditions signals between the computer and other areas of the spacecraft. The computer has a number of inputs besides counter and programme interrupt inputs. These are inputs from the spacecraft hardware or actions by the astronaut and enable the computer to be aware of conditions that exist in its 'environment', such as velocity change or angle changes. The outputs of the computer are data, control or condition indications. Some of these are controllable through the computer programme while others are present as a function of computer circuitry.

The Power section provides voltage levels necessary for the operation of the computer and is provided by two switching-regulator power supplies, a +4-volt and a +14-volt power supply, energised by the fuel cell power-plants in the electrical power subsystem.

Software

A major part of the Apollo effort was aimed at the development of the flight guidance computer programmes for each mission. The fixed core rope memory units in the computer consists of tiny nickel-iron cores woven together by copper wires and encapsulated in plastic. The programmes for each mission determine the core rope wiring sequence and, hence, programmes for individual missions must be written and verified error-free before flight units can be fabricated. Apollo programmes, such as COLOSSUS or LUMINARY 1-D, were fabricated into six modules of fixed memory. In general, all six modules were required to be 'plugged-in' or the computer would not function correctly. In the earlier test flights, Apollo 4 for example, not all six modules were required but dummy modules had to be included to make up the set of six. Developing and verifying an Apollo programme for a specific mission requires about one year. NASA Manned Spacecraft Center staff issue a description of the functions required of the G&N system to the Massachussetts Institute of Technology (MIT) Instrumentation Laboratory. Working with MSC staff the MIT Instrumentation Laboratories first develop a Guidance System Operations Plan (GSOP), normally a document about 7 to 10-cm thick! This sets out how the G&N system will perform its functions in careful detail and under all possible conditions. The GSOP is then used to develop the mission programme, the sequence of coded instructions plus the library of needed basic information such as star charts and mathematical constants. The prime tools used in the generation of the mission programme are powerful, scientific general-purpose computers. Just as important as the generation of the programmes is the verification of them, to ensure that they will perform the missions as prescribed. This verification is carried out on two Honeywell 1800s, two IBM 360/75s and two SDS 9300s general purpose computers. More recent programmes are further verified using analog-digital hybrid computer techniques, command module simulators, lunar module simulators and actual flight computers. When a flight programme has been generated and verified, the general purpose computers are used to produce magnetic tapes, of "master weaving commands", which are forwarded to the Raytheon Company for use in operating the machines that weave the core rope memories.

Table 1

LGC Programmes (Apollo 14), Luminary 1D.

NumberTitle
Service
P00LGC Idling
P06PGNCS Power
P07Systems Test (Non-flight)
Ascent
P12Powered Ascent Guidance
Coast
P20Rendezvous Navigation
P21Ground Track Determination
P22RR Lunar Surface Navigation
P25Preferred Tracking Attitude
P27LGC Update
Pre-thrusting
P30External delta-V
P32Co-elliptic Sequence Initiation (CSI)
P33Constant Delta Altitude (CDH)
P34Transfer Phase Initiation (TPI)
P35Transfer Phase Midcourse (TPM)
Thrust
P40DPS Thrusting
P41RCS Thrusting
P42APS Thrusting
P47Thrust Monitor
Alignments
P51IMU Orientation Determination
P52IMU Realign
P57Lunar Surface Alignment
Descent & Landing
P63Landing Maneuvre Braking Phase
P64Landing Maneuvre Approach Phase
P66Rate of Descent Landing (ROD)
P68Landing Confirmation
Aborts & Backups
P70DPS Abort
P71APS Abort
P72CSM Co-elliptic Sequence Initiation (CSI) Targeting
P73CSM Constant Delta Altitude (CDH) Targeting
P74CSM Transfer Phase Initiation (TPI) Targeting
P75CSM Transfer Phase Midcourse (TPM) Targeting
P76Target delta V.

A generic LGC or CGC programme, such as LUMINARY I-D or COLOSSUS, is a functional grouping of major programmes (e.g. P30), routines (e.g. R30) and Service programmes (e.g. Interpreter). Table 1 lists the LGC programmes and major routines of the Apollo 14 mission as an example. The basic language of communication between the operator (astronaut) and the computer is a pair of words known as Verb and Noun. Each of these is represented by a two-digit decimal number. The verb code indicates what action is to be taken (operation) and the noun code what action is to be applied (operand). Typical verbs are those for displaying and loading while nouns usually refer to a group of erasable registers within the computer memory. Registers 1, 2 and 3 displays show the content of registers or memory locations and are read as decimal numbers, if a plus or minus sign is present, or as an octal number if no sign is used. Programme, verb and noun information is fed to the computer through the DSKY. The DSKY has ten numerical pushbutton keys (0 to 9), two sign keys (+ and -) and seven instruction keys (Verb, Noun, Clear, Proceed, Key Release, Enter and Reset). When a key is depressed, 14 volts are applied to a diode encoder to generate a unique 5-bit code for that key. There is, however, no 5-bit code for the Proceed key. Standard procedure for the execution of keyboard operations consists of a sequence of several key depressions. Normally, this is Verb, V1, V2, Noun, N1, N2, Enter. If the selected Verb-Noun combination requires data from the operator, the Verb and Noun lights flash on and off about once per second after the Enter key has been depressed. Table 2 lists, as an example, the Verb and Nouns available for the Apollo 14 Lunar Guidance Computer (LGC).

Table 2

Selected Major Verb & Noun Codes (Apollo 14)

Verb codes
05Display Octal Components 1, 2, 3 in R1, R2, R3.
06Display Decimal (Rl or R1, R2 or R1, R2, R3)
25Load Component 1, 2, 3 into R1, R2, R3.
27Display Fixed Memory
37Change Programme (Major Mode)
47Initialise AGS (R47)
48Request DAP Data Load Routine (RO3)
49Request Crew Defined Maneuvre Routine (R62)
50Please Perform
54Mark X or Y reticle
55Increment LGC Time (Decimal)
57Permit Landing Radar Updates
59Command LR to Position 2
60Display Vehicle Attitude Rates (FDAI)
63Sample Radar Once per Second (R04)
69Cause Restart
71Universal Update, Block Address (P27)
75Enable U, V Jets Firing During DPS Burns
76Minimum Impulse Command Mode (DAP)
77Rate Command and Attitude Hold Mode (DAP)
82Request Orbit Parameter Display (R30)
83Request Rendezvous Parameter Display (R31)
97Perform Engine Fail Procedure (R40)
99Please Enable Engine Ignition
Noun Codes
11TIG of CSI
13TIG of CDH
16Time of Event
18Auto Maneuvre to FDAI Ball Angles
24Delta Time for LGC Clock
32Time from Perigee
33Time of Ignition
34Time of Event
35Time from Event
36Time of LGC Clock
37Time of Ignition of TPI
40(a) Time from Ignition/Cutoff

(b) VG

(c) Delta V (Accumulated)

41Target Azimuth and Target Elevation
42(a) Apogee Altitude

(b) Perigee Altitude

(c) Delta V (Required)

43(a) Latitude (+North)

(b) Longitude (+East)

(c) Altitude

44(a) Apogee Altitude

(b) Perigee Altitude

(c) TFF

45(a) Marks

(b) TFI of Next/Last Burn

(c) MGA

54(a) Range

(b) Range Rate

(c) Theta

61(a) TGO in Braking Phase

(b) TFI

(c) Cross Range Distance

65Sampled LGC Time
66LR Slant Range and LR Position
68(a) Slant Range to Landing Site

(b) TGO in Braking Phase

(c) LR Altitude-computed altitude

69Landing Site Correction, Z, Y and X
76(a) Desired Horizontal Velocity

(b) Desired Radial Velocity

(c) Cross-Range Distance

89(a) Landmark Latitude (+N)

(b)Longitude/2 (+E)

(c)Altitude

92(a) Desired Thrust Percentage of DPS

(b) Altitude Rate

(c) Computed Altitude

Typical Apollo LM Computer Utilisation

During the Apollo Programme manned lunar landing mission powered descents, the guidance computer provided several sequential programmes (P63 to P67) for guidance and control operations. The basic LM descent guidance logic was defined by an acceleration command which is a quadratic function of time and is, therefore termed quadratic guidance. Fig. 2 shows a simplified flow chart.

Flow chart of LM descent guidance logic. The current LM position and velocity vectors were determined from the navigation routine. The target position vector, velocity vector, acceleration vector and down-range component of Jerk (time derivative of acceleration) were obtained from the stored memory. The down-range components of these state vectors (current and desired) are used in the Jerk equation to determine the time-to-go (TGO) from the current to the desired conditions. If the TGO, current state vector and desired state vector are known, then the commanded acceleration vector can be determined from the quadratic guidance law. By using spacecraft mass, calculating the vector difference between commanded acceleration and the acceleration of lunar gravity, applying Newton's Law, then a commanded thrust vector can be found, the magnitude of which was used to provide throttling of the LM Descent Propulsion System (DPS). The vector direction was used by the LM Digital Autopilot (DAP) to orientate the DPS thrust by either trim gimbal attitude commands or RCS commands to re-orient the entire spacecraft.

The first programme used during the Apollo LM descent to the lunar surface was P63, which contained an ignition algorithm and the basic guidance logic. Based upon a stored, preselected target site surface range, the ignition logic determined the time for the crew to ignite the DPS for PDI (Powered Descent Initiate). After DPS ignition, the basic guidance logic was used to steer the LM to the conditions for the beginning of the Approach Phase (See Fig. 3). Operation phases of powered descent.

When the Braking Phase Guidance programme, P63, reaches the preselected values, the guidance programme switches automatically to programme P64 (Approach Phase Guidance). This is basically the same as P63 but with a new set of targets but, in addition, provided window-pointing logic for the Landing Point Designator (LPD) operation. The LPD was a scale etched onto the LM forward triangular window, on the Commanders side, which the Commander could sight along to view the landing area to which the Apollo LM was being guided. The computer calculated the look-angle (relative to the forward LM body axis, ZB) and displayed it on the DSKY to assist the Commander in his LPD operation. The guidance programme switched automatically from programme P64 to programme P65 (Velocity Nulling Guidance) when the TGO reached a preselected value (See Fig. 4). Target sequence for automatic guidance.

The P65 programme was used for an automatic vertical descent to the surface of the Moon by nulling all components of velocity to preselected values, if this was required. There was no position control during this programme. At any time during the operation of automatic guidance modes (P63, P64 or P65) the crew could call-up optional programmes P66 (Rate of Descent) or P67 (Manual Guidance) through the DSKY. During the P66 operation, the crew could control spacecraft attitude with the computer commanding the DPS throttle to maintain the desired altitude rate. This would normally have occurred near the end of the P64 programme, near low gate, prior to switching to P65 programme for manual control of the final touchdown position. Programme P67 maintained navigation and display operations for complete manual control of the throttle and altitude. This was not a 'normal' mode unless the programme, P66, was inoperative.

Table 3

CGC Programmes (Skylab SL-11, CM-116)

Pre-launch & Service
P00CMC Idling
P01Pre-launch or service initialisation
P02Pre-launch or service - gyro compassing
P03Pre-launch or service - optical verification of gyro compassing
P06GNCS Power down
PO7Systems Test
Boost/Coast
P11Earth orbit insertion monitor (EOI)
P20Universal tracking
P21Ground track determination
P25Contingency VHF Range-Rate
P27CMC Update
P29Time-to-longitude
Pre-thrust Targeting
P30External delta-V
P31First phasing maneuvre (NC1)
P32Second phasing maneuvre (NC2)
P33Corrective combination maneuvre (NCC)
P34Co-elliptic maneuvre(NSR)
P35Transfer Phase Initiation (TPI)
P36Transfer Phase Midcourse (TPM)
P37Rendezvous Final Phase
P38Plane Change (PC)
Thrusting
P40SPS
P41RCS
P47Thrust Monitor
P48Rendezvous thrust monitor
Alignment
P50ATM Orientation determination
P51IMU Orientation determination
P52IMU Realign
P53Back-up IMU orientation determination
P54Back-up IMU realign
P55ATM star tracker gimbal angles
Entry
P61Entry preparation
P62Entry CM/SM separation and pre-entry maneuvre
P63Entry initialisation
P64Entry-Post 0.05g
P65Entry-Up control
P66Entry-ballistics
P67Entry-Final phase
Post Thrusting
P77CSM Velocity vector updating

Acknowledgements

The author gratefully acknowledges the assistance rendered by the National Aeronautics and Space Administration (NASA), the Massachussetts Institute of Technology, Charles Stark Draper Laboratory, Rockwell International Space Division, Raytheon Company and General Motors Delco Division. Especially, I would like to thank Robert Weatherbee (MIT) for kindly supplying information on the MIT G&N system for Apollo and to J. Kernan for taking time-out (from a crowded schedule in 1971) to answer questions on DSKY Verb and Noun entries. I would like, additionally, to thank John Macleaish, NASA PAO, for supplying Alan Shepard's and Ed Mitchell's Apollo 14 LUMINARY 1-D training LGC Data Cards, as well as several Apollo mission flight plans. Mention must also be made to Floyd Bennett's (NASA MSC) excellent technical report on mission planning for the LM Descent and Ascent. The author can supply complete Apollo 14 Verb and Noun Codes, together with other pertinent data too extensive for publication.
This article is copyright ©1974. Phillip J. Parker.
DSKY photographs are from Odyssey and are copyright ©2000 Bruce M. Yarbro and the Smithsonian Institution
Last updated 2017-02-10

Index
Journal Home Page