~learn.

NASA lost a Mars orbiter because one file used the wrong units.

One program wrote pound-seconds. The next one read newton-seconds. Nine months later the spacecraft arrived at Mars about 170 km too low.

NASA (Jet Propulsion Laboratory and Lockheed Martin Astronautics) · 1998–1999 · 2 min read · a true story, sources below

Mars Climate Orbiter launched on 11 December 1998. It was meant to be the first weather satellite at another planet. NASA's Jet Propulsion Laboratory handled navigation; the contractor Lockheed Martin Astronautics operated the spacecraft.

On the way, it regularly fired small thrusters to unload momentum that built up in its spinning reaction wheels. Each firing nudged its path a little. On the ground, a program called SM_FORCES ("small forces") computed the size of each nudge and wrote it to a file. The navigation team's software read that file to work out where the spacecraft really was.

The interface specification, the written contract between the two programs, said the numbers must be in newton-seconds, the metric unit. The ground program wrote them in pound-seconds. The navigation software read them as metric, so it underestimated every nudge by a factor of 4.45, because one pound of force is 4.45 newtons. The spacecraft's own software used metric correctly.

Each error was tiny. But the firings happened 10 to 14 times more often than expected, because the spacecraft's solar array sat to one side and sunlight kept twisting it. Over the 9-month cruise, the small errors added up. People at the working level noticed that different navigation methods disagreed, but the discrepancies were reported only informally and never resolved. The investigators' first two recommendations for the next mission were to check units everywhere and audit all data passed between JPL and Lockheed Martin.

On 23 September 1999, the spacecraft fired its engine to enter orbit and passed behind Mars, 49 seconds earlier than predicted. It was never heard from again. The planned closest approach had been 226 km; the investigators later estimated it came in at about 57 km, below the 80 km minimum it could survive.

The numbers
  • 10–14x more thruster firings than expected
  • About 170 km lower than planned at arrival
  • Planned 226 km closest approach; estimated actual about 57 km

Why it matters: Interfaces between teams are where systems break. Put units in the contract and the data, check them automatically, and chase disagreements instead of shrugging.

Sources