16
Fly me to the Moon* On HW/SW used by Apollo missions to land on the Moon April 1 st 2015, [email protected] * a song originally written by Brad Howard in 1954 and recorded by Frank Sinatra in1964

Fly Me to the Moon

Embed Size (px)

Citation preview

Fly me to the Moon*On HW/SW used by Apollo missions to land on the Moon

April 1st 2015, [email protected]* a song originally written by Brad Howard in 1954 and recorded by Frank Sinatra in1964

Why?

Aim for deep space / universe understanding?

Aim for technological advance with huge impact on humanity?

Seek a solution to a crucial problem enabling humans to alive?

Another purely practical reason?

Bring alien technology from the dark side of the Moon?

Why?

Space Race as a part of Cold War propaganda

Space Race Timeline

Space Race Timeline: Computers Evolution

Intel founded 1968

… 9x around the Moon & 6x on the Moon

Apollo Program: Mission(s) & Timeline

• Apollo 1 1966/02/22 - 1st flight of Saturn 1b

• Apollo 2 1966/07/05 - fuel tank test

• Apollo 3 1966/08/25 - sub-orbital Saturn 1b test

• Apollo 1 1967/01/27 - pre launch cabin fire (Block I)

• Apollo 4 1967/11/09 - 1st test of Saturn V booster

• Apollo 5 1968/01/22 - test of Saturn V booster & LM

• Apollo 6 1968/04/04 - test of Saturn V booster

• Apollo 7 1968/11/11 - 1st manned Saturn 1b

• Apollo 8 1968/12/21 - 1st manned Saturn V around Moon

• Apollo 9 1969/03/03 - 1st manned LM

• Apollo 10 1969/05/18 - 1st manned LM around Moon

• Apollo 11 1969/07/16 - 1st manned landing on the Moon

• Apollo 12 1969/12/14

• Apollo 13 1970/04/11 - SM explosion & LM as life boat

• Apollo 14 1970/01/31

• Apollo 15 1971/07/26 - 1st lunar rower excursion

• Apollo 16 1972/04/16

• Apollo 17 1972/12/07 - Final manned landing on M

3 stages, 111m, service + lunar + command modules

AGC Drill Down: Saturn 5

AGC Drill Down: Saturn 5

Žižkovská věž 213m

Apollo PGNCS

• PGNCS == inertial guidance system

• Navigation (speed, position, attitude):

• Inertial: Inertial Measurement Unit - vector & gyroscope

• Optical: Optical Unit - sextant (position & orientation)

• Radio: Radar(s) - radio beacon & Doppler (v; 10mm/s)

• AGC == PGNCS computer

• Both on CM and LM

• Developed by MIT, manufactured by GM

The Primary Guidance, Navigation and Control System aka “pings”

PGNCS w/ AGC @ Lunar Module

AGC: Apollo Guidance Computer

• Digital computer = DSKY + Block I/II

• Both on CM and LM

• Guidance + navigation + control

• NASA deep space net > vector > AGC

• DSKY = numeric display & keypad

• Numbers display: vectors

e.g. space craft attitude & velocity delta

• Commands: verb & noun

two XX numbers w/ action & data

• Units: metrics (internal) > US (DSKY)

• 2xCM & 1xLM

• Block I/Block II = digital computer

• Developed by MIT in 1966 w/ Raytheon

• fridges > WW2 > defense

AGC: Hardware

• Lead: Charles Stark Draper

• “father of inertial navigation”

• RAM 3.8kB (Apollo 14 reprogramming)

• ROM 74kB of LOL memory

• “little old lady” - core rope memory

• Registers: 4 central 15+1b + ~20 specific

• Instructions: 11, 3b+12b (opcode + addr)*

• Interrupts: 5, Bus: 16b RD + 16WR

• Logical module (not CPU):

• 4.100/2.800 (Block I/II) integrated circuits (1958)

ICs > logic modules > Block I/II

• Timing: 2.048 MHz referential + aux timers

• ~32kg, ~70W/55W + stand-by, 61x32x17cm

• Water cooling

RAM ROM

Logic module

ICs

AGC: Software

• Lead: Margaret Hamilton (31) @ MIT

• Exec OS w/ 8 jobs

• Cooperative multi-tasking

• Interrupt driven priority* job waitlist

• Margaret:

• Coined term software engineering & set dev standards

• Designed virtual machine ~ robust sophisticated interpreter

• new (pseudo) instructions & lower memory consumption

• buffer overflow & cycle stealing handling (RAM w/o CPU)

• Her robust AGC design avoided Apollo 11 crash

• … when landing on the Moon: 3’ > radar (activated by mistake) >

overload (interrupts) > alarms > … but still running* + 2’’ from death

Necessary software and programming techniques did NOT exist > to be designed

Margaret Hamiltonlead Apollo flight software engineer

AGC: Try it Yourself!

• AGC emulators:

• JavaScript

• http://svtsim.com/moonjs/agc.html

• Project Apollo NASSP emulator

• http://sourceforge.net/projects/nassp/

• Original AGC source code:

• https://code.google.com/p/virtualagc/

• Comments & thoughts & ideas:

• news.ycombinator.com

Lessons Learned

• Simple

• Reliable

• Robust

• Efficient … design

• Improvise

• Handle failure gracefully

• Work with users astronauts on UX

• Unit tests prove your code

• Trust in skilled crew, not in computers

They would not let as fly the moon today…