When hundreds of millions of dollars are at stake, not to mention human lives on the line, every single line of code needs to be perfect to the last byte. Despite having (seemingly) the best programmers in the world and endless billable hours of QA, here are 8 famous software bugs that ruined enormous missions to space.
1. Mariner 1 – 1962
The Mariner 1 was launched from Cape Canaveral with high hopes on July 22, 1962. The actual launch went as expected, but little did the engineers know that a fatal bug was lurking in the software. An overbar, also called an overline, was left out of an equation when translated into punchcards, causing erratic behavior in the guidance computing. The satellite had to be destroyed just 293 seconds into the mission.
2. Viking I – 1982
Withe the goal of photomapping and analyzing the surface of Mars, the Viking landers predated the now famous rover like the Spirit, Opportunity, and Curiosity. The first lander, the Viking I arrived on July 20, 1976, and shortly thereafter landing the Viking II. Both were expected to traverse the surface for about a month and a half, but kept on going for years. Viking II’s batteries failed in 1980, but two years later Viking I showed some battery issues. When scientists tried to fix the recharging protocol, they accidentally overwrote the memory for high-gain antenna parameter, ruining its ability to communicate with Earth. NASA tried for months to reestablish contact, but gave up in March of 1983.
3. Phobos 1 – 1988
The Soviet Union aimed to examine Mars and its moons Demios and Phobos in July 1988. En route, a software upload left out one single character and caused it to run a steering test. The altitude thrusters shut down, the probe couldn’t properly align its solar arrays, and eventually the batteries drained. Contact was lost on September 2. Farewell Phobos.
4. Cluster – 1996
Four satellites met their untimely demise when their guidance software attempted to convert the larger-than-expected horizontal velocity from a 64-bit floating point number to a 16-bit signed integer, causing an overflow error. Of course, the team purposely omitted software checks that could have prevented this. The grand finale was that the rocket carrying the payload, the Ariane 5, veered off course 30 seconds after launch on June 4, 1996 and self destructed.
5. Milstar – 1999
The U.S. Air Force provides secure communication for the Department of Defense by means of five satellites named Milstar, launched between 1994 and 2003. A sixth satellite was the payload of the Titan IV rocket, but never reached proper orbit due to a software error in the control system. After ten days the Air Force shut it down, letting it float away.
6. Mars Climate Orbiter – 1999
In 1998, there was a large initiative to survey and report on the climate of Mars. The two main parts were the Mars Climate Orbiter and the Mars Polar Lander. The orbiter was to serve as a communication relay for the lander, but never made it into orbit due to a software bug in the land system. During its orbit attempt on September 23, 1999, it disintegrated because of its lower than expected altitude. It was later discovered that the ground based technology was sending instructions using Imperial measurements (pound-force), while the orbiter was expecting metric (Newtons).
7. Mars Polar Lander – 1999
The other half of the Mars Surveyor 1998 program failed miserably as well. It was launched on January 3, 1999 and crashed on December 3 later that year. It was programmed to shut off the decent thrusters once one of the legs touched the surface of Mars. What happened was a slight vibration in the legs incorrectly interpreted a landing and the engine shut down 40 meters above the planet surface and fatally crashed.
8. Mars Global Surveyors – 2006
On November 7, 1996, a one-year mission was launched to study the surface of Mars. The satellite was the Mars Global Surveyor. It was working just fine for almost ten years until a glitch in the software caused it to come to a screeching halt. NASA lost contact in June 2006 because of a software update triggering data to be written to the wrong memory address. In early November, the bug caused the solar panels to get stuck and overheated the battery. It died a horrible death days later.