Mars Rover | SSDs | Storage Media | Ontrack blog

Thursday, April 18, 2019 by Mikey Anderson

Data in Outer Space: How to Store Data on Mars

Storing data in outer space is no walk in the park! There are many differences between using computers on Earth and operating them on another planet, or just space in general. Luckily, a few six-wheeled friends have been helping us understand how it all works. So buckle up and join us as we find out how to store data on Mars, by taking a journey into the life of the rovers currently on the Martian surface.

Mars rover types

Let’s start with a bit of history. So far, there have been four successful NASA Mars rover missions. As you can see in this photo, the smallest rover at the front is Sojourner (1997), the mid-sized rover on the left is the Spirit/Opportunity design (2004), and the largest rover on the right is Curiosity (2011).

Opportunity made headlines recently when NASA finally lost contact with the rover after 15 years - RIP! Its sister rover, Spirit, was stranded in the sand in March 2010.

Curiosity is the last surviving rover on Mars and is about the size of a small car. It arrived in August 2012 and as of 2019 is still operational!

Choosing the right storage media

Any computer hardware that is used in space must be robust and flight tolerant, in order to survive the ascent from Earth and travel through the vacuum of space. For the Mars rovers, it also needs to survive the descent, landing and daily operations once it gets to Mars.

 

For example, Hard Disk Drives (HDDs) do not work in the vacuum of space, as they require air to operate correctly (more on that in a future post). It’s possible to use pressurized, sealed containers in order to run HDDs for systems and experiments in space (like on the International Space Station or the Space Shuttles), however, this adds complexity and a higher risk of failure.

Reel-to-reel magnetic tape systems were also used on the Space Shuttles as their data storage devices for performing various computer functions. In fact, many of the early interplanetary missions used magnetic tape media in order to store data, such as the Galileo (1989) and Magellan (1989) probes, which were sent to Jupiter and Venus respectively. The problem with the tape, though, is that it takes up a lot of space; nearly 2km of magnetic tape was used on these early spacecraft to achieve a data storage capacity of just 2GB!

So, what about Solid State Drives (SSDs)? Well, there have actually been many space missions that have used SSDs before, including the Mars Global Surveyor (1996), Cassini (1997) and New Horizons (2006). SSDs are compact, robust in design and don’t have the downsides of HDDs and tape media. Plus they have better overall performance, which means SSDs stand out as the most sensible option for data storage in modern interplanetary spacecraft.

Storing data on Mars

So SSDs appear to be the storage of choice, but that is just the start! One of the main challenges of storing data on Mars is the harsh environmental conditions, both on the surface and when traveling through space to get there. Luckily, there’s no flowing water on Mars, so there’s no chance of the rovers suffering from water damage! However, temperature control is a very important area to consider.

Most modern data storage devices will have a set of optimal conditions that they are designed to be operated within. For example, your average SSD is designed to operate normally within a temperature range of between -40⁰C to +85⁰C.

This is obviously fine for your PC or laptop here on Earth, but what about on Mars? Well, the average temperature on Mars is around -63⁰C, fluctuating from about -140⁰C at night to +20⁰C during the day depending on the location, which is a huge temperature difference compared to what we experience on Earth! The journey to get to Mars is also a problem, as temperatures in space can vary from as low as -273⁰C in the coldest regions and up to 120⁰C when a spacecraft is sun side.

In order to keep everything safe on board the rovers, NASA uses a dedicated thermal control system, along with an assortment of radiators and heaters, to regulate the temperature of the rover’s internals, both while traveling to Mars and when it gets there.

Remember to apply sunscreen

However, aside from temperature, radiation is the other main danger that any Mars rover or spacecraft must overcome. In addition to using radiation-hardened CPUs, this also extends to the data storage devices themselves.

NAND flash SSDs used on the Martian rovers are radiation-tolerant, but they are not completely immune, therefore it is very important to ensure that different techniques are used to protect the SSDs from harm. Examples of this include proper shielding of the rover body where the electronics are housed, plus a sufficient amount of redundancy and error detection used with the flash memory.

In fact, the Curiosity rover’s memory allocator has its own diagnostics function, which generates a map of all memory usage and keeps track of any issues. If there are any memory leaks due to degradation, the team at NASA can address the problem. More on that later!

Computing systems comparison

Down here on Earth, we have the luxury of computer systems with many Terabytes of hard drive space and RAM. However, the systems for the Mars rovers only need to be powerful enough to carry out the commands specific to their missions, therefore they simply do not need massive amounts of storage space, nor computing power.

Given that the design process for Spirit and Opportunity rovers started as early as the year 2000, the data storage used was also limited to the technology available at the time. Let’s get technical for a moment and show a quick comparison of the computing power and data storage technologies used on NASA’s fleet of Mars rovers since 1997:

 

RoverCPURAMEEPROMFlash memory
Sojourner - 19972 MHz Intel 80C85512KBNone176KB
Spirit/Opportunity - 2004

 

(Mars Exploration Rover)

20 MHz RAD6000128MB3MB256MB
Curiosity - 2011

 

(Mars Science Laboratory)

200 Mhz RAD 750256MB256KB2GB

 

Fun fact: the Curiosity rover uses the radiation-hardened RAD750 CPU chip, which cost around $200,000 each! These chips are part of the PowerPC 750 family and based on the same chips that were used in the Apple PowerBook G3, iBook and several other Macs from the mid-late ’90s.

In addition to its main computer storage, Curiosity also has a separate 8GB flash storage device for each of its two front-facing camera masts. That’s plenty of storage space for taking lots of photos and videos of the Martian landscape!

Always have a backup

Both the Curiosity and Spirit/Opportunity rovers used RAM with error detection and correction, however, Curiosity is different from the other Martian rovers, as it is the only one that has two identical computers on board. Only one computer is used to operate the rover at any given time, which leaves the second, redundant computer available as a backup in case anything should go wrong.

That’s just as well, as when you’re 140 million miles away (on average) it’s not exactly feasible to pop over to Mars with your toolbox, and Ontrack doesn’t have a data recovery lab on Mars… at least not at the time of writing!

Once the rover has left Earth, the only way of fixing problems is remotely via satellite communication, which means any physical issues with the rover are usually impossible to overcome. Engineers must, therefore, prepare for every eventuality in advance and rely simply on logical fixes to bypass any issues.

Dealing with flash memory failure

Like any type of data storage device, it’s going to fail at some point in time (and space!). For example, SSDs only have a finite number of times that they can be written to before they start to degrade. Since flash memory is used throughout the Mars rovers’ computer systems, it really is only a matter of time before their memory degrades completely, rendering the rover completely inoperable.

In 2011, Opportunity first started experiencing errors when writing to its flash memory, with the rover suffering from ‘amnesia’ events that caused data to go missing. NASA eventually managed to pinpoint the issue after it kept occurring in 2014; one of the flash memory banks had started to degrade, which meant that sometimes Opportunity could not access its non-volatile flash memory to store information. When this happened, the rover would automatically save data to the volatile RAM instead, which subsequently got erased once the rover powered down each night.

Multiple failed attempts to access the flash memory caused Opportunity to keep rebooting, which disrupted whole sequences of commands and instructions sent up by the team on Earth, making the rover very challenging to operate. Here’s what NASA had to say about the issue in 2014:

“With the continuing Flash memory problems on the rover, the project has chosen to operate the rover without using the non-volatile Flash storage system and instead rely on the volatile random access memory (RAM) for the temporary storage of telemetry, or rover data. Longer term, the project will implement a strategy to mask off the troubled sector of Flash and resume using the remainder of the Flash file system in normal operations.”

By remotely reformatting and reprogramming the flash memory, the team was indeed able to bypass the faulty memory bank to get the flash data storage system back up and running again, albeit with less capacity than before. Success!

More memory issues

Alas, this wouldn’t be the last time a Mars rover experienced a memory-related fault. More recently, the Curiosity rover also experienced issues with its flash memory that needed addressing. However, as we mentioned earlier, Curiosity was fitted with two identical computers, so it can continue operating in case of any issues.

This foresight proved invaluable in 2013 when the team at NASA were forced to switch to Curiosity’s redundant ‘backup’ computer, as the main computer was experiencing a fault which meant the rover could not be commanded properly and the batteries were left draining. NASA addressed the problem in a similar way to how it fixed Opportunity; the bad section of memory was identified and quarantined so that the computer could be used properly again. This does again mean that some storage capacity was lost in the process.

Then, in September 2018 a similar fault on the other, previously healthy computer meant that science and engineering data could not be stored properly. As a temporary solution, the rover was switched back again to the same computer that had issues 5 years earlier, and in the meantime, engineers are trying to diagnose what went wrong and how to fix it.

Fun fact: when data from Curiosity is downlinked back to Earth for analysis, a dump of the flash memory map is included. This is so if any issues do arise with the memory, a ‘paper trail’ has been maintained throughout. This traceability allows the root cause of memory-based faults to be found and investigated more easily by engineers.

Unfortunately, it’s only a matter of time before the rover’s flash storage will eventually fail completely. But until then, Curiosity continues to soldier on as the only operational rover currently left standing on the Martian surface, sending back awesome photos like this one

Bonus section: Operating system

For the technically-minded among us; another interesting aspect of Mars rover design is the computer operating system (OS). When you’re building a Mars rover, it’s not enough to just use a Windows or Mac OS, due to the unique requirements of spacecraft operations. Instead, most of the Mars rovers use a proprietary type of embedded, real-time operating system (RTOS) called VxWorks, which is primarily used within space and defense/military applications.

An RTOS is specifically designed to prioritize performance and reliability. In simple terms, it works by performing a task in less time than it takes for another task to be started (of the same type). VxWorks is also a ‘hard’ RTOS, which means it is suitable for use with time-critical applications, where it is compulsory for a computing task to always be completed on time and without fail.

As an example, if the Mars rover was instructed to drive in a certain direction, then change course after a certain period of time (or distance), it is imperative that each action or task is completed by the computer on time, to prevent the rover from driving off its pre-defined course and possibly encountering unsafe terrain that could endanger the spacecraft.

By way of contrast, your average Windows or Mac computer or mobile device will have what is called a ‘soft’ RTOS, whereby any task you initiate by clicking/tapping will get processed, but the time taken is not a compulsory factor. As an example, when you open a document or an app, it’s not essential that it must be opened within a set time frame, and the OS on your phone or computer might allow it to take a little longer to load in order to prioritize something else.

You probably wouldn’t notice a selfie-taking a fraction of a second longer to load on your phone, but a processing delay on a rover could add up to a bigger issue and put the entire mission in jeopardy! In simple terms, by using VxWorks, Mars rovers such as Curiosity are able to run multiple tasks at once with shared memory allocation, with the confidence that all of the tasks will be completed when they are supposed to.

Mars rovers of the future

The Mars 2020 rover is the next in line for launch, and it is expected to have the same computing hardware and data storage capacity as Curiosity. Massive amounts of data storage and computing power simply aren’t required for the purposes of the current Mars missions. Instead, NASA is sticking to its tried and tested formula that it has used on Curiosity, ultimately favoring reliability over everything else.

A neat bit of information to leave you with; the Mars 2020 rover will be the first to be fitted with microphones, which will allow it to record the sounds of the Martian environment. The rover will store those audio files in its flash memory and transmit the data back to Earth, so we can hear what it sounds like to be standing on the surface of Mars. If David Bowie was still around, you can bet you’d hear a sample on one of his songs!

That concludes our analysis of the data storage technologies on the Martian rovers, and how to successfully store data on Mars. We hope you’ve gained a better understanding of how these technologies work and how they differ from our usual computing devices here on Earth. It might be some time before humans eventually set foot on Mars, but rovers like Curiosity are already expanding our knowledge about what is possible when it comes to operating technology on another planet and the endless challenges involved.

If you’d like to find out more about the Mars rovers, we’d recommend the following resources:

NASA: Mars Curiosity Overview

CppCon 2014: C++ on Mars: Incorporating C++ into Mars Rover Flight Software

Chaos Computer Club 2018: 35C3 - The Mars Rover On-board Computer

Scott Manley: NASA Stops Trying to Wake Mars Opportunity After It Remains Silent