Hero Engineers
From the “Tales of Great Software Engineering” department comes an article in last week’s New Yorker, entitled “What Galileo Saw.” In it, Michael Benson descibes the NASA Jet Propulsion Laboratory’s struggle to salvage the Jupiter-bound Galileo spacecraft after a hardware failure (namely, the refusal of its high-gain antenna to open on command) rendered it unable to transmit data at a rate greater than 10k a second. Their solution, which was of great interest to me in light of my current gig, involved a major software update—from 400 million miles away!
Unfortunately, this solution was not an easy one, since it involved getting advanced data-compression algorithms to run on some pretty outdated microprocessors (specifically, the same kind that used to power Pong):
Instead of attempting to change the spacecraft’s hardware, the Deep Space Network rescue squad began thinking about how it could improve Galileo’s information-processing capabilities. There was one possibility: Galileo’s fundamental software could be rewritten. To accomplish this feat, the onboard computer had to be powerful enough to handle the more advanced algorithms employed in the updated code. “The computer system on Galileo was ancient,” Deutsch said. “So we looked into what kind of microprocessors were on board, and how much memory there was. And there was good news and bad news.”
NASA doesn’t get a lot of respect these days. People tend only to pay attention to the space program when there is a disaster, and then only long enough to castigate the agency for its ineptitude. Everyone knows about the Columbia accident, but few people stop to consider the stunning discoveries made by Galileo (the presence of liquid water on Europa for starters)—or the unsung but brilliant team of coders who made it possible. JPL, I salute you!