Index Home About Blog
From: (Henry Spencer)
Subject: Re: Apollo Spacecraft Guidance Computers
Date: Fri, 8 Jan 1999 16:41:36 GMT

In article <>,
Robert Barron <> wrote:
>Since when do spacecraft have fully redundent / re-programable
>computer systems? (Ummm, since the net doesn't relay my tone of voice,
>I'll clarify that I'd like a datelike answer and I'm not being
>sarcastic ;)

The fast answer is that it's happened gradually.  Earlier on-board
computers tended to emphasize software in ROM, with only very limited
reprogramming ability, partly because of technological limits and partly
because of procedural worries (would uploading be reliable enough?  what
happens if the uploaded software gets scrambled later by a power glitch?
etc.).  People have slowly gotten more comfortable with extensive
reprogramming, and they've also gotten more interested in the idea, as
several major missions have demonstrated that being able to revise the
programs after launch can be a big win.

The Vikings (launched 1976) relied heavily on ROM software.  Galileo
(originally meant to be launched in 1982) made much more extensive
provisions for reprogramming, and that's just as well considering what
happened later!

Redundancy likewise crept in around the same time.  Early systems often
had only one computer because there simply wasn't mass/power/money for

>Was this always around (IIRC one of the first moon landings (11' if
>IIRC) had to have a re-write during the mission beacuse of a broken

That confuses two incidents.  The broken switch on 11 was worked around
without needing software changes.  The erratic switch on 14 was the one
that required a quick software patch.

Most of the Apollo software was in ROM -- partly because ROM was then much
denser than RAM, so hardware constraints demanded heavy reliance on ROM --
but there were provisions for patches to work around late-appearing
problems.  (Now and then, the ROM code checked flags in RAM, and if they
were set the right way, would branch to small chunks of code in RAM.)

Apollo's computers were non-redundant, relying on tight quality control
and rigorous testing, with fallback to separate (and much more limited)
emergency systems if necessary.

>How about system errors? I read somewhere that Voyager had a problem
>because a single bit of RAM was 'burnt' and set to be permanantly on.
>I don't know much about assembly level programming, but surely if you
>want to reprogram your computer to ignore some part of memory you'd
>need to either do some REALLY fancy programming, or plan ahead...
>(Probably a combination of both ;) )

Some of both.  Localized memory failures are most definitely a possibility
on spacecraft, so the software is organized to permit dealing with it.
But it has taken some fancy programming at times.
The good old days                   |  Henry Spencer
weren't.                            |      (aka

Index Home About Blog