Picture doing a software upgrade. Now picture doing it when the machine you're upgrading is sitting 156 million miles away. And now picture tweaking that software every day.
That's what programmers and engineers at NASA's Jet Propulsion Laboratory have to do to ensure that the Mars rover Curiosity is able to carry out its mission.
After Curiosity landed safely on the Red Planet earlier this month, JPL technicians successfully undertook a four-day project to download updated flight software onto the rover. The upgrade changed Curiosity's software from a program optimized for landing on Mars to one optimized for working on the planet's surface, said Michael Watkins, a mission systems manager at JPL.
The team needed "to take a whole series of steps to make that software active," said Steve Scandore, a senior flight software engineer. "It's not like doing a regular remote upgrade. We have no one we can ask to check something for us. We have to send code up and then wait."
And that upgrade was just the start of ongoing efforts to tweak the rover's software. Around 100 JPL programmers write commands for Curiosity every day, said Andy Mishkin, a mission leader.
Curiosity needs to be told what to do -- move across the bottom of a crater, zap a rock with its laser, scoop up a soil sample -- and programmers have to write the code that tells it to do those things. They have about a half-day to write, test and upload each day's batch of commands.
This version of this story was originally published in Computerworld's print edition. It was adapted from an article that appeared earlier on Computerworld.com.