La Software Patch di Apollo 14

I pulsanti di Abort sul Pannello
di Controllo del Lunar Module

Nel corso della missione Apollo 14, un potenziale problema col computer di bordo, che avrebbe potuto porre fine anticipatamente alla missione, fu causato da un elemento esterno all’AGC.

Circondati da una striscia adesiva gialla e nera, al centro del pannello di controllo del LM si trovavano due pulsanti rossi con le parole ABORT e ABORT STAGE in caratteri bianchi: tramite la pressione di uno di quei tasti era possibile iniziare un processo irreversibile di terminazione della missione.

Dick Thorson era il LM Control Engineer per le fasi di discesa ed allunaggio durante Apollo 14. Utilizzando la sua console era in grado di monitorare i progressi dell’equipaggio nella procedura di preparazione all’inizio della PDI (Powered Descent Ignition): a meno di quattro ore dall’ora prevista per l’allunaggio, con la coda dell’occhio, Dick notò un cambiamento sul pannello. Una delle oltre 100 spie presenti sulla sua console si era accesa ad indicare che un membro dell’equipaggio aveva premuto il pulsante di ABORT. Il controllore mantenne la calma e contattò la sua backroom1 per una conferma; conferma che arrivò subito: “Channel 30, Bit 1 is set.” Questo specifico bit nell’AGC era legato al pulsante di ABORT ed era utilizzato per far avviare all’AGC il Programma 70 (P70), il Descent Propulsion System Abort. Ovviamente sia Shepard che Mitchell confermarono di non aver assolutamente toccato il pulsante.

Il problema era dovuto ad un piccolo frammento di una saldatura che vagava liberamente all’interno dell’interruttore del pulsante di abort e che andava di tanto in tanto a chiudere il contatto (altri interruttori di abort vennero in seguito esaminati con i Raggi X, mostrando lo stesso difetto). Questo corto circuito intermittente nel pulsante di ABORT rappresentò uno dei momenti più drammatici per gli ingegneri dell’MIT nel corso dell’intero Progetto Apollo. Avevano tre – quattro ore per trovare un sistema per far ignorare il messaggio erroneo ai computer, verificare la soluzione alla Grumman e infine nei simulatori a Houston, prima di inviarlo all’equipaggio in tempo per la PDI. Jack Garman, che si trovava nella backroom anche durante l’allunaggio di Apollo 11, si ricorda la forte pressione dovuta al poco tempo a disposizione: “The worst nightmare of all”.

Come detto il bit 1 del Channel 30 (i Channel erano dei gruppi di bit utilizzati per la comunicazione tra l’AGC e i dispositivi esterni) era gestito direttamente dal pulsante di Abort sul pannello di controllo del LM. In quel preciso momento della missione (prima dell PDI), non vi erano rischi per la missione. Un altro bit nell’AGC, LETABORT, era impostato a 0, e impediva la terminazione del programma in esecuzione e il lancio di uno dei programmi di abort (P70 o P71).

Eldon Hall (AGC Head Designer)
testa il funzionamento dell’AGC

La normale sequenza per la PDI prevedeva l’avvio del Programma 63 (Braking Phase) circa 15 minuti prima del momento dell’accensione per permettergli di effettuare una serie di calcoli necessari per la manovra. Al momento dell’accensione il controllo passava alla routine BURNBABY (!!!) che come prima cosa andava ad impostare il bit LETABORT a 1 e a pianificare l’esecuzione di un’altra routine, la Routine 11 (R11). Ogni quarto di secondo (0.25 sec), R11 andava a verificare il bit LETABORT: se era impostato ad 1, determinava il valore del bit 1 del Channel 30 per rilevare una richiesta di abort; se questo bit era impostato ad 1 allora R11 controllava l’area di memoria chiamata MODREG. MODREG conteneva il numero del programma principale in esecuzione (P63, P64, P70 …). Se R11 vi trovava il valore 70 o 71 significava che un abort era già in corso e ovviamente non serviva iniziarne un’altro altrimenti avviava il programma di abort adatto alla situazione. Nei 26 secondi successivi all’accensione, il DPS veniva orientato in modo che la sua spinta fosse diretta esattamente attraverso il centro di gravità del LM. Soltanto se MODREG era impostato a P63 la routine BURNBABY comandava il DPS alla massima potenza, condizione che veniva mantenuta per circa 6 minuti e 40 secondi. Ovviamente per tutto questo tempo l’AGC (tramite la R11) era pronto ad attivare la procedura di abort.

La soluzione doveva tenere conto di tutta questa serie di eventi ed attività. Quella che gli ingegneri dell’MIT trovarono viene solitamente indicata come una modifica ad un programma. In realtà i programmi dell’AGC non potevano essere modificati (erano codificati nella memoria di sola lettura). La soluzione fu un piccolo trucchetto da hacker con i bit di alcune locazioni della memoria riscrivibile dell’AGC (tra cui il LETABORT). Vennero eseguiti i seguenti passi:

  • Il Programma 63 (P63) venne regolarmente avviato in modo che potesse effettuare i suoi calcoli di traiettoria

  • Poco prima dell’accensione del DPS, il MODREG venne impostato a 71 in modo da ingannare la R11 e farle credere che un abort fosse già in corso

  • BURNBABY avrebbe avviato una regolare accensione del DPS (incluso l’allineamento del motore al centro di gravità). LETABORT si sarebbe automaticamente impostato a 1 ma R11 lo avrebbe ignorato per via del valore 71 in MODREG

  • Il CDR avrebbe portato a piena potenza il DPS manualmente tramite il suo Thrust / Translational Controller Assembly (TTHC)

  • LETABORT sarebbe stato resettato a 0 manualmente, disabilitando l’utilizzo dei pulsati ABORT e ABORT STAGE

  • MODREG sarebbe stato reimpostato a 63 (Program 63) per permettere al programma di riprendere a funzionare correttamente. Essendo LETABORT impostato a 0, R11 non avrebbe più verificato nè il bit 1 del Channel 30, nè MODREG

  • Avendo reimpostato in MODREG il programma corretto, il CDR avrebbe riportato il TTHC in posizione di riposo, permettendo a P63 di riprendere pieno controllo del motore

Se si fosse verificata una condizione reale di abort, l’equipaggio avrebbe potuto iniziare la manovra avviando manualmente il programma adatto oppure, attraverso una sequenza più lunga, impostando ad 1 il LETABORT bit e premendo poi uno dei pulsanti di ABORT / ABORT STAGE.

Nelle missioni successive ad Apollo 14, venne prevista una soluzione software per permettere all’equipaggio di disabilitare i due programmi di abort, proprio nell’eventualità che si verificassero ancora problemi con i pulsanti od altri componenti del sistema di attivazione di questi programmi.

Mitchell dichiarò in seguito che non pensava di sfidare la propria fortuna inserendo la inusuale sequenza di comandi necessari all’ultimo minuto: “Avevo una tale familiarità con il sistema che potevo ‘giocarci’, come un hacker.” Era a sua agio con i computer del LM: “Potevo fare cose con l’AGS [il computer di navigazione di riserva] e il sistema di guida principale che non erano previste, che nemmeno si trovavano nella checklist.”

(1) Le backrooms erano delle stanze, solitamente ubicate nello stesso edificio della MOCR, in cui si trovavano dei gruppi di ingegneri della NASA e delle ditte appaltatrici che assistevano i controllori delle diverse aree con la loro profonda conoscenza tecnica dei vari sottosistemi e la loro esperienza.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...