Spirit, also known as MER-A (Mars Exploration Rover - A) or MER-2, is a robotic rover on Mars, active from 2004 to 2010. It was one of two rovers of NASA's ongoing Mars Exploration Rover Mission. It landed successfully on Mars at 04:35 Ground UTC on January 4, 2004, three weeks before its twin, Opportunity (MER-B), landed on the other side of the planet. Its name was chosen through a NASA-sponsored student essay competition.

On January 21, 2004 (sol 17), Spirit abruptly ceased communicating with mission control. The next day the rover radioed a 7.8 bit/s beep, confirming that it had received a transmission from Earth but indicating that the craft believed it was in a fault mode. Commands would only be responded to intermittently. This was described as a very serious anomaly, but potentially recoverable if it were a software or memory corruption issue rather than a serious hardware failure. Spirit was commanded to transmit engineering data, and on January 23 sent several short low-bitrate messages before finally transmitting 73 megabits via X band to Mars Odyssey. The readings from the engineering data suggested that the rover was not staying in sleep mode. As such, it was wasting its battery energy and overheating - risk factors that could potentially destroy the rover if not fixed soon. On sol 20, the command team sent it the command SHUTDWN_DMT_TIL ("Shutdown Dammit Until") to try to cause it to suspend itself until a given time. It seemingly ignored the command. The leading theory at the time was that the rover was stuck in a "reboot loop". The rover was programmed to reboot if there was a fault aboard. However, if there was a fault that occurred during reboot, it would continue to reboot forever. The fact that the problem persisted through reboot suggested that the error was not in RAM, but in either the flash memory, the EEPROM, or a hardware fault. The last case would likely doom the rover. Anticipating the potential for errors in the flash memory and EEPROM, the designers had made it so that the rover could be booted without ever touching the flash memory. The radio itself could decode a limited command set - enough to tell the rover to reboot without using flash. Without access to flash memory the reboot cycle was broken. On sol 19 (January 24, 2004) the rover repair team announced that the problem was with Spirit's flash memory and the software that wrote to it. The flash hardware was believed to be working correctly but the file management module in the software was "not robust enough" for the operations the Spirit was engaged in when the problem occurred, indicating that the problem was caused by a software bug as opposed to faulty hardware. NASA engineers finally came to the conclusion that there were too many files on the file system, which was a relatively minor problem. Most of these files contained unneeded in-flight data. After realizing what the problem was, the engineers deleted some files, and eventually reformatted the entire flash memory system. On February 6 (sol 33), the rover was restored to its original working condition, and science activities resumed.

Ask a question about this article.
How did engineers try to solve the problem?