It's been two decades since Spirit landed on the red sands of Mars
Decades, gone in a flash: Longlived mission was almost derailed by file system whoopsie
It is 20 years this week since NASA's Spirit rover landed on Mars, kicking off years of exploration before ending its mission stuck in the sand.
Spirit was the first of NASA's two solar-powered Mars Exploration rovers to land on Mars in 2004. Unlike successive, heftier rovers, Spirit and Opportunity, which touched down a few weeks later, Spirit used airbags to soften the landing on the surface. First entry into the thin atmosphere occurred, followed by the deployment of parachutes, the heat-shield ejection and finally the spacecraft's tumbling and bouncing, safe within those cushions.
For those interested, the tension surrounding the landing is well documented in the book Roving Mars written by Steve Squyres, who was principal investigator for the science payload on the Mars Exploration Rovers and is now Chief Scientist at Blue Origin.
Spirit was only supposed to last 90 sols on Mars – just over 92 Earth days. As it turned out, the trundlebot survived 2,208 sols before its last contact on March 22, 2010.
Spirit was a robotic geologist with a mission to seek out evidence of water activity and assist scientists in working out what geologic process might have shaped the surface of Mars. The six-wheeled rover was equipped with a mast, atop which were cameras for surveying the surroundings. It also had a set of optics for navigation and a robotic arm equipped with four tools: a microscopic imager, a pair of spectrometers, and the Rock Abrasion Tool (RAT) for grinding away at rocks to expose fresh material.
The computer running the show was described as "comparable to a high-end, powerful laptop computer." Onboard memory was 128 MB of DRAM with error detection and correction and 3 MB of EEPROM.
Basic by today's standards, but considerably more advanced than the missions to Mars – for example, the Sojourner rover – that had gone before.
Of the twin Mars exploration rovers, Spirit always had the hard luck. Having survived a near-death experience before even leaving Earth, the trundlebot experienced its first serious issue soon after landing. Squyres recalled arriving at NASA's Jet Propulsion Laboratory on Sol 18 to be greeted by a grim-faced engineer who said: "We've got nothing."
Other than some beeps to indicate the rover was still there, the team faced an agonizing few sols trying to communicate with a suddenly silent rover. Squyres documents the tension well in Roving Mars as engineers sought to diagnose the issue. The rover, it appeared, was rebooting constantly. This was bad since the rover was rebooting and crashing repeatedly rather than sleeping overnight, as designed. There was a real danger the power system might be permanently damaged.
"I don't know how much more of this she can take," said Squyres at the time.
While the marvelously named
SHUTDOWN_DAMMIT command did not keep the rover asleep,
INIT_CRIPPLED would at least allow the engineers to start the rover's computer without using the flash file system – then the leading candidate for what might have caused the problem.
The solution worked, and engineers regained control of the rover. The problem? Apparently, the file system had been overloaded – more and more memory had been used every day, and eventually, the boot process failed while trying to read the file system.
INIT_CRIPPLED command had saved the day by bypassing the flash file system entirely. It probably shouldn't have been there. As Squyres noted, "it's not the kind of command that you'd ever expect to use under normal conditions on Mars."
- Half a kilo of cosmic nuclear fuel reignites NASA's deep space dreams
- Mars helicopter phones home after 63 days of silence
- Curiosity gets interplanetary software patch for better driving and more on Mars
- To explore caves on Mars and the Moon, take a hint from Hansel & Gretel, say boffins
- SiFive RISC-V CPU cores to power NASA's next spaceflight computer
"But back during the earliest days of the project Glenn [Reeves] realized that someday we might need the flexibility to deal with a broken flash file system, and he put
INIT_CRIPPLED in the system and left it there. And when the anomaly hit, it saved the mission.
"I've gotta buy that boy a beer."
Eventually, the entire flash memory system was reformatted, and the rover returned to full working condition. Important lessons had also been learned.
Spirit continued the mission, extended beyond the imaginings of its designers. Occasional dust-devil cleaning events kept the solar panels relatively clean, and despite hardware failures, including a failed front wheel, the rover kept roving.
That failed wheel provided some interest in 2007, as a patch of ground was uncovered when Spirit dragged the wheel along, which scientists reckoned could have been an ideal habit for microbial life.
Spirit's demise came after it got stuck in soft sand in 2009, and declared a 'stationary research platform' by NASA. The final communication from the rover occurred on March 22, 2010, before Spirit fell silent, likely due to a low power condition.
NASA eventually gave up trying to communicate with Spirit on May 25, 2011. Its sibling, Opportunity, continued to operate, and a follow-up rover, Curiosity, was launched in November of the same year.
And yes, there is, of course, an xkcd cartoon. ®