Back to Home

Margaret Hamilton: “Boys, I'll send you to the moon” / Edison Blog

Moon · edisonsoftware · development · programming · I want to space · testers well done · March 8 soon

Margaret Hamilton: "Boys, I'll send you to the moon"

    “When I was just starting to work in this area, all this was for us as the Wild West - we were the discoverers of uncharted lands. Nobody taught us anything. ” Margaret Hamilton.



    This is Margaret . She writes the code well. Do as Margaret.

    And also:
    • self-taught programmer;
    • wrote a code for the Apollo navigation computer;
    • when the Americans stepped onto the surface of the moon she was 31 years old;
    • Margaret is NOT the author of the term "software engineering";
    • often hired a 4-year-old daughter;
    • daughter helped find a bug in the program.

    Under the direction of Margaret Hamilton, programs were written for the Apollo spacecraft on-board computer. At one of the most crucial moments of the Apollo 11 mission, it was the work of Margaret and her team that prevented a possible disruption to the moon landing . Three minutes before the landing, several alarm devices went off. The computer was overloaded with incoming data - an involuntary update of the counter occurred in the docking radar system, which led to a request for the computer to perform more operations than it was able to process. Thanks to a stable architecture, the computer continued its work: in the development of on-board software, the asynchronous executive approach was used. High-priority processes (critical to landing) could interrupt low-priority processes.

    “After undocking the command-service and lunar modules, the docking radar switch was put in the wrong position due to an error in the instructions for the astronauts, the radar sent erroneous signals to the on-board computer. False signal processing took 15% of computer time. The on-board computer (more precisely, the software embedded in it) turned out to be reasonable enough to recognize that more operations are being requested than it should. Then he sent an alert, which meant for the astronaut the following: “I am overloaded with more tasks at a time than provided, and I will continue to carry out only the most important ones, that is, those that are necessary for landing ...” In fact, the computer was programmed for more, than just recognizing error conditions. The software provided a complete set of recovery programs. In this particular case, the reaction of the software was to suspend the work of low-priority tasks and restart (re-establish) the most important ones. If the computer did not recognize this problem and did not take restoration measures, I’m not sure that Apollo 11 would have successfully landed on the moon. ” Margaret Hamilton

    “Girl hammer!
    But I would not want to imagine such a wife, for that would look at her background is a pity, though, and a programmer ... LOL »

    Memo with GeekTimes


    Iron


    image
    Lunar module

    image
    Navigation system diagram

    image
    Well, you yourself know that these are moon

    image
    phases

    image
    Interfaces Among PGNS, ATCA and the Rendezvous Radar

    Some more interesting things are here:
    [ TALES FROM THE LUNAR MODULE GUIDANCE COMPUTER ]

    Apollo spacecraft onboard control computer


    image
    The Apollo Guidance Computer (AGC) onboard control computer performed calculations and controlled movement, navigation, and controlled command and lunar modules during flights under the Apollo program.

    AGC was developed for the Apollo program in the early 1960s at the Massachusetts Institute of Technology's Instrumentation Laboratory. A distinctive feature of the design of the computer was the use of chips, which was done for the first time.

    Also, when flying to the moon, two additional computers were used:

    • Launch Vehicle Digital Computer (LVDC) digital computer located in the instrument compartment of the Saturn-5 launch vehicle and
    • The Abort Guidance System (AGS), located on board the lunar module in case of PGNCS failure. AGS could be used to take off from the lunar surface and dock with the command module, but not for landing.


    Firmware


    The programming process itself was no less laborious than writing code. The Apollo on-board computer used a magnetic core memory system that stored data in a binary system. If the wires passed through the ferrite cores in the form of a ring, this meant one, if they went outside, it was zero.

    Thus, the programs were physically created manually in factories, where mainly women worked. Among engineers, magnetic core memory even got the nickname LOL memory, where LOL stands for little old lady, “little old lady”.

    Margaret talks about his work:


    image
    Core rope memory

    How is the "firmware" in the truest sense of the word. We look at the 21st minute



    AGC dual 3-input NOR gate


    Memory

    image

    image
    Apollo spacecraft on-board control computer interface installed in the command module. Above the interface, the FDAI indicator is visible.

    image
    Cheat sheet with codes

    Source code



    image


    www.ibiblio.org/apollo/listings/Comanche055/REENTRY_CONTROL.agc.html

    Emulator


    Apollo 11


    image



    Description of the landing of Apollo 11
    On July 20, Neil Armstrong and Edwin Aldrin entered the lunar module, activated and checked all of his systems, and brought the folded landing stage supports into working position. Michael Collins, in the on-board telescope of the command module at the 12th orbit, carried out observation of landmarks on approach to the main area of ​​the lunar area to clarify the data in the navigation system and the start time of the controlled descent of the lunar module. After that, Apollo 11 received the go-ahead to undock the command and service and lunar modules. At the beginning of the 13th revolution, when Apollo 11 was located on the far side of the moon, Columbia and Orel undocked. Armstrong, using the engines of the orientation system, made a complete rotation of the lunar module around the vertical axis, Collins visually examined it and said that the supports of the landing stage opened normally. When the connection with the Earth was restored, Armstrong reported to the MCC in Houston about undocking. Answering a question about sensations, he said: "The Eagle has wings." Collins noticed that the Eagle looks great, only flies upside down. To which Armstrong replied: "One of us is flying upside down." Collins took Columbia to a distance of about 1300 m. At the end of the 13th revolution, above the far side of the moon, the lunar module landing stage engine was turned on for 29.8 seconds, Orel went into a descent orbit with a population of 105.9 km and a resettlement of 15.7 km. He flew forward with landing stage supports and portholes down so that astronauts could track landmarks on the surface. Armstrong noticed that one of the landmarks, Maskelyne W Crater, they flew about 3 seconds earlier than anticipated. This meant that they would sit farther than the calculated point. At 102 hours 33 minutes 05 seconds of flight time, near the re-population of the descent orbit (about 400 km east of the planned landing area), the lunar module landing stage engine was turned on, and the braking stage began. About 4 minutes after this, the “Eagle” was rotated 180 ° in the roll, with the portholes up, Armstrong and Aldrin saw the Earth almost directly in front of them. This rotation was necessary for two reasons: so that the landing radar could capture the surface and that at the final stage of landing, when the ship will unfold in a vertical position, astronauts could see the area where they land. Almost immediately after that, the on-board computer alarm went off, as Armstrong reported to the MCC. The lunar module at that moment was at an altitude of 10,200 m. From Houston they replied that everything looked normal. Such an emergency situation by astronauts on Earth was not worked out. As Armstrong explained at the post-flight press conference, during the trainings a lot of problems were simulated, and the crew was always “charged” for emergency mission interruption, but in real flight the astronauts were “charged” for landing. The alarm signal was caused by the congestion of the on-board computer, which, in addition to the navigation data, received information that was unnecessary at that time from the radar of the meeting with the command and service module (the radar switch was put by Armstrong to this position about 3 minutes before the first alarm signal). In total, during the landing, the alarm worked 5 times, which greatly distracted the attention of astronauts. The decision of the MCC on the continuation of the landing was determined by the word of Steve Bales, a specialist in navigation systems of the lunar module (Eng.

    Eight and a half minutes after the start of braking, at an altitude of slightly less than 2 km, the stage of approaching the landing point began, the on-board computer proceeded to the program, according to which the landing engine and orientation system engines are controlled automatically, and astronauts can only manually adjust orientation. The Eagle began to slowly turn into an upright position. At an altitude of 1.5 km with a descent speed of 30.5 m / s, Armstrong turned off the automatic mode for a while to make a trial orientation adjustment, everything worked fine. Armstrong should have done this test a little earlier, so that in those moments he would have to deal exclusively with the visual search for a suitable landing site. Experts consider this delay a consequence of computer alarms, which distracted the commander. Turning the lunar module into a vertical position gave the commander not only an overview of the landing area, but also the ability to change the landing point. Scales were marked on the inner and outer windows of the commander's porthole. The pilot of the lunar module dictated to the commander the angular values ​​that the computer display showed, and the commander looked out the window so that both scales coincided. Then he saw the place where the autopilot leads the ship. This place could be changed by moving the handle of the controller. The controller moving one step forward moved the landing site 1/2 ° further in the course, one movement to the side - 2 ° to the left or right, respectively. Scales were marked on the inner and outer windows of the commander's porthole. The pilot of the lunar module dictated to the commander the angular values ​​that the computer display showed, and the commander looked out the window so that both scales coincided. Then he saw the place where the autopilot leads the ship. This place could be changed by moving the handle of the controller. The controller moving one step forward moved the landing site 1/2 ° further in the course, one movement to the side - 2 ° to the left or right, respectively. Scales were marked on the inner and outer windows of the commander's porthole. The pilot of the lunar module dictated to the commander the angular values ​​that the computer display showed, and the commander looked out the window so that both scales coincided. Then he saw the place where the autopilot leads the ship. This place could be changed by moving the handle of the controller. The controller moving one step forward moved the landing site 1/2 ° further in the course, one movement to the side - 2 ° to the left or right, respectively. This place could be changed by moving the handle of the controller. The controller moving one step forward moved the landing site 1/2 ° further in the course, one movement to the side - 2 ° to the left or right, respectively. This place could be changed by moving the handle of the controller. The controller moving one step forward moved the landing site 1/2 ° further in the course, one movement to the side - 2 ° to the left or right, respectively.

    At an altitude of about 460 m, Armstrong saw that the autopilot was leading the ship to a point on the near edge of a large crater surrounded by a field of boulders up to 2-3 meters across (it was later established that it was a West crater, English West Crater, with a diameter of 165 m). In a post-flight survey, he said that at first he thought this place was good, because from a scientific point of view, landing next to a large crater would be very valuable. However, Armstrong quickly realized that it would not be possible to land the Eagle in a fairly safe place without reaching the crater. He decided to fly it. At an altitude of about 140 meters, the commander put the computer into semi-automatic mode, in which the landing stage engine is automatically controlled and maintains a constant vertical speed of 1 m / s, and the orientation system engines are completely manually controlled. Armstrong reduced the inclination of the lunar module back from 18 ° to 5 ° from the vertical. This increased the speed of horizontal movement forward to 64 km / h. When the lunar module flew over the crater, the commander began to look for a place suitable for landing, and chose a relatively flat area between small craters and the boulder field. At an altitude of about 80 meters, the vertical descent rate was about 0.5 m / s. Aldrin said that 8% of the fuel remained. After a few seconds, he added that he saw the shadow of the “Eagle” on the surface of the moon. At the final stage of the approach, the lunar module was rotated about 13 ° to the left of the course, and the shadow was out of Armstrong's field of vision. At this point, a warning lighted up that the computer was not receiving data from the landing radar. This went on for a few seconds. At an altitude of 30 meters, Aldrin reported that 5% of fuel remains and that a warning has come on. The 94-second countdown began, after which Armstrong will only have 20 seconds to land the ship or interrupt the landing and take off urgently. After 33 seconds, Charles Duke, telecom operator at the Houston MCC, warned that 60 seconds remained. At this moment, the landing radar again “lost” the surface for several seconds. Armstrong's heart rate at the final stage of landing reached 150 beats per minute. At an altitude of 12 meters, Aldrin reported that moon dust was rising. But he rarely looked out the window. Armstrong said in a post-flight survey that he first noticed rising dust at an altitude of slightly less than 30 m. At first it looked like a transparent sheet of flying dust, which slightly impaired visibility. As the ship sank, visibility got worse.

    The landing of the "Eagle", shot on a 16-mm camera through the porthole of the pilot of the lunar module
    As Armstrong recalled, at an altitude of about 9 meters, the Eagle began to move left and back for some unknown reason. We managed to cope with the backward movement, but failed to completely extinguish the movement to the left. It was impossible to slow down the decline or hover even more, since there was very little fuel left, and the allowable time limit until the landing was interrupted was almost exhausted (in one of his interviews in 2001, Armstrong recalled that he wanted this first landing to go as smoothly as possible but at the same time he knew that if you extinguish horizontal speed and level the ship, you could fall from about 12 meters or more, in conditions of weak lunar gravity, the landing stage supports had to withstand the impact). Shortly after Aldrin reported that the height was 6 m, the vertical speed was 0.15 m / s, and the horizontal speed is 1.2 m / s, Duke from Houston warned that 30 seconds remain. 9 seconds after this warning, Aldrin shouted: “Contact signal!” This happened at 20:17:39 UTC on July 20 (102 h 45 min 39.9 s flight time). The blue contact signal meant that at least one of the 1.73 m long probes that were attached to three of the four supports (except the one where the staircase was) touched the lunar surface. 1.5 seconds after this, Armstrong turned off the engine. In a post-flight survey, he said that he could not accurately determine the time of landing. According to him, Buzz shouted: “Contact!”, But he didn’t even see a lighted signal, the engine worked until the landing, because it was so soft that the moment when the ship was on the ground was difficult to determine. After the landing, Armstrong passed on to Earth: “Houston, says Calm Base. The Eagle has sat down. Charles Duke answered, making a reservation out of excitement: “I understand you,“ Swok ... “,“ Calmness. You are loving. We were all already turning blue here. Now we are breathing again. Thanks a lot!"

    The lunar module became on the ground with a slight slope back at 4.5 ° from the vertical, and it remained rotated 13 ° to the left of the flight path [84]. Post-flight analysis showed that 349 kg of fuel remained in the fuel tanks of the Orel landing stage. This would have been enough for 25 seconds of hovering, after which there would have been 20 seconds to start the engine of the take-off stage and to interrupt the landing (the next Apollo had from 499 to 544 kg after landing). As it turned out, the warning about critically small fuel residues caught fire ahead of time because the fuel in the tanks began to splash after Armstrong tilted the lunar module to fly over the West crater. In all subsequent models of the lunar module, additional baffles were installed in the tanks. The ship landed at a point with coordinates of 0.67408 ° C. w. 23.47297 ° in. d. 6858 meters west of the center of the ellipse of the landing area. The reason for this was minor unaccounted for changes in the orientation of Columbia and Orla in orbit due to testing the engines of the lunar module orientation system, which then increased for two turns before braking, as well as incomplete depressurization of the transition tunnel between the ships, due to which the impulse which the Eagle received during undocking turned out to be a little more than the calculated one.

    [ source ]



    Apollo 8



    image
    While 4-year-old Lauren was sleeping peacefully on the floor of the laboratory, her mother created programs that will form the basis of the Apollo main command computer.

    In preparing the flight of Apollo 8, the first manned spacecraft to reach the orbit of the moon, Margaret Hamilton was able to detect a serious vulnerability, but no one believed that it poses a real threat. The daughter of Hamilton, who played with the Apollo 8 computer simulator while her mother worked, helped to find this vulnerability. At some point, she turned on the P01 sequence, which was launched before the launch of the spacecraft, when the simulator was already in flight. Running P01 at the wrong time crashed; and although the astronauts have no reason to make such a mistake, Hamilton decided to add a few lines of code - to make a kind of "protection against the fool." NASA opposed, believing that well-trained astronauts could never be so wrong in their lives.

    Shortly after Christmas in 1968, when Apollo 8 was supposed to leave the moon’s orbit and go to Earth, astronaut James Lovell did exactly what they did not expect from him - he launched P01 by mistake. As a result, navigation data disappeared from the Apollo computer, and he could not accurately determine his position in space. The crew of the ship had to quickly navigate the starry sky and enter the correct data into the computer, and NASA specialists, including Margaret Hamilton, spent nine hours searching for a solution on how to send other information necessary for the computer to Apollo from Houston. Apollo 8 successfully landed, and Lovell more than a year later applied his skills to manually reprogram the spacecraft’s computer during the Apollo 13 flight, whose crew he commanded. The Apollo 13 mission failed due to an accident on the way to the moon, but the spacecraft managed to return to Earth. Lovell later admitted that he was greatly helped in the emergency situation of Apollo 13 by the past experience of Apollo 8 and called the incident with the loss of navigation data a “routine training”. Later, the astronaut nevertheless admitted that he erased the data on his own oversight. [source ]

    Software engineering


    Margaret's successes in the SAGE project opened her doors to NASA. Margaret recalls:
    “In this company, it is customary to give beginners a program in which no one can figure it out, much less run it. When I was an intern, they also gave me such a task. It was a very tricky program, and moreover, the author of the code found pleasure in writing comments on the code exclusively in Greek and Latin. So, they gave me this task, and, in fact, I made it work. She even printed the result in Greek and Latin. I was the first to launch it. ”



    Hamilton popularized the term "software engineering", which was introduced by the use of Anthony Oettinger. [ Proof ]

    “I started using this name to highlight our work among other types of technology. When it first appeared, everyone thought it was very funny and joked about it for a long time: they say, what radical ideas I have , ”she says.

    In this area, she was one of those who developed concepts such as asynchronous software, priority scheduling, end-to-end testing and Human-in-the-loop decision capability, which served as the basis for the development of modern, fault-tolerant software .

    Free swimming


    In 1986, she founded and became CEO of Hamilton Technologies , in Cambridge, Massachusetts, a company that developed the programming system Universal Systems Language . "The language of universal systems", which prevents, but does not correct, malfunctioning situations, which is based on the theory of systems and is based on the lessons of the Apollo spacecraft on-board software development project.
    List of clients
    • Abadon
    • ABB
    • Access research
    • Adtranz signal
    • Advanced methods
    • AGS Nynex
    • Apogee communications technologies
    • Ariel technologies
    • AT&T
    • Auburn university
    • BDM International Inc.
    • BMC3 Engineering
    • Boeing
    • Boston university
    • Bowe Software Solutions
    • CA (Ingres)
    • Cadeon Strategic Technologies, Inc.
    • Cambridge Resource Group
    • Canadian Government
    • Chemical bank
    • Citibank
    • Codemakers Pty Ltd.
    • Computer Sciences Corporation
    • Construction Information Systems
    • Cross / Z International Inc.
    • CSIRO Institute of Information Science & Engineering.
    • Descartes
    • Digital / Compaq Computer Corporation
    • Dod
    • DOE
    • Eidisys
    • FEMA
    • Grumman
    • Hewlett packard
    • Honeywell
    • Hughes
    • Ibm
    • Independent engineering
    • International billing services
    • Lockheed martin
    • Logicon
    • Loral
    • Los Alamos National Laboratories
    • Massachusetts Institure of Technology (MIT)
    • Mcdonnell douglas
    • Miter
    • Motorola
    • MRJ, Inc.
    • NASA
    • Newbridge networks
    • NR Pty, Ltd.
    • NRI & NCC Co. Ltd.
    • NSA
    • Pacific States Marine Fisheries Commission
    • Praxis international
    • Rexham Aerospace and Defense Group
    • Saic
    • Scott paper
    • SDIO
    • SEI, Carnegie Mellon
    • Select Computer Technologies
    • Software Productivity Consortium (SPC)
    • State of massachusetts
    • Stratus Group, Inc.
    • Sun microsystems
    • Systems Automation Technology Ltd. (Sat)
    • Terry consulting
    • The registry
    • Toldark Pty. Limited
    • U. of Arizona
    • U. of Florida
    • U. of Minnesota
    • US Air Force
    • US Army
    • US Navy
    • WPL Laboratories




    Read more:


    Wiki:
    Margaret_Hamilton_ (scientist)
    (no Russian article)

    GeekTimes:
    Margaret Hamilton, Lead Software Engineer, Apollon Project

    Wired:
    Her Code Got Humans on the Moon — And Invented Software Itself
    Software - and a Woman - at the Heart of Lunar Triumph

    Translations:
    Apollo 8 Error As a NASA programmer in 1968, she discovered a vulnerability in a spaceship. The
    programming grandmother

    P.S.
    “Then I often imagined with what headlines the newspapers would come out if something went wrong. Everyone will blame me for the failure , ”recalls Hamilton.
    Remember that the tester is responsible for everything

    P.PS
    Special thanks to Sasha for his help with the translation.




    Together with Edison, we continue the spring publication marathon.

    I will try to get to the bottom of the source of IT-technologies, to figure out how they thought and what concepts were in the minds of the pioneers, what they dreamed about, how they saw the world of the future. Why did they think about “computer”, “network”, “hypertext”, “intelligence amplifiers”, “collective problem solving system”, what meaning they put into these concepts, what tools they wanted to achieve the result.

    I hope that these materials will serve as inspiration for those who are wondering how to go “from Scratch to Unit” (to create something that was not even mentioned before). I want IT and "programming" to cease to be just "coding for the bucket", and recall that they were conceived as a lever to changemethods of warfare, education, a way of joint activity, thinking and communication, as an attempt to solve world problems and respond to the challenges facing humanity. Something like this.

    March 0 Seymour Peypert
    March 1. Xerox Alto
    March 2 "Call Jake." History of NIC and RFC
    March 3 Grace “Granny COBOL” Hopper
    March 4 Margaret Hamilton: “Guys, I'll send you to the moon”
    March 5 Hedi Lamarr. And to shoot a movie in a naked movie and to shoot a torpedo at an enemy
    on March 7 The magnificent six: girls who counted a thermonuclear explosion
    on March 8 "Video games, I am your father!"

    Only registered users can participate in the survey. Please come in.

    Did the Americans fly to the moon?

    • 70.1% flew and returned 699
    • 1.2% flew, but did not return 12
    • 9.7% Didn’t Fly, All Filmed in Hollywood 97
    • 17.9% Green Cat will send its companion, then we will find out 179
    • 1% Other 10

    Read Next