Opportunity uses NASA's veteran Mars Odyssey satellite as a communications relay between the Red Planet and Earth, so whenever Odyssey makes an orbital pass, commands are sent down to the rover and telemetry is beamed back to Earth.
PHOTOS: Alien Robots That Left Their Mark on Mars
But should an orbital pass be unavailable until the rover has powered down and then rebooted the following day, the rover team noticed that data was being lost - the rover had been encountering the flash memory error and then saving it to RAM, avoiding the flash memory all together. As the rover powered down, the RAM was wiped and the data was gone the following day.
Christmas Blues The flash memory issue has grown into a bigger problem than losing valuable data, however.
As the rover attempts to save data to the flash memory, and is repeatedly unsuccessful, its software forces the rover to reboot. If a sequence of commands is sent to the rover, it will keep rebooting over and over again, forgetting what the previous command instructed the rover to do.
"Basically the rover stops what it was doing because it wasn't sure what caused the reset," said Callas. "So that interrupts our science mission on the surface of Mars.
"It's like you're trying to drive on a family trip - the car stalls out every 5 minutes. You don't make much progress that way!"
And now the rover team's worse nightmare has reared its ugly head - Opportunity stopped communicating with Earth over the Christmas break.
ANALYSIS: Rover Opportunity Celebrates Mars Spring Power Boost
As the NASA team went into the Christmas holidays, a series of 3 sol (Mars day) plans gave the rover a sequence of commands to work on. On the first sol, the rover would operate as expected, but come the second and third sols, not only would the rover not execute the rest of the commands, it stopped talking to mission control.
Like any space mission, when Opportunity stops talking, "we get very, very worried," said Callas.
Fortunately, after sending commands to the rover, it sent a reassuring "beep" in reply and continued with its instructions.
It seems the source for all these problems lead back to one particular bank of flash memory. 7 banks are used by Opportunity and it's the 7th bank that is triggering the data loss, rover resets and communications glitches.
Now the culprit has been identified, JPL software engineers have developed a technique that will force the rover's software to ignore the 7th bank and utilize the other 6 apparently healthy banks. According to Callas, his team is probably a couple of weeks away from completing the software change so it can be uploaded to Opportunity.