[Namaste-dev] Re: Software Defined Radio - Mars Lander daily software changes

Phil Karn karn at ka9q.net
Fri Jun 13 23:06:19 PDT 2008

grayg ralphsnyder wrote:

> The data relay satellite orbiting Mars has a 'safe mode' that it goes 
> into when some fault occurs or by other causes such as excessive 
> radiation.  It stops what is was doing until it receives new 
> instructions.  Do all satellites have this feature ? 

Safe mode is a very common feature on spacecraft, especially 
interplanetary research probes. They tend to be complex and nearly 
unique so there are many ways to get into trouble. The distance to earth 
and the path losses are so high that some autonomy is needed. The 
spacecraft must have some basic protective instincts such as the ability 
to maintain a positive power budget and establish some sort of link with 
earth. This usually involves acquiring the sun, pointing solar panels at 
it, and then using the sun and other attitude references (e.g., star 
trackers) to point a high gain antenna at the earth.

If this isn't possible the spacecraft can switch to an omni directional 
antenna and a very low data rate. I've seen emergency rates as low as 5 bps.

The first amateur spacecraft to have an onboard computer and thereby be 
heavily software dependent was AMSAT Phase-IIIA, lost in the Ariane L02 
launch failure in May 1980. A near copy, Phase-IIIB, was launched as 
Oscar-10 in 1983. Both spacecraft used an RCA 1802 computer to control 
the entire spacecraft operating state. The command receiver fed a 400 
bps BPSK demodulator that in turn fed a computer input port read by the 
operating system. Without the computer running, there was no way to 
command the spacecraft.

In case the 1802 crashed, a hardware sequence detector continually 
monitored the command demodulator output for a special reset sequence. 
Special hardware loaded a block of uplink data into RAM and reset the 
computer to execute it. There was no ROM.

The RAM used a simple (12,8) binary Hamming ECC to protect against 
single bit RAM errors. An XOR ladder generated the four parity bits as 
each byte of data was written to RAM, and hardware also corrected read 
errors. A software "wash" routine ran in the background on the computer. 
It simply read each byte of RAM and wrote it back, causing the ECC 
hardware to detect and correct any errors. This was necessary to reduce 
the chances of any single RAM location containing two or more bit 
errors, which would have been uncorrectable.

More information about the Namaste-dev mailing list