It's all over my feed already, but in case I get to give you good news: VOYAGER ONE LIVES! Its incredible team managed to work around the damaged region of memory, and they're getting engineering data back again!

jpl.nasa.gov/news/nasas-voyage

I went digging for more details, and quickly ended up out of my depth, but 🧵 of the bits and pieces I put together...

So I guess a little orientation: there are 3 computer systems on Voyager, each one dual redundant.

The CCS (Computer Command System) is the probe's brainstem, it runs the overall show, afaict it's the one receiving and routing commands. It's an adapted CCS from the Viking program, and built to last. Notably, it uses plated wire memory. Similar to magnetic core memory, slower and low density by today's standards, but non-volatile and unbothered by harsh space weather.

The AACS (Attitude and Articulation Control Subsystem) is another mild variant of the Viking CCS architecture, and is in charge of orientation: firing thrusters, antenna alignment, all that good stuff.

Finally, the FDS (Flight Data Subsystem) is where the science happens. The FDS buffers data from the instruments (to an honest to got eight-track tape), and encodes it into frames for transmission, with all the error correction and what have you.

The FDS needed to do quite a lot, especially during the flybys in the primary mission. So, it contains a radical novelty, never before seen in a spacecraft: CMOS memory. This newfangled CMOS stuff could go faster, and store more bits. But it's also volatile memory (which implies that Voyager has been running continuously, since first power-on after launch, for 46 years), and more susceptible to bitrot from all the spicy cosmic rays and stuff.

So anyway, five months ago Voyager 1 seemingly went mad, and started sending back nonsense instead of its usual science data frames. After some poking and puzzling that I still don't understand, they managed to get the craft back into a state where it was able to send a core dump of the FDS memory, and from that they worked out that the CMOS memory had finally taken a bit too much punishment, and ~3% of it was damaged. Including parts of the programs that prepare engineering and science data.

So, first of all, I hope they sent a defect report to whoever made the memory chips. There's nothing like real world durability data of 46 years in space to help a manufacturer fine-tune their processes! But also, for the first CMOS memory in space... 46 years ain't bad, tbh.

So anyway, at this point if I'm following properly, through the CCS the team have some small amount of control over the FDS, at least enough that they can poke at its memory.

So, 3% memory damaged. Okay fine, so move the affected programs around to avoid that region. The amount of work on the FDS's plate has presumably been dwindling as instruments got shut down, so there's space?

Well, sort-of. First order of business is to relocate and fix the EL-40 program, which assembles engineering data into the low bitrate EL-40 telemetry format, so the team can get a look at what all else is going on.

There's space in the memory to relocate, but not contiguous.

So, the plan turned into: okay, we'll move the EL-40 program to _several_ new regions of memory, and patch up the code so that it all still works right.

So, uh, yeah, that's re-linking the binary that tells you if the spacecraft works, while the spacecraft is a little under a light-day away from earth, with a 45 hour round-trip time.

So anyway, here's the Voyager comms schedule on the Deep Space Network for the current 2-week time window: voyager.jpl.nasa.gov/pdf/sfos2

It's quite... terse, and I'm having to guess at a bunch of what it's saying because for some reason nobody's uploaded the schematics, instruction set and communications reference for Voyager, at least not that I can find.

What the schedule says, if I'm following along: last Thursday, the DSN sent five commands to Voyager 1. Three `RELOCATE FDS EL-40 WITHIN VIM5`, one `LINK VIM5`, and a final `EL40 & LOW SUBC`.

With the background above, I think that translates to: within FDS memory, relocate the EL-40 program to different areas of VIM5 (presumably a memory module?), in 3 different chunks. Then, um, I dunno what LINK VIM5 is, maybe that's the whole "re-link and patch up address references" thing?

Follow

@danderson VIM5 is probably the name for the current FDS code ("Voyager Interstellar Mission").

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.