back to article Voyager 1 regains sanity after engineers patch around problematic memory

NASA's Voyager 1 spacecraft has begun returning usable engineering data after engineers devised a way to work around a damaged memory chip. It is the first time the spacecraft has returned usable data since it began babbling nonsensically in 2023. The problem was eventually traced to a single chip responsible for storing a …

  1. phuzz Silver badge

    That's some bloody impressive remote troubleshooting.

    >>>> beers all round

    1. Sam not the Viking Silver badge

      Human ingenuity --->

      I wonder if AI was involved?

      Assuming not, I wonder what it would have recommended: "More adverts before downloads."

      On the other hand, could Copilot have been 'helping' with the transmission? "Looks like you're trying to send data. Would you like me to cock that up for you?"

    2. Philo T Farnsworth


      High five!

  2. Locomotion69
    Thumb Up

    Fixing a failed device 47 years after deployment... Well done!

    Built to last.

    It is rocket science after all.

    1. Bitbeisser

      Yeah, they don't build them like this anymore today...

  3. John Robson Silver badge

    This is why...

    ... we over engineer things which are "difficult" to service.

    1. Sam not the Viking Silver badge

      Re: This is why...

      Knowing that things will go wrong.

  4. Will Godfrey Silver badge
    Thumb Up

    Really good news

    In these times we need such positive reports.

  5. Forget It

    In space

    non one can hear you debug

  6. Oh Matron!

    Difficult to comprehend that...

    the entire code base is probably less than an empty Word Document file.

    1. John Riddoch

      Re: Difficult to comprehend that...

      According to NASA, there's about 68KB of memory in total. The FDS have 8198 16 bit words, so about 16KB for each FDS computer. I've created an empty Word doc which is actually just under 12KB as .docx and 26KB as .doc, so it depends on the format you want to save it as. Word used to be a lot worse I recall, so it also depends on which version you're using...

      Regardless of that comparison, 8198 words doesn't give a lot of wiggle room to move stuff about...

      1. Neil 44

        Re: Difficult to comprehend that...

        Not sure what the processor(s) will be, but many of that generation (I'm thinking Z80, as that's what I learnt) traded "jump" space with functionality. Eg, the Z80 had a JR instruction was 2 bytes and could jump +-128 bytes. Whereas the JP instruction took 3 bytes - but could jump anywhere in the 64kb address space.

        JR was your friend if you had either limited memory or code that needed to relocate as it didn't contain an absolute address

        1. Boris the Cockroach Silver badge

          Re: Difficult to comprehend that...

          Downside being JR took longer than a JP

          Retrive program counter, add the displacement to it, jump to that location

          where as a JP was replace program counter with address (unless you were storing the address in memory pointed to by the HL register pair... but then you could do all sorts of fun with that.... such as a jump table that depended on a a calculated result)

          <<wandering well off topic......

          Icon... for excellent boffinery by JPL

          1. DoctorNine

            Re: Difficult to comprehend that...

            I haven't thought about this stuff for decades.... thanks for reminding me of stuff that's still lurking in the old bio-memory!

            1. Christoph

              Re: Difficult to comprehend that...

              A lot of code used a jump table - a list at a known address of jumps to each routine, so you could move the code around without changing external access. Some people at work once managed to hex dump the computer's code on the screen and were going "Wow, that's computer code". I took one look at the list of C3nnC3nnC3nn . . . and said "No, that's a jump table".

              1. Will Godfrey Silver badge

                Re: Difficult to comprehend that...

                Quite a lot of code still uses them.

    2. mickaroo

      Re: Difficult to comprehend that...

      You made me laugh!

      Have an up-tick.

  7. Mike 137 Silver badge


    "The solution was to break the code into sections, tweak them so they still functioned as a whole, and store them in different places in the FDS."

    A colleague and I used this approach in the very early eighties, to upgrade ROM-based applications for Acorn computers (fitting 4k EPROMs). We looked for unused spaces, or spaces that could be released by simplifying existing code, that were long enough for a few new instructions plus a jump in and out, and broke the new code into fragments to fit.

    Nice that the technique hasn't been forgotten in this age of coding while ignoring the hardware.

  8. Doctor Syntax Silver badge

    Fixed by spaghetti coding!

    1. Locomotion69

      I would call this an perfect example of position independent modular coding !

  9. Lord Elpuss Silver badge

    Epic engineering chaps & chapesses. Have a >>>. And a stiff whisky for the person who actually has to press SEND, knowing that any cockup is likely to be utterly irreversible.

  10. TonyMurphy
    Thumb Up

    The human race is doing a lot of dumb things these days, but occasionally. for briefest of instants, it shines bright with ingenuity, skill and brilliance,

  11. Pascal Monett Silver badge
    Thumb Up

    "The problem was eventually traced to a single chip"

    Wow. That's never something you're going to read in a Borkzilla report, now is it ?

    Well done to NASA engineers. Once again they have snatched victory from the jaws of defeat.

    I hope they can carry this on for a long time yet.

  12. MichaelGordon

    Given the age of the hardware it's probably not that susceptible to radiation, even if it's not specifically rad-hardened, but get beyond the heliosphere and you're likely to get hit by a few very high energy particles. It'd be interesting to know if that's what happened here or if it's just the hardware showing its age.

  13. Michael H.F. Wilkinson Silver badge

    Fan-bleeding-tastic work!

    I remember watching the Voyagers being launched on TV decades ago, and avidly followed their progress past the outer planets and beyond. BIG thumbs up to the brilliant people at NASA for fixing this.

  14. TJ1

    Just look at their whiteboard!

    No DevOps here - maturity and hundreds of years of experience!

    Take a look at the scribbles on their whiteboard - looks like they have the signal clock (SC freq) and data bit pulse width calculations along with some amplitude compression recovery.

    Nice to see them putting the ACE back in hACkEr !

  15. Mishak Silver badge

    Just think

    The hours and miles you could have claimed for a "call out"...

    Well done guys!

    1. FIA Silver badge

      Re: Just think

      Can you imagine being on the helpdesk for the original call though....

      "Okay we need to check for updates, I need you to click on the Start button for me...."

      <45 hours pass>

      "The what?"

    2. John Brown (no body) Silver badge

      Re: Just think

      "The hours and miles you could have claimed for a "call out"..."

      Unless it''s a one way trip, you'd have to take the risk of sending the PFY as the BOFH may not live long enough to get back and enjoy the expenses claim :-)

  16. navarac Silver badge

    It makes you think....

    or it makes ME think, of the difference between my first computer (a 48K Sinclair Spectrum) and my current Desktop. I got immense pleasure playing the spectacular (for its time) games on the "Speccy", and joy from the simple programs in BASIC I typed in from the micro magazines of the day. Probably more so as computers were a marvel to us then. My current box (2018 vintage), is way over powered and bloated (program/code wise) for what it is used for, By the time 47 years have gone by from now, no-one will be able to fix it like those Voyager 1 NASA guys and Gals!

    1. David Hicklin Bronze badge

      Re: It makes you think....

      Same here with the Atari 800XL and ZX81, had loads of fun hand coding snippets of code - even made a rudimentary database on the ZX81

  17. Mike_T.

    Not bad going

    If anybody responsible for this happens to read this - 'Well done'.

  18. Anonymous Coward
    Anonymous Coward

    From time to time

    I write a bit of JavaScript or whatever and high five myself for solving a silly problem.

    Then I read this.

    These people are so frickin’ smart I can’t even begin to imagine. I’m also glad I don’t have to deal with their deeper intellectual prowess than mine, given the mental struggles I have.

  19. Bebu Silver badge

    Amiga programmers recruited? Resurrected?

    《The solution was to break the code into sections, tweak them so they still functioned as a whole, and store them in different places in the FDS. Any references to the code's location would also need to be updated.》

    I (very) vaguely recall the Amiga OS originally(?) scatter loaded code into physical memory. The M68K had a wealth of addressing modes (much like the pdp11) which probably made this feasible unlike the x86.

    In this situation today I would build an optomising tool chain to replicate the original code's function but in less space and constrained by a somewhat peculiar memory layout or model. Although you might end up with a threaded code forth interpreter. ;)

    Still not to diminish this human achievement spanning unimaginable distances and nearly 50 years of time.

  20. The Dogs Meevonks Silver badge

    My Commiserations to Voyager

    Voyager, please accept my sincere commiserations for what you are having to endure. After 47yrs of hard work, you are still expected to answer work emails at all times of the day/night.

  21. frankvw

    24,328,548,800 km? There's time for coffee then

    My personal record for remotely fiddling with kit is 13,000km (server in Johannesburg, me in Rotterdam). I scheduled an 'at' job in 10 minutes to reverse my changes and rebooting the server in case something wet wrong and the server would be left unreachable. Which was a good thing because I did cock it up at first.

    But this? Wow. Just wow. Imagine:

    $ ping -c 1 voyager1

    PING voyager1 ( 56(84) bytes of data.

    64 bytes from voyager1 ( icmp_seq=1 ttl=64 time=4.90 ms

    --- voyager1 ping statistics ---

    1 packets transmitted, 1 received, 0% packet loss, time 0ms

    rtt min/avg/max/mdev = 163202000.606/163202000.606/163202000.606/0.000 ms

  22. Nematode

    And even more amazingly, a comments section with nary a negative comment!

  23. Fred Daggy Silver badge

    Is there ... a Voyager I or II Virtual Machine?

    I mean, it's a chip, and peripherals, but you know what I mean? It would be fantastic to see the live code.

    Some of the info is here:

  24. Anonymous Coward
    Anonymous Coward

    Wonder if the same fix would work on Boris, though he's been babbling nonsense for much longer and I suspect the damage is permanent.

  25. _Elvi_

    I bow down to our ...

    .. JPL Overlords..

    Our weak, feeble minds cannot comprehend your power..

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like