Manufacturing Code

Today we are used to the idea that software is really ''soft''—that is, it weighs nothing, is easily and perfectly copied, and is essentially cost-free in time and money to manufacture. Download a new piece of code into your PC or your cell phone and you're off and running. This was not the case in the 1960s, at least not for the embedded system of Apollo. Software became hardware.

The permanent memory, which stored the flight programs, consisted of a complex series of wires running in and out of magnetic cores that determined if a particular bit in a memory location was a one or a zero. At a given memory location, a wire going through a core represented a ''1,'' a wire going around a core a ''0'' (actually, clever wiring meant that each core could actually store sixty-four bits). The small amount of erasable memory used a similar technique. Thousands of these cores, meticulously threaded with thin, hair-like wires, were packed together into ''ropes'' that held Apollo's programs. While cumbersome, this approach had one great advantage: the program was indestructible, literally hard-wired into the ropes. Astronauts became grateful for this feature when lightning struck Apollo 12 just after launch and the computer perfectly rebooted itself. Apollo spacecraft had no disk drives, no FLASH memory, not even any magnetic or paper tapes. The software for Apollo was an actual thing. You could hold it in your hand and it weighed a few pounds (figure 7.3).

This ''firmware'' meant the programs had to be manufactured in a factory, largely by hand. Raytheon, which built the flight computers for Apollo, was also responsible for manufacturing the ropes. This process entailed precise, painstaking sewing of very fine

Figure 7.3

Simplified schematic of principle behind core rope storage. The inhibit lines select a particular core ''address,'' and the sense line returns a ''1'' or a ''0'' depending on whether it threads through or around the core. Each core thus stores 12 bits. (Hall, ''MIT's Role in Project Apollo, Vol. III,'' 90.)

Figure 7.3

Simplified schematic of principle behind core rope storage. The inhibit lines select a particular core ''address,'' and the sense line returns a ''1'' or a ''0'' depending on whether it threads through or around the core. Each core thus stores 12 bits. (Hall, ''MIT's Role in Project Apollo, Vol. III,'' 90.)

wires through thousands of tiny cores. The particular pattern of the wires, and which direction they went through each core, determined the pattern of 1s and 0s stored in the memory.

Raytheon did the manufacturing in its plant in Waltham, Massachusetts. The town had a history of precision machining (the Waltham Watch Company was nearby), and drew on an industrial community familiar with weaving and textile manufacturing: ''we have to build, essentially, a weaving machine,'' Raytheon manager Ralph Ragan told the press.30 Raytheon assigned the work to older, female workers. Engineers nicknamed them ''little old ladies,'' and actually referred to them as ''LOLs.'' Core rope weaving was a specialized skill, and Raytheon paid the women to sit around and do nothing if the software ran late, so they would not be called to other projects that would degrade their currency.31 NASA was well aware that the success of the flights depended on the fine, accurate motions of these women's fingers, so they sent the astronauts through the plants to make the workers aware of the human impact of their work (as they did with many of Apollo's factories). One engineer fondly recalled that the women at the plant ''adopted'' the astronauts, and took great care and pride in the quality of their manufacture (figures 7.4 and 7.5).32

Figure 7.4

Sewing software: rope manufacture with a numerically controlled machine. The paper tape in the reel at right controls the machine to place an eyehole over the appropriate core, and the worker threads her needle through with a wire attached. (Raytheon photo CN-4-22.)

Figure 7.4

Sewing software: rope manufacture with a numerically controlled machine. The paper tape in the reel at right controls the machine to place an eyehole over the appropriate core, and the worker threads her needle through with a wire attached. (Raytheon photo CN-4-22.)

Rope manufacture did become partially automated. Another New England firm, the United Shoe Machinery Company, created a machine to speed up the process. The IL would convert their programs to a series of paper tape instructions to read into the machine. A rigid rack held an assembly of cores, and the machine used the numerical data from the punch cards to position the core assembly so the worker could quickly run her needle, with a wire attached, through each core. Then the machine would reposition the cores and the worker would run the wire through the other way. A series of folding, soldering, and potting operations then turned the core rope into a ''module'' that could be plugged into the Apollo computer.

Ideally, this process would happen once, producing single core rope that would program any possible mission. Each mission had its own unique features: vehicle mass, propellant volume, orbital parameters, and the like, that would go into the erasable memory. It never worked out that way—each mission was sufficiently different, and each program was sufficiently modified from the previous one that no two flights ever flew with exactly the same code (other than AS-501 and AS-502, which were unmanned).33 By the later lunar landings, however, the programs did become relatively stable, and the changes increasingly minor.

Figure 7.5

Apollo's software: close up of a core rope. (Raytheon photo CN-1156-C. Reprinted in Hall, Journey to the Moon, 15.)

Figure 7.5

Apollo's software: close up of a core rope. (Raytheon photo CN-1156-C. Reprinted in Hall, Journey to the Moon, 15.)

Cumbersome and time-consuming, the rope manufacturing process took many weeks to go from functioning code to workable ropes. The pace had a critical implication for the programmers: the software had to be ''frozen'' at three to four months in advance of a flight.34 IL engineer Ray Alonso remembered his initial shock when learning of the lead time: ''What? I can't walk up to the launch pad and change whatever the program I like?'' After all, what was the point of a programmable system? Sometimes the flights were sufficiently close together, in fact, that lessons learned from one flight could not be included in software fixes for the following one. A process for changing the ropes after manufacture did exist, but it required removing the potting that encapsulated the wires and surgically changing one bit at a time, in Alonso's words, ''an incredibly small and arduous process to go through.''35

NASA and IL management recognized that the schedule could help them impose a kind of discipline on the otherwise free-wheeling programmers. ''Rather than a disadvantage,'' wrote David Hoag, the nature of the core ropes meant that ''risky last minute changes of the program just before flight were physically prevented.''36 Manufacturing the software forced the engineers to make commitments, to stand behind their programs and get them into a form that would be suitable for testing months in advance.37 It helped bring the young, unruly art of programming into the purview of program management and systems engineering.

But Apollo's programmers had to face more than the factory floor. They also had to face the users.

Telescopes Mastery

Telescopes Mastery

Through this ebook, you are going to learn what you will need to know all about the telescopes that can provide a fun and rewarding hobby for you and your family!

Get My Free Ebook


Post a comment