A patch was sent to Voyager 2 yesterday

@vmagnin - Thank you for the useful information you and others have scattered throughout this thread. I began attempting to debunk the Voyager-Fortran 5 claim in early February. I belatedly discovered this thread and found you were doing similar research in parallel with me. (Obviously not in parallel as you did yours a few months before me!) Some of the resources here were ones I had already found and a good number were new to me. (As well as @ivanpribec’s separate thread, “Data General Fortran 5 is a Real Pig”!)

Anyway, the results of my research …

The Voyager spacecraft were NOT programmed in Fortran 5 (which ran on Data General minicomputers). The source of this claim, the 2013 Wired “Interstellar 8-Track” article, was actually referring to ground system “control and analysis” software. (The article’s “control and analysis” qualifier is almost always dropped when the claim is repeated elsewhere on the web.)

The article was based on an interview with Suzanne Dodd, a Voyager sequence engineer in the 1980s who returned to Voyager in 2010 as its program manager. A sequence is, simply speaking, a sequence of operations to be performed on a spacecraft during a time interval. For example, point the camera at Jupiter’s Red Spot, turn on the 8-track tape recorder, turn on the camera, turn off the camera, and stop the 8-track.

Sequences were developed in the 1970s and 1980s using tools written in UNIVAC FORTRAN V running on UNIVAC 1100-series mainframes at JPL. My guess is that the interview with Dodd was by phone and she said “Fortran Five” for FORTRAN V. The evolution to Fortran 77 and C was typical for ground systems, as the mainframes were replaced by minicomputers and then PCs or Unix workstations.

The flight software running on the Voyagers’ onboard computers was and is written in assembly language. See this 2016 paper also referenced by @vmagnin elsewhere in this thread, “Voyager Interstellar Mission” (PDF: https://arc.aiaa.org/doi/pdf/10.2514/6.2016-2415), p. 6, by Sun Kang Matsumoto, a long-time and current Voyager flight software engineer. There would have been 2 or 3 assembly languages for the three sets of computers. (2 or 3 because the AACS CPU was a modified CCS CPU and I don’t know if the modifications affected the instruction set.)

Matsumoto’s paper, p. 4, also discusses the original use of Univac mainframes for the ground software. Other sources identify the mainframes as the 1108. Univac’s FORTRAN V became available in the mid-1960s, so it would have been the standard Univac compiler for Voyager in the 1970s.

More sources and a more detailed examination of the Fortran 5 claim can found on my web page: http://www.geonius.com/writing/other/voyager.html


In my research, I did encounter something that might be of interest to the Fortran Discourse group. For the two-years-earlier Mars Viking mission, Martin Marietta Corporation (MMC) had the contract for developing the Viking Lander ground system software. MMC wrote and tested the software on a 60-bit CDC 6500 mainframe at their Denver, Colorado facility. An automatic conversion process then converted the software for compilation and running on the target 32-bit IBM 360 and 36-bit UNIVAC 1108 mainframes at JPL’s mission control center in Pasadena, California. This was done for good reasons (insufficient computing power at JPL) and with a lot of planning. Ultimately it was successful, although the IBM computers were a major headache. See “Clash of Viking Mainframes” on my web page under “Miscellaneous Information”. (I’m a new user and limited to 2 links per comment!)

5 Likes