In 2015, NASA put out a job posting looking for a software engineer with a specific set of skills.
The person had to be an expert in FORTRAN and Assembly
two programming languages from the 40s and 50s that most young graduates don't know.
The job was to join the very small team of people working on the Voyager space probes.
Incredibly, both voyagers still run on their original 50-year-old computers
which have just 70 kilobytes of memory.
It might not sound like much, but it was enough to navigate both space probes through our solar system
and make incredible discoveries along the way.
Unsurprisingly, things do go wrong with Voyager's computers.
Just last year, Voyager 1 started sending back garbled Telemetry data about its orientation in space
On top of that, the thrusters in charge of keeping Voyager pointing in the right direction
were starting to show signs of fatigue.
Every time the thrusters are used, tiny pieces of hydrazine fuel get stuck in the pipes.
This has built up over time causing blockages in the system.
Voyager is already on its backup thrusters
and so if these failed it would be the end for Voyager.
At a distance of 15 billion miles, there is no way of clearing the tubes
but in order to slow down the buildup and fix the Telemetry problem
the small team in charge of Voyager began writing a software update
that would be sent across our universe to fix it.
There are three main computers on board Voyager.
The main computer controls all of the major instruments, maintains its health and temperature
and also controls the other two computers.
The second computer is in charge of Voyager's orientation
so it looks for predetermined reference points
and fires the thrusters to keep Voyager's antenna pointing towards Earth.
The third computer is in charge of storing and handling all of the scientific data
and images taken by Voyager's instruments.
Voyager doesn't have an operating system
and any kind of programming language would take up two too much space
but this isn't the first time Voyager has been updated.
At Neptune, the light was 900 times dimmer than it was at Earth
so in order to take pictures
Engineers had to reprogram the camera to take longer exposures.
Once it left Neptune, NASA began shutting down things like the camera
and various scientific instruments to save power
but with just 70 KB of memory on board its computer, having lines of code for dead instruments was a waste of space.
And so the Engineers completely rewrote Voyager's code
and performed a software update to make sure it continued to live for the foreseeable future.
But how does NASA update such old hardware from 15 billion miles away?
To understand how difficult this is we need to know how the software works on Voyager.
Voyager runs the latest version of NordVPN
Not really, NordVPN wouldn't fit on Voyager's computers, but if it did it would do a great job of protecting Voyager
from online threats. Whenever you are connected to Wi-Fi, especially public Wi-Fi, your data is constantly at risk
from hackers. With NordVPN you can become instantly protected with just a single click.
How many times have you gone to watch a YouTube video or Netflix series
only to find it's blocked in your country? With NordVPN all you need to do is connect to one
of the 5,000 servers and suddenly all the content you've been missing will appear.
NordVPN has also launched 'Meshnet' the safest way to connect to all of your devices no matter where you are
in the world. It acts like a local area network and creates a secure way to directly access things
like personal servers and share files around the world. NordVPN works on every major platform
and can be installed on up to six devices at one time. To get NordVPN's 2-year plan plus 4 months
for free visit nordvpn.com/primalspace.
in order to do a software update on Voyager, NASA needs to install the new code into its computers.
Perhaps the coolest thing about Voyager's computers is the memory.
Each computer has its own plated wire memory, which stores Voyager's code in its most basic form
ones and zeros
This memory consists of a physical grid of wires and thin metal plates.
Each intersection point can be thought of as a single bit of memory and it can store either a one or zero.
By passing a current through one of the plates and a specific wire, it would create a magnetic field.
If the magnetic field is in this direction, it is considered a zero. if it goes in the opposite direction, it's a one.
By passing a current in the opposite direction, it would change the direction of the magnetic field
and flip the bit to a zero.
By doing this for every point
you could save these ones and zeros into the memory.
This design was a great choice at the time
because it meant that even if the power went out, the ones and zeros would still be saved to the memory.
It also meant that each bit could be updated.
With just 70 kilobytes of total memory onboard Voyager
the engineers have to be extremely efficient with their code.
Along with this basic machine code
Voyager has its own pseudo code. Basically a series of shortcut commands
that can be triggered to carry out repetitive tasks without taking up too much memory.
An interpreter onboard the main computer reads the ones and zeros. Once it comes across a predetermined code
it initiates the pseudo code to carry out a command. This saves lots of memory and allows many
tasks to be automated without writing out long lines of code.
But the problem is that humans can't code in just ones and zeros.
And so a more advanced language is needed to actually write the code for Voyager.
On Earth, Voyager software was originally written in Assembly Language with a little bit of FORTRAN.
Assembly is a very simple language that can be understood by humans, but is much closer to
the basic ones and zeros of machine language.
Once the code is complete it gets compiled into machine code
which can be sent to Voyager using the deep space network.
The data is sent to Voyager at a rate of 16 bits per second
and it takes almost an entire day to actually reach Voyager.
The computers onboard Voyager are interrupt-driven.
This means that the software goes through its usual list of instructions until it gets interrupted
When an update is sent to Voyager, it carries an interrupt signal.
When Voyager receives this, it tells the main computer to stop what it's doing and instead work on the update instructions.
It then unloads the new code into the memory
flipping all the bits to their new position. The code is then read through to check that everything
is correct and then the main computer kicks it into gear and returns to normal operations.
Over the years Voyager has received a long list of updates and patches to fix and improve how it operates.
In 1995 an update was written that would basically restart certain components if they failed.
In 2014, some 20 years after the code was written, this code saved Voyager 1 when a piece
of hardware malfunctioned. In 2010 a single bit of Voyager's memory was flipped, changing a zero
to a one. This caused computers to lose sync with each other and the commands started happening two
and a half hours later than expected. A software update was sent up to flip the faulty bit back
into its correction position. It's amazing stories like these that have allowed these iconic space
probes to survive almost 50 years in space. It's incredible that the physical wires, transistors
and hardware onboard Voyager's computers are still operating as intended after all this time.
And now for the Primal Space giveaway.
The winner of the previous giveaway is Yasmine. Congratulations!
In the next video we'll be giving away this Primal Space designed Voyager poster. All you need to do
is sign up at the link below, like the video and leave a comment saying where you would send a
Voyager 3 if it launched today.
Thank you very much for watching and I'll see you in the next video.