Picture doing a remote software upgrade. Now picture doing it when the machine you're upgrading is a robotic rover sitting 350 million miles away, on the surface of Mars.
That's what a team of programmers and engineers at NASA are dealing with as they get ready to download a new version of the flight software on the Mars rover Curiosity, which landed safely on the Red Planet earlier this week.
"We need to take a whole series of steps to make that software active," said Steve Scandore, a senior flight software engineer at NASA's Jet Propulsion Laboratory (JPL). "You have to imagine that if something goes wrong with this, it could be the last time you hear from the rover."
"It has to work," he told Computerworld. "You don't' want to be known as the guy doing the last activity on the rover before you lose contact."
Michael Watkins, a mission systems manager at JPL, said during a press conference today that a team of programmers are getting ready to upgrade Curiosity's software from a program optimized for landing to one optimized for working on the planet's surface.
Scandore explained that the updated software was uploaded to the rover while it was still traveling through space on its way to Mars. It's been sitting dormant for the last few months and NASA engineers will begin to activate it on Saturday.
Before then, though, they are busily testing Curiosity's two computers, along with other systems, to make sure everything is ready for the update.
Once the update begins, it will take two days to upgrade the software on the main computer and then another two days to upgrade the backup computer.
"We'll tell it to activate a sequence to start the load, then we go out of contact [with the rover] and it's gone for about eight hours," Scandore said. "We start the upgrade. It will perform a series of steps and then it will turn itself off. It will wake itself up the next day and there's a down link to see what was done the day before."
Scandore said they've long been working on this upgrade and have tested and worked it until it's become routine, but he's still a bit anxious about the actual load.
"It's not like doing a regular remote upgrade," he said. "We don't have a person on the other end. The vehicle is up there by itself. We can't interact with someone on the other end. We have no one we can ask to check something for us. We have to send code up and then wait."
And while this is a major software upgrade, Andy Mishkin, a mission leader with JPL, noted that he has a separate team of about 100 programmers who write commands for Curiosity every day.
Curiosity, while working on Mars alone, needs to be told what it will do every day -- move across the bottom of the crater, zap a rock with its laser, scoop up a soil sample. And once a team of NASA scientists make the daily decision as to what the rover will do, programmers have to begin furiously working on up to a 1,000 different commands that will be uploaded to the rover.