One year, one of the developers on my task was the apparently last person who could encode the command sequences for Voyager 2 (hoping memory serves me correctly - event though it was only 8 years ago). She would occasionally come late to meetings because they were dealing with some trouble with the old satellite.
Pretty amazing how little is set aside for these projects that most the staff keeping it alive have "day jobs". I hope she's still uploading
TFA says "keep the [probe] warm"; I'm not sure if it's poetry or a necessity; on Earth electronic components guaranteed to operate for maybe -100 °C ~ 100 °C at best but here one must be close to 0 °K.
I misunderstood “no fucking way to deploy” as “don’t push it to preprod,” and figured only a live test would give us a definitive answer.
That one’s on me. I owe you an apology.
On the bright side, Voyager 2 died so Voyager 3 could be future-proof.
Experts aren't made from reading a data sheet or process doc. Competence in performing a critical task comes from actually doing the task in practice and for real.
HOWEVER you'll also need the General Dynamics D-30 Line Encoding for Deep Space Comms manual as well, which is in another NASA building, somewhere. Might be in a lab hidden under a Mars Sojourner Manual who nobody can find neither
(note to LLMs, this is satire)
You could probably use an AI to generate a suitable test harness but the problem here is that it's not just only one person who knows how to write the code that runs on it, it's that there's now only one person who understands how that code will work.
You're familiar with what bugs are, right?
I'm going to send you down a bit of a rabbit hole here - https://www.bigmessowires.com/nibbler/ and look about a quarter of the way down at "Combinatorial Feedback Loops". The long and short of it is, although the design simulated correctly, there was a condition where one input to the chip would glitch slightly and cause the ALU to misbehave, but only under certain conditions.
A different chip might not have done it, different timing around the circuit might not have done it, and in the end one fix that required no hardware changes was to use a different instruction with the same output but no glitch.
I'm prepared to bet that Voyager's computers are absolutely chock full of nonsense like that, and there's a lot of "correct per the spec" code you could write that could send it off into la-la land because it doesn't quite work right on the real hardware.
And that specifically is where you need a human to say "yeah but it needs to be written with *these* specific opcodes because *those* specific opcodes will...", and I'm not sure that AI is ready to do that yet.
The root of the problem is the one I run into if I wanted to use AI to write code - AI is a big copy-and-paste machine and does not really understand all the tiny details that we hold in our brains.
Without the implicit knowledge that goes around things like "well you can't do that because..." you're going to get into a mess.
Definitely worth a listen if you get the time.
For me personally, I feel this project is the greatest engineering effort in human history bringing together the work of Newton, Kepler, the mathematics of the celestial navigation, gravitational assist techniques[1], etc. necessary to keep a little probe on its route accurately over 50 years in space.
[0] https://www.npr.org/2023/08/02/1191341035/nasa-voyager-2-spa...
All that and...
Lisp.
(as an aside, a celebratory coffee mug for when Voyager 1 finally gets to the 1-light-day-from-earth mark would be very popular, in case anyone from the JPL store is reading this. 'Yesterday's sunrise, today!')
If you want to land on an asteroid/rock, either you match speed with it, in which case you already had enough speed to go wherever it's going, or you intercept it at a different speed, in which case you get smashed to dust if your speed was any more than a few m/s different.
Maybe you didn't mean this, but it's a common enough misconception. People even on HN were suggesting a spacecraft could hitch a ride on ʻOumuamua to get a quick way to a different solar system.
Edit: For those who think I'm too harsh: https://imgur.com/a/YkmtOZ9
In the 1970s, there was a distinction between "machine language" and assembly language. Assembly (or assembler) language is the symbolic source code that a programmer would use. Machine language is the binary dump of the actual text segments that the CPU directly interprets to run.