To me, the physics of the situation makes this all the more impressive.
Voyager has a 23 watt radio. That’s about 10x as much power as a cell phone’s radio, but it’s still small. Voyager is so far away it takes 22.5 hours for the signal to get to earth traveling at light speed. This is a radio beam, not a laser, but it’s extraordinarily tight beam for a radio, with the focus only 0.5 degrees wide, but that means it’s still 1000x wider than the earth when it arrives. It’s being received by some of the biggest antennas ever made, but they’re still only 70m wide, so each one only receives a tiny fraction of the power the power transmitted. So, they’re decoding a signal that’s 10^-18 watts.
So, not only are you debugging a system created half a century ago without being able to see or touch it, you’re doing it with a 2-day delay to see what your changes do, and using the most absurdly powerful radios just to send signals.
The computer side of things is also even more impressive than this makes it sound. A memory chip failed. On Earth, you’d probably try to figure that out by physically looking at the hardware, and then probing it with a multimeter or an oscilloscope or something. They couldn’t do that. They had to debug it by watching the program as it ran and as it tried to use this faulty memory chip and failed in interesting ways. They could interact with it, but only on a 2 day delay. They also had to know that any wrong move and the little control they had over it could fail and it would be fully dead.
So, a malfunctioning computer that you can only interact with at 40 bits per second, that takes 2 full days between every send and receive, that has flaky hardware and was designed more than 50 years ago.
And you explained all of that WITHOUT THE OBNOXIOUS GODDAMNS and FUCKIN SCIENCE AMIRITEs
Finally I can put some take into this. I’ve worked in memory testing for years and I’ll tell you that it’s actually pretty expected for a memory cell to fail after some time. So much so that what we typically do is build in redundancy into the memory cells. We add more memory cells than we might activate at any given time. When shit goes awry, we can reprogram the memory controller to remap the used memory cells so that the bad cells are mapped out and unused ones are mapped in. We don’t probe memory cells typically unless we’re doing some type of in depth failure analysis. usually we just run a series of algorithms that test each cell and identify which ones aren’t responding correctly, then map those out.
None of this is to diminish the engineering challenges that they faced, just to help give an appreciation for the technical mechanisms we’ve improved over the last few decades
pretty expected for a memory cell to fail after some time
50 years is plenty of time for the first memory chip to fail most systems would face total failure by multiple defects in half the time WITH physical maintenance.
Also remember it was built with tools from the 70s. Which is probably an advantage, given everything else is still going
Is there a Voyager 1, uh…emulator or something? Like something NASA would use to test the new programming on before hitting send?
I still cannot believe NASA managed to re-establish a connection with Voyager 1.
That scene from The Martian where JPL had a hardware copy of Pathfinder on Earth? That’s not apocryphal. NASA keeps a lot of engineering models around for a variety of purposes including this sort of hardware troubleshooting.
It’s a practice they started after Voyager. They shot that patch off into space based off of old documentation, blueprints, and internal memos.
Imagine scrolling back in the Slack chat 50 years to find that one thing someone said about how the chip bypass worked.
This is why slack is bullshit. And discord. We should all go back to email. It can be stored and archived and organized and get off my lawn.
IBM is 100, but the Internet didn’t exist in 1924, so we’ll say the clock starts in 1989. I’m pretty sure at least MS or IBM will be around in 15 years.
I realize the Voyager project may not be super well funded today (how is it funded, just general NASA funds now?), just wondering what they have hardware-wise (or ever had). Certainly the Voyager system had to have precursors (versions)?
Or do they have a simulator of it today - we’re talking about early 70’s hardware, should be fairly straightforward to replicate in software? Perhaps some independent geeks have done this for fun? (I’ve read of some old hardware such as 8088 being replicated in software because some geeks just like doing things like that).
I have no idea how NASA functions with old projects like this, and I’m surely not saying I have better ideas - they’ve probably thought of a million more ways to validate what they’re doing.
There is an fascinating documentary about the team that sends the commands to Voyager 1 and 2 called It’s Quieter in the Twilight
To add to the metal, the blueprints include the blueprints for the processor.
https://hackaday.com/2024/05/06/the-computers-of-voyager/
They don’t use a microprocessor like anything today would, but a pile of chips that provide things like logic gates and counters. A grown up version of https://gigatron.io/
That means “written in assembly” means “written in a bespoke assembly dialect that we maybe didn’t document very well, or the hardware it ran on, which was also bespoke”.
They also released the source code of the Apollo 11 guidance computer. So if you want to fly to the moon, here is one part of how to do it.
Interviewer: Tell me an interesting debugging story
Interviewee: …
Still faster than the average Windows update.
Man I can’t even get my stupid Azure deployment to work and that’s only in Germany.