Voyager 1 – udana reanimacja!
Rzadko mam okazję poznać tak imponujący wyczyn współczesnej inżynierii. A ten, którym chcę się z wami podzielić robi szczególne wrażenie. Inżynierowie i programiści z Jet Propulsion Laboratory w NASA odtworzyli, zmodyfikowali i zdalnie zaktualizowali kod sondy Voyager 1. OK, zdalna aktualizacja to nic nowego, ale mówimy o najdalszym obiekcie stworzonym przez ludzkość.
Już kilkukrotnie wspominałem wam na naszych łamach, że imponujące dzieło technologii sprzed półwiecza: Voyager 1, ma kłopoty. Najpierw okazało się, że jeszcze pod koniec ubiegłego roku utracono łączność z sondą. Oczywiście Voyager 1 leciał dalej (bo tam, gdzie jest, nie ma niczego, co mogłoby go zatrzymać), ale leciał, przynajmniej dla nas, na ślepo.
Po kilku miesiącach pracowitych analiz problemu, udało się częściowo odzyskać szczątkowy kontakt z sondą, na tyle by starczyło to do diagnozy, co właściwie się stało.
Voyager 1 się odezwał, czy jest nadzieja na odzyskanie kontaktu?
A co się stało? Jak przypuszczają specjaliści z NASA, uszkodzeniu uległ jeden z układów podsystemu pamięci danych lotu (FDS – Flight Data Subsystem), jeden z trzech obecnych na pokładzie sondy komputerów. Uzyskany w marcu br. odczyt pamięci systemu FDS, odpowiedzialnego między innymi za telemetrię sondy, pozwolił ustalić, gdzie dokładnie leży problem z kodem Voyagera 1.
Jak się okazało problem pojawił się w wyniku awarii jednego z chipów stanowiących część pamięci systemu FDS. Choć awaria – spowodowana być może uderzeniem promieniowania kosmicznego w układ, albo po prostu wynikająca z zużycia – oznacza utratę tylko ok. 3 procent pamięci komputera telemetrycznego Voyagera 1, to inżynierowie musieli przenieść część uszkodzonego kodu do innych, sprawnych wciąż modułów pamięci sondy.
Przenieść kod z jednego układu do drugiego. Drobiazg, prawda? Zwłaszcza, że pacjent jest najdalszym obiektem surfującym w przestrzeni kosmicznej w odległości ponad 24 miliardy km od Ziemi, a przesłanie choćby bita informacji zajmuje ponad 22,5 godziny. W jedną stronę. A przecież potrzebujemy odpowiedzi.
To jednak tylko jeden kłopot. Inny polegał na tym, że nie można było po prostu przenieść kodu z uszkodzonej części do innej, bo zwyczajnie inne części nie są wystarczająco pojemne w Voyagerze 1, by zrobić tak doskonale nam wszystkim znane „kopiuj-wklej”. Zatem zespół NASA odpowiedzialny za reanimację Voyagera 1 podzielił kod na sekcje, które następnie trzeba było z sensem (by wszystko znowu mogło w pełni funkcjonować) zmodyfikować i rozlokować po pozostałych modułach pamięci FDS. To z kolei oznaczało, że wszelkie odniesienia do innych porcji kodu obecne na pokładzie sondy stałyby się nieaktualne, je również trzeba było zaktualizować. Generalnie wymagało to napisania kodu Voyagera 1 w znacznej części od podstaw.
To wciąż nie koniec problemów. W przypadku nowszych misji kosmicznych, naziemne centra obsługi i dowodzenia mają do dyspozycji odwzorowane 1:1 symulatory pozwalające sprawdzić dane rozwiązanie, aktualizację czy inną modyfikację tu na Ziemi, zanim rozkaz zostanie wysłany w przestrzeń kosmiczną. W przypadku Voyagera 1 NASA nie miała żadnej takiej kopii czy symulatora. Większość dokumentacji tej najdalszej sondy kosmicznej zbudowanej przez ludzkość jest wciąż w formie papierowej i nie została zdigitalizowana. W efekcie poprawność kodu analizowano niejako ręcznie.
Dobra wiadomość jest taka, że udało się odbudować kod odpowiedzialny za jeden z trzech trybów działania FDS. Po wysłaniu kodu do sondy w siedzibie JPL były dwa nerwowe dni oczekiwania (przypomnę: czas przesyłu to 22,5 godziny w jedną stronę). Ostatecznie Voyager 1 się odezwał zgodnie z oczekiwaniami. To jeszcze nie kończy kuracji Voyagera 1, przez najbliższe tygodnie eksperci NASA będą analizować kolejną porcję kodu FDS odpowiedzialną za dane naukowe, zanim ponownie prześlą następną paczkę z aktualizacją. Dobra wiadomość jest jednak taka: Voyager 1 wciąż jest z nami.