NASA's Voyager Team Focuses on Software Patch, Thrusters
jpl.nasa.gov>NASA engineers are working on a software patch that will order the Voyagers to fire their thrusters less often but for longer periods to maintain their attitude
Anyone got any detailed info on what CPU, software and programming language is used on the Voyager that can support something as "advanced" as OTA software patches?
It was launched in 1977 and since aerospace uses tech older than consumer tech, it probably isn't running anything remotely as advanced as a Z80, 6800 or 6502 which came out only a few years before Voyager was launched.
Any info I found point to a custom 18 bit CPU built out of discrete TTL 7400 series parts which would be period correct, but not much details on how the SW, programming and OTA updates work.
I assume NASA has the full HW-SW stack, compiler, toolchain, version control, plus HW and SW simulators for it so making some of them public would be really cool considering the source code of the moon lander is already public. What do they have to loose?
The main CCS computers are a custom 18-bit (not all registers are 18 bit) design from General Electric, used on both the Viking and Voyager missions. The onboard software is mostly in assembly.
There's two of them.
They send software updates fairly regularly (including a nearly full rewrite in 1990) and this is a common question. You can find some statements in older reporting on other updates..
It's in some sense not very exciting. Basically, it's an interrupt-driven system and you can, by radio command, invoke handlers that will rewrite some memory holding the program with new contents and hand control back to other routines. Of course with the expected error handling and failover protections in place. NASA got quite good at it during the Mariner missions, which saw the first remote updates for their programmable sequencers, and by the time of Viking and the CCS, it was a routine part of the requirements.
There's tooling written in Fortran (and later partially ported with C) that supports the Earth-based team in preparing the updates.
The patches discussed in the article are actually for a different type of computer in the system, the AACS (Attitude and Articulation Control Subsystem). But it's similar there: There's redundancy (there's two) and you patch memory contents, do a memory read-out to double check and kick things into gear.
>It's in some sense not very exciting.
Well, neither is the Doom source code for most people, but for others it could be pretty cool to read, especially that the moon lander's source code is already public.
Don't get me wrong, it's a space ship so of course it's incredibly exciting and no doubt also a career highlight to work on! :)
Just sayin', the OTA part is fairly mundane implementation-wise, flipping bits. The decision to engineer a system around it and have it in the requirements is maybe more audacious. Also, the technology involved with us still being able to radio into these remore devices at all is amazing and the unsung hero here.
Edit: If you go to the FSW section here, you can read a little bit of what amounts to release notes for the onboard software changes:
https://csclub.uwaterloo.ca/~pbarfuss/VIMChallenges.pdf
Includes a cute anecdote about dealing with a randomly flipped bit in memory.
My favorite bit:
"A CCS FSW patch was developed and implemented in 1995, and linked on the spacecraft in 2006 for V1 and 2005 for V2 to automatically restart some of the critical functions in the event of an Error entry. This patch was exercised in flight in 2014, nearly 20 years after it was installed, when one of the CCS processors went into an error entry on V1; the patch worked as designed."
But hey, the Pixel gets 7 years now! :-)
"as OTA software patches"
Technically it's like 0.0001% OTA and 99.9999% OTVoS (Over The Void of Space).
Pioneer 10 is technically further away, just dead as a rock without power (no comm for 20 years)
Voyager website is awesome
https://voyager.jpl.nasa.gov/mission/timeline/
A very different time, thank goodness for DEI now
https://voyager.jpl.nasa.gov/assets/images/timeline/0003.jpg
. . . but it still watches football.
Wikipedia says that both Voyagers are calculated to be further away than Pioneer 10, but for Voyager 2 only since July 18 of this year.
> A very different time, thank goodness for DEI now
or a picture of senior leadership at Google.
plus ça change, plus c’est la même chose
Is it just me that really wants to FOIA the firmware code to read it?
What is it written in? Assembler, surely?
What is the development toolchain like in 2023 for a 70s computer? Do they have an emulator? What happened to the spare development Voyager they had lying around?
That has been done before. You can't get it as FOIA as it's not a government record.
https://www.muckrock.com/foi/united-states-of-america-10/voy...
"The spacecrafts’ original control and analysis software was written in Fortran 5 (later ported to Fortran 77). Some of the software is still in Fortran, though other pieces have now been ported to the somewhat more modern C."
"To keep the Voyager 1 and 2 crafts going, NASA's new hire has to know FORTRAN and assembly languages." - https://www.popularmechanics.com/space/a17991/voyager-1-voya...
Thank you! WTF, though? I've not done much work on federal FOIAs, though I'm a serial litigant under the Illinois FOIA.
It is crazy that the government can pay for something and yet the People do not own it.
Under Illinois FOIA, anything done under a contract to the State is FOIA-able as a record of the government body that ordered the work.
I'm 99% certain that the spacecraft computers were not programmed in Fortran. Several years ago, I investigated this meme for my own interest and all arrows seem to point back to this 2013 Wired article as the source (also referenced in your muckrock link): "Interstellar 8-Track: How Voyager's Vintage Tech Keeps Running" ( https://www.wired.com/2013/09/vintage-voyager-probes/ ) .
The 2013 article was based on an interview with the current (2013) Voyager project manager, who began working on the Voyager project in 1984, a few years after the 1977 launches.
First off, I'm guessing that project manager said "Fortran Five" (while thinking "Fortran V") and the writer wrote down "Fortran 5". The Wikipedia article for Fortran (which also references this Wired article, erroneously I think) says there was only one Fortran 5, introduced by Data General in the late 1970s. Other companies offered Fortran V.
Second, I think the key phrase in the quote is "control and analysis software". To me, this connotes the ground system: mission control and science data analysis. And Fortran was commonly used in ground processing and such code could be ported to Fortran 77 and later C.
The on-board spacecraft flight software would be another matter. Voyagers 1 and 2 were launched in 1977. I can't imagine trusting the flight software to newly introduced Fortran V compilers (or even a pre-release DG Fortran 5 compiler). And then switching compilers to Fortran 77 and then C. Possible, but IMHO, not likely.
I am open to being corrected. Regarding FOIAs, I had not thought of going to that extreme and, as your link to the muckrock request verifies, I had also learned that the papers were the property of Caltech, not NASA. Which is unfortunate as the documents and communications mentioned in the link below promise some fascinating reading just begging to be made available online!
I highly recommend reading "Computers in Spaceflight: The NASA Experience" at https://history.nasa.gov/computers/contents.html . (The author of the history did visit the JPL archives and was able to read a fascinating assortment of documents in hardcopy form.)
Chapter 6, "Distributed Computing On Board Voyager and Galileo" ( https://history.nasa.gov/computers/Ch6-2.html ), describes the Voyager computers in some detail. There were 3 computers:
(1) Command Computer Subsystem (CCS) - command processing/sequencing, etc. This computer was carried over from the Viking missions.
(2) Attitude Control System - used a revamped, beefed up CCS computer.
(3) Flight Data System - telemetry and science data handling/transmission. Because of the high data rates, a new computer was needed. A hardware engineer and a software developer collaborated on the design of the computer. Knowing the timing requirements, they developed the CPU's hardware and instruction set on the fly until the software (a changing mock-up I assume) could meet the requirements. (Some of this I might have read elsewhere.)
As I noted, what a treasure trove their memos and communications from this time would be if they were online!
You probably don't need a FOIA, you can try to just email them. They're scientists and engineers, the best thing in their day would be someone showing an unbidden interest.
Not Voyager but here’s code from the Apollo program: https://github.com/chrislgarry/Apollo-11/
Highly recommend 'Sunburst and Luminary: An Apollo Memoir' by Don Eyles who gives a programmer's perspective on the software aspects of Apollo. Some of which were fairly nail-biting, especially when they occurred in-flight.
Seconding this recommendation, it's a fascinating book.
They almost certainly upload every software patch to the dev Voyager and do an extended HITL test before they command a flight flash
This is a pretty cool article but calling the Voyagers “obsolete” is killer comedy. Ok yes and what non-obsolete technology has passed the heliopause and can be patched from 130/160 AU away.
Now this is hackernews. Imagining working on spacecraft where no human made thing has gone before.
Also is this correct?
>NASA extended the mission so that Voyager 2 could visit Uranus and Neptune; it is still the only spacecraft ever to have encountered the >ice giants<.
Aren’t they gas giants? I mean they are probably very cold, but usually they are called gas giants.
> Aren’t they gas giants? I mean they are probably very cold, but usually they are called gas giants.
"Ice giant" seems to be the more modern terminology:
An ice giant is a giant planet composed mainly of elements heavier than hydrogen and helium, such as oxygen, carbon, nitrogen, and sulfur. There are two ice giants in the Solar System: Uranus and Neptune.
In astrophysics and planetary science the term "ice" refers to volatile chemical compounds with freezing points above about 100 K, such as water, ammonia, or methane, with freezing points of 273 K (0°C), 195 K (−78°C), and 91 K (−182°C), respectively (see Volatiles). In the 1990s, it was determined that Uranus and Neptune were a distinct class of giant planet, separate from the other giant planets, Jupiter and Saturn, which are gas giants predominantly composed of hydrogen and helium.
As such, Neptune and Uranus are now referred to as ice giants.
I've heard Uranus and Neptune referred to as ice giants since at least the late 90s.
In any case, I understand ice giants to be a subset of gas giants with more specific parameters.
Astrophysicists have some funny conventions. Like how everything but hydrogen and helium are "metals": https://planetary.s3.amazonaws.com/web/assets/pictures/20120...
Those 2% "metals" are basically considered a rounding error and can be ignored.
Also π ≈ 1. https://www.explainxkcd.com/wiki/index.php/2205:_Types_of_Ap...
Is that true? I don't know if I can trust a person made of metal.
Thank you! Learned something new. Honestly never heard the term before.
> Aren’t they gas giants?
Uranus is for sure.
Risky move making a joke on HN.
Riskier still making a dad joke on HN.
I'm curious about how the upload to these spacecrafts is secured. We're talking about 1977 technology. What prevents an antisocial troll or adversial state to upload broken firmware?
I posted about that last time it came up. I would guess nothing would stop you except resources. See link for someone that hacked another probe:
They are so far away now that you need a massive amount of radio power and a properly large dish to communicate with a SNR good enough for the onboard system to receive your transmission.
Right now I think the only dish in the world setup with the correct equipment to signal the Voyagers that is large enough is the Deep Space Network dish in Canberra, Australia.
This is correct accept that there are 3 DSN sites, Canberra, Madrid, and Ft. Irwin, California, each with a variety of different antennas. They're roughly spaced 120 degrees around the globe from each other so that full coverage of the sky is always maintained. Each has a 70m dish which I believe is the only antenna with enough gain to communicate with Voyager these days.
Likely somewhat modern tech to access the deep space network required to upload to the spacecraft.
There's a great ROI on these, I don't know why we're not sending more just like it with updated packages.
That's because the planetary alignment that let us send them only happens once every 175 years.
> let us
New Horizons would like to have a word.
New Horizons, like many other spacecraft, used gravity assists from planets (Jupiter in its case) but the specific combo of assists available to Voyager will not in fact occur again until the year 2224 [0].
[0] http://www.gravityassist.com/IAF3-2/Ref.%203-143.pdf, section 3.4
Sure, I mean we won't get to do a Grand Tour again anytime soon but we can and did send things either to planets or heliopause and beyond.
As a nearby comment mentions, Voyager were flybys so now that it's done and even if we could ROI may very well be lower than sending more focused orbiters (for planets and moons) or deep space crafts (for peristellar/interstellar)
The question is what "just like it" means.
My point was that we can't send more "just like" the Voyager trips. But we can send other things on trips that resemble it in some way.
We are probably doing even better than that. The Voyagers were flybys, which naturally limited the amount of time they could spend observing each planet up close. This is why we only know what one side of Triton looks like.
Voyager’s follow-ups have been missions like Galileo and Cassini, which stayed in orbit around Jupiter and Saturn respectively, allowing more detailed observations with better instruments. It looks like the next priority is Uranus:
Uranus was the next priority from the most recent decadal survey; there's a couple of missions to the outer planets that are farther along.
- The Jupiter Icy Moons Explorer is a European probe that was launched earlier this year, it'll be studying the moons Europa, Callisto, and Ganymede.
- NASA has Europa Clipper scheduled for launch next year, that'll be taking a close look at Europa.
- NASA also has the Dragonfly mission in the works to explore Saturn's moon Titan using an octocopter, currently planned for launch in 2027.
What non-volatile residue does hydrazine fuel create?
What "binary format" Voyagers are running? How does the actual patch happening? Slow BPS transfer of a binary diff?
Mandatory reminder for Voyager: https://www.youtube.com/watch?v=H62hZJVqs2o
Its just incalculable what the ROI on this kind of a mission is. It is amazing that US and tech was in the state it was in when the planets aligning themselves happened and we were able to send these out there. A decade here or there and the opportunity would be lost.
pulse the thrusters to disintegrate any form of lice form.
<shudders> ewww. space lice.