Question

Voyager 1 reached interstellar space in August 2012 and is the most distant human-made object in existence. Launched just shortly after its twin spacecraft, Voyager 2, in 1977, Voyager 1 explored the Jovian and Saturnian systems discovering new moons, active volcanoes and a wealth of data about the outer solar system.

Voyager 1 and 2 were designed to take advantage of a rare planetary alignment that occurs only once in 176 years and remain the most well traveled spacecraft in history. Both spacecraft carry a sort of time capsule called the Golden Record, a 12-inch gold-plated copper disk containing sounds and images selected to portray the story of our world to extraterrestrials.

I presume that vast majority of people that were building software for this missions are now retired, but in last 35 years programming, programming languages advanced so far.

So, it launched in 1977. After 35 years, Voyager reached interstellar space. How many lines of code are there and in what language is it written? What was development process behind this missions (that are still active)?.

So, what was the greater plan with code in this mission, and in which language is code base written?

Was it helpful?

Solution

(Edit: 12/7/2017, a year later, I found an authoritative answer) In an article on software development for NASA space missions. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf On page 31, the following table is in the graph showing a decent fit to a logarithmic increase in lines of code : (So, my 3K estimate was right on the money.)

  • 1969 Mariner-6 (30)
  • 1975 Viking (5K)
  • 1977 Voyager (3K)
  • 1989 Galileo (8K)
  • 1990 Cassini (120K)
  • 1997 Pathfinder (175K)
  • 1999 DS1 (349K)
  • 2003 SIRTF/Spitzer (554K)
  • 2004 MER (555K)
  • 2005 MRO (545K)

This was originally a question in search of a final answer, so we made the following estimate:

According to the below post, there is code available for Apollo 11 and various other open sourced NASA things, but the probes source seems to be disappointingly missing:

https://voat.co/v/programming/comments/306663

I've googled and not found anything more conclusive yet beyond the facts that it's been re-written in F77 for the most part and potentially could send us data on interstellar space all the way to 2024 if everything goes perfectly.

This is tantalizingly close: http://history.nasa.gov/computers/Ch6-2.html

Only the "lower portion" of the 4K banks of memory that is used by the flight data system is for code. This is probably the most complex of the three computers on Voyager so we can get a upper limit from here. So, 2k bytes of memory for instructions with a 1 byte instruction size would be a roughly 2000 assembly instructions. Or, maybe 1000 lines of Fortran Code. Multiply by three for re-programming), and you get a rough upper limit of 3000 Lines of assembly in the original. Not scientific or rigorous, but the best I can figure out.

And as late breaking news, Allan Lasser made a Freedom of Information Act for the source code to the control and analysis software of the Voyager Mission revealing that the code is (C) Caltech, and beyond the reach of any FOIA request, a fact that could direct further efforts to research that source code.

And through a related FOIA request by Allan Lasser we learn that the JPL/Caltech contract for Voyager are also beyond FOIAs power as the contract is deemed by NASA to have details that would tend to compromise IT security.

OTHER TIPS

This article in Wired makes it clear that the code was written in Fortran 5 and later ported to Fortran 77 and some elements are now in a version of C:

The spacecrafts’ original control and analysis software was written in Fortran 5 (later ported to Fortran 77). Some of the software is still in Fortran, though other pieces have now been ported to the somewhat more modern C.

Licensed under: CC-BY-SA with attribution
scroll top