
In 1962, NASA lost the Mariner 1 rocket, and it all came down to a missing hyphen in the guidance code. One tiny transcription mistake led to a $180 million explosion.
I wrote a deep dive on this (it’s short and accessible)https://substack.com/home/post/p-161012083?source=queue
Would love feedback!
11 Comments
They also lost the $327 million Mars Climate Orbiter because one team used metric and one used US Customary measurements…
[https://en.wikipedia.org/wiki/Mars_Climate_Orbiter](https://en.wikipedia.org/wiki/Mars_Climate_Orbiter)
It’s a deep dive but it’s also short and accessible…? Interesting.
A bar over a variable is not a hyphen. As you say in your article it denotes an arithmetic mean. A hyphen goes between characters. I have never seen a 1962 era programming language that allows you to literally put a bar over a character in the code editor. Rather the programmer has to write code for the average. The “hyphen” would never appear in the code itself.
This NASA failure is not about a simple typo (a “missing hyphen”), it is about flawed coding. The code was never verified to make sure the programmer actually programmed the math he/she was given. It was most likely not even a coding language, it was probably assembly code.
The Hubble space telescope was also broken at launch.
The mirror was made by Europe, who work in metric rather than US imperial measurements.
A very tiny error crept in, because when each team converted cm to inches, they each rounded the conversion to a different number of significant figures.
A new space shuttle mission had to be launched to install new cameras on the telescope, that would correct for the mirror’s error.
NASA did not lose $180M. They lost $18M. You don’t get to convert 1962 dollars to today’s and call it a fact.
And the actual cause was a bit more complex.
*The failure was apparently caused by a combination of two factors. Improper operation of the Atlas airborne beacon equipment resulted in a loss of the rate signal from the vehicle for a prolonged period. The airborne beacon used for obtaining rate data was inoperative for four periods ranging from 1.5 to 61 seconds in duration. Additionally, the Mariner 1 Post Flight Review Board determined that the omission of a superscript overbar when translating the handwritten equations into the coded computer instructions allowed transmission of incorrect guidance signals (basically instantaneous values instead of smoothed values) to the spacecraft when the airborne beacon was inoperative. During the periods the airborne beacon was inoperative the computer used the sweep frequency of the ground receiver and combined these data with the incorrect instantaneous guidance computation. This caused the rocket to swing automatically into a series of unnecessary course corrections with erroneous steering commands which finally threw the spacecraft off course.*
This is from the mishap report. I just pulled it out of an internal database (it is not CUI) but I can’t link the source.
The software issue alone would not have caused the rocket deviation.
This was a JPL mission. This mishap is not even close to how bad they would screw up later.
And please, change the dollar figure to be accurate. edit (and change would’ve to would have, the contraction makes it sound less professional, sorry that’s the grammar police inside me, but you asked for feedback)
While the news reported it as a hyphen, it was a missing overbar in the equation, which was then translated to punch card incorrectly to program the flight correction computer.
I’m sorry, but it was an overbar in an equation that was omitted. Programmer wrote a routine correctly (there was also another mishap, but this one wasn’t a programmer error).Here’s an excerpt from NASA’s official account regarding the Mariner 1 incident:
> “Failure analysis revealed that two problems doomed Mariner 1. First, a known issue occurred when the Atlas booster lost lock with the ground antenna — something it was normally supposed to recover from. But the real kicker? A software error caused by the omission of an overbar in a guidance equation (R instead of R̅). That small mistake meant the system couldn’t respond as intended.
>And no — despite the myth, it wasn’t a hyphen. Just a missing overbar.”
— NASA
If your interested NASA also lost a Martian lander due to Imperial/SI unit mix up.
This is why documenting your units in your code is important. I train new programmers to write variables and methods with the units in the name like `int altitudeMeters`.
The government? “Losing” money? That’s preposterous!
Don’t forget the Mars climate orbiter they lost because some were using metric and some were not, so it slammed into the planet.
There is the hyphen, then the en-dash and the em-dash. MS Word automatically changes them around and that means havoc in Oracle.