Wednesday, August 08, 2012

Inside NASA’s Curiosity: It’s an Apple Airport Extreme… with wheels

Late last night, Mars Science Laboratory (MSL) Curiosity successfully navigated its way through Seven Minutes of Terror and touched down on the surface of the Red Planet, heralding a new age of extraterrestrial exploration that will eventually result in the human colonization of Mars.

At the heart of Curiosity there is, of course, a computer. In this case the Mars rover is powered by a RAD750, a single-board computer (motherboard, RAM, ROM, and CPU) produced by BAE. The RAD750 has been on the market for more than 10 years, and it’s currently one of the most popular on-board computers for spacecraft. In Curiosity’s case, the CPU is a PowerPC 750 (PowerPC G3 in Mac nomenclature) clocked at around 200MHz — which might seem slow, but it’s still hundreds of times faster than, say, the Apollo Guidance Computer used in the first Moon landings. Also on the motherboard are 256MB of DRAM, and 2GB of flash storage — which will be used to store video and scientific data before transmission to Earth.

BAE RAD750 single-board, radiation-hardened computerThe RAD750 can withstand temperatures of between -55 and 70C, and radiation levels up to 1000 gray. Safely ensconced within Curiosity, the temperature and radiation should remain below these levels — but for the sake of redundancy, there’s a second RAD750 that automatically takes over if the first one fails.

On the software side of things, NASA again stuck to tried-and-tested solutions, opting for the 27-year-old VxWorks operating system. VxWorks, developed by Wind River Systems (which was acquired by Intel), is a real-time operating system used in a huge number of embedded systems. The previous Mars rovers (Sojourner, Spirit, Opportunity), Mars Reconnaissance Orbiter, and the SpaceX Dragon spacecraft all use VxWorks. VxWorks also powers BMW iDrive, the Apache Longbow helicopter, and the Apple Airport Extreme and Linksys WRT54G routers (really).

I said that VxWorks is 27 years old, but that’s a bit unfair: The initial release was in 1985 (around the same time as MS-DOS 3.0), but it has been in constant development since then, reaching v6.9 last year. Why does Curiosity use VxWorks? It’s reliable, has a mature development toolchain, and presumably its low-level scheduling and interrupt systems are ideal for handling real-time tasks like EDL (entry, descent, and landing; aka, seven minutes of terror).