Click here for the original content

In 1962, NASA launched the Mariner 2 probe past Venus, marking the first successful planetary flyby for the agency. It was done with an incredibly primitive computer that hardly fits the bill of anything we’d recognize today.

Each instrument worked on a tape loop, and the computer on board would run a sequence of commands based on an internal clock. It wasn’t very sophisticated or easy to control. All input came from ground control, which could merely activate it to run certain pre-programmed sequences. (In fact, the lack of control led to the Mariner 1 craft’s destruction when it failed to clock correctly.)

Later Mariner missions, which explored Mercury, Venus and Mars, were equipped with a very, very limited computer that was paired with the sequencer clocks. For instance, Mariner 8 could store data and run slightly more complex commands by kicking on sequencers in a cycle. Still, it only had about 100 commands it could understand based on a 512-word “vocabulary.”

Chris Jones, a chief engineer at NASA’s Jet Propulsion Laboratory, told Motherboard it was similar to a diagnostic check. While making flight adjustments, for instance, it would check the spacecraft’s orientation and position against what the sequencers were programmed to do, “and if they don’t match abort, the burn and try again.”

“It’s brand new science”

The 1970s brought immense change to NASA. In 1971, the central processing unit became commercially available. It allowed something that computers had struggled with before: handling multiple commands at once. And it let NASA enter a golden era of exploration, one that continues today with the Voyager probes. These probes, launched in 1977, visited the outer solar system and are now on the fastest trajectories of any craft as they head into interstellar space. They also have some of the first CPUs ever used by NASA, enabling the agency to move beyond the sequencer.

It enables the agency to re-program the craft as needed using primitive assembly languages like Cobol, Fortran, and Algol. The ability to reprogram the craft helped it move beyond the outer solar system and toward measuring particles in interstellar space.

“It’s brand new science,” Jone said. “It’s never been seen before, so the Voyager team wants to extend that as long as they can.”

In the 1970s, NASA launched four crafts that would head to the outer planets, and eventually leave the solar system. Pioneers 10 and 11 left Earth in 1972, and Voyagers 1 and 2 in 1977. The five-year gap between Pioneer and Voyager, while small, made all the difference in the world as computing advanced at a fast clip.

The Pioneer-10 spacecraft in 1972. Image: NASA Ames/Wikimedia Commons

The Pioneer crafts still worked with the sequencer-and-computer architecture, meaning they could only run the commands on board set by NASA Ames on the ground. The computer itself wasn’t rewriteable and still mostly steered the craft toward certain commands, like analyzing for cosmic rays and micro-meteors or tracking solar winds, along with returning the first close images of Jupiter and Saturn.

The Voyager craft, on the other hand, were the first fly-by missions to have computers on them as we think of them today—albeit one only slightly less primitive than a Commodore 64. They could handle multiple commands, turn certain instruments on and off, and be fully reprogrammed. And, indeed, the need for programming and reprogramming the craft’s onboard computers (even with their limited capabilities compared to today’s machines) has been persistent in the 40 years they’ve been in space, flying out to distant stars.

The twin Voyager probes actually had three computers each, which are still functioning today—one for flight control, one for positioning of the craft, and another for the science payload, which is what transmits information on interstellar particles back to Earth. We’ll be mostly concentrating on the science computer, called the Computer Command System, here.

The ability to write and rewrite code on the ground and reprogram the craft proved essential to Voyager’s success

Jones was brought into the Voyager program at the beginning in 1973, when both Pioneer probes were already en route to Jupiter and Saturn. Jones previously worked on the later Mariner missions and understood their basic architecture, which was similar to Voyager’s.

At that time, NASA was thinking even bigger. It wanted to do something no other agency had done: land an object on Mars. (The Soviets tried with Mars 2 and 3, both of which got there but neither of which were successful.) The Viking program was vital in our understanding of the red planet—and it also boasted the first CPU-based computer on-board any NASA probe which helped it perform some of the first hunts for microbial life on another planet.

Read More: How Viking 1 Won the Martian Space Race

That system was put inside the hardware of the Mariner probe architecture, creating a machine that could understand 4,096 words instead of just a few, one that was fully rewriteable, and offered control of all of the instruments on board on an ongoing basis, meaning that for some problems, there were workarounds in the case of instrument errors. (And there were plenty.)

When the Voyagers were initially launched in 1977, their design was clear: it was a four-year mission to get to Saturn. Anything after that would need to be greenlit by the powers-that-be at NASA. Jones and his team helped position Voyager 2 toward Uranus after its 1981 Saturn encounter. The ability to write and rewrite code on the ground and reprogram the craft proved essential to its success. This can be especially challenging when trying to reach a bus-sized craft that’s so far away it takes 17 hours for communication to reach it, even though the signals are blazing toward it at the speed of light.

“After we’d flown the two missions to Saturn, we were pretty good at adding new data modes and working around problems,” Jones said. “We became more conscious of what it could and couldn’t do, and we took advantage of that in the Uranus and Neptune flybys.”

At least twice, the Voyager team sent commands to the crafts that fixed errors. In 1978, Voyager 1 had to be reprogrammed to free up three instruments stuck in place by a combination of hardware and stubborn software. The mission was saved from failure by the computer inside. The lessons on fixing the scan platform helped recover Voyager 2 after a camera became misaligned in 1981, which could have jeopardized the science of the craft during its Uranus encounter (and thus, its Neptune encounter too).

Artist concept of Voyager in flight. Image: NASA/JPL/Wikimedia Commons

40 years later this September, and still equipped with those computers armed with (very) primitive microprocessors, the Voyager crafts are headed in separate directions out of the solar system. Both are in interstellar space, beyond the energy fields (but not the gravity) of the Sun. Both, unlike the Pioneer missions, are still fully in contact with NASA and performing essential science. Pioneer 10 lost contact with Earth in 2003 and Pioneer 11 in 1995, both crafts having expended their available energy beyond the ability to communicate back to Earth — in effect, because they weren’t reprogrammable.

That requires a team of software engineers to continually reprogram the craft as it moves through unknown territory.

There aren’t that many people left from the early days of Voyager, and the languages used to program it aren’t widely taught today. The assembly languages it uses are now only found in remote areas of system architecture in computing, rather than in day-to-day programming.

This means that the Voyager team has to engage in retro-computing in order to get the craft to work continually and return science through at least the next half-decade, when the radiothermal gradiant power source may be too weak to keep the instruments online. They also have to troubleshoot the quirks that come with operating a 40-year-old computer that runs at 4 megahertz and is powered by a rapidly decaying radioactive “battery.”

“They’ve learned some of the shortcuts and tricks that the original programmers used,” Jones said. “It can turn a good day into a bad day if you stumble across one you didn’t know.”

The computing hardware used on the craft has long been supplanted by spaceships that use solid state memory instead of magnetic tape, and process information at gigahertz rather than low megahertz speeds. The Voyager crafts may be old, primitive, and at time clunky to work with, but above it all they endure.

And it’s all thanks to a computer slower than some of the early desktop personal computers.

Subscribe to Science Solved It , Motherboard’s new show about the greatest mysteries that were solved by science.