NASA’s Voyager 1 spacecraft is talking nonsense. Its friends on Earth are worried.

“Frankly, I’m very worried,” he says. Ever since mid-November, the Voyager 1 spacecraft has been sending messages back to Earth that don’t make any sense. It’s as if the aging spacecraft has suffered some kind of stroke that’s interfering with its ability to speak. “It basically stopped talking to us in a coherent manner,” says Suzanne Dodd of NASA’s Jet Propulsion Laboratory, who has been the project manager for the Voyager interstellar mission since 2010. “It’s a serious problem.”

Instead of sending messages home in binary code, Voyager 1 is now just sending back alternating 1s and 0s. Dodd’s team has tried the usual tricks to reset things — with no luck. It looks like there’s a problem with the onboard computer that takes data and packages it up to send back home. All of this computer technology is primitive compared to, say, the key fob that unlocks your car, says Dodd. “The button you press to open the door of your car, that has more compute power than the Voyager spacecrafts do,” she says. “It’s remarkable that they keep flying, and that they’ve flown for 46-plus years.”

Voyager 1 and its twin, Voyager 2, have outlasted many of those who designed and built them. So to try to fix Voyager 1’s current woes, the dozen or so people on Dodd’s team have had to pore over yellowed documents and old mimeographs. “They’re doing a lot of work to try and get into the heads of the original developers and figure out why they designed something the way they did and what we could possibly try that might give us some answers to what’s going wrong with the spacecraft,” says Dodd. She says that they do have a list of possible fixes. As time goes on, they’ll likely start sending commands to Voyager 1 that are more bold and risky. “The things that we will do going forward are probably more challenging in the sense that you can’t tell exactly if it’s going to execute correctly — or if you’re going to maybe do something you didn’t want to do, inadvertently,” says Dodd.

Linda Spilker, who serves as the Voyager mission’s project scientist at NASA’s Jet Propulsion Laboratory, says that when she comes to work she sees “all of these circuit diagrams up on the wall with sticky notes attached. And these people are just having a great time trying to troubleshoot, you know, the 60’s and 70’s technology.” “I’m cautiously optimistic,” she says. “There’s a lot of creativity there.”

Still, this is a painstaking process that could take weeks, or even months. Voyager 1 is so distant, it takes almost a whole day for a signal to travel out there, and then a whole day for its response to return. “We’ll keep trying,” says Dodd, “and it won’t be quick.”

https://www.npr.org/2024/03/06/1236033493/nasas-voyager-1-spacecraft-is-talking-nonsense-its-friends-on-earth-are-worried

Comment: This is one hell of an adventure for NASA coders and engineers. I envy them. Years before the launch of Voyager 1, I was introduced to computers in an after school course in the computer center of Fairfield University. I ended up writing a Star Trek navigation game in Fortran by graphing polynomial functions. I wouldn’t know where to begin to do that now. Many years later I learned how to hack MS DOS to write stupid computer tricks and write simple viruses. That was all to support a cover. I couldn’t do that today, either. Those rudimentary old skills are nothing to sneeze at. Those NASA coders are living the dream… a techno-nerd dream, but a dream nevertheless.

TTG

This entry was posted in Space, Technology, TTG. Bookmark the permalink.

16 Responses to NASA’s Voyager 1 spacecraft is talking nonsense. Its friends on Earth are worried.

  1. MJ says:

    I asked chatGPT to recreate your space navigation game for you…
    prompt: create space navigation game in Fortran by graphing polynomial functions.

    PROGRAM SpaceNavigation
    IMPLICIT NONE

    INTEGER :: choice
    REAL :: x
    CHARACTER(LEN=50) :: equation

    ! Title
    PRINT *, “Welcome to Space Navigation!”

    DO
    ! Main Menu
    PRINT *, “Main Menu:”
    PRINT *, “1. Navigate”
    PRINT *, “2. Exit”
    PRINT *, “Enter your choice:”
    READ(*, *) choice

    SELECT CASE (choice)
    CASE (1)
    CALL Navigate()
    CASE (2)
    PRINT *, “Exiting the game. Goodbye!”
    EXIT
    CASE DEFAULT
    PRINT *, “Invalid choice. Please select again.”
    END SELECT
    END DO

    CONTAINS

    SUBROUTINE Navigate()
    REAL :: coeff(0:10)
    INTEGER :: degree, i
    REAL :: y

    PRINT *, “Enter the degree of the polynomial equation ( 10) THEN
    PRINT *, “Degree too high. Please enter a degree <= 10."
    RETURN
    END IF

    PRINT *, "Enter the coefficients of the polynomial equation:"
    DO i = 0, degree
    PRINT *, "Coefficient of x^", i, ":"
    READ(*, *) coeff(i)
    END DO

    PRINT *, "Enter the x value for which you want to calculate y:"
    READ(*, *) x

    y = EvaluatePolynomial(coeff, degree, x)

    PRINT *, "The y value corresponding to x =", x, "is", y
    END SUBROUTINE Navigate

    FUNCTION EvaluatePolynomial(coeff, degree, x)
    REAL, INTENT(IN) :: coeff(:)
    INTEGER, INTENT(IN) :: degree
    REAL, INTENT(IN) :: x
    REAL :: EvaluatePolynomial

    INTEGER :: i
    REAL :: result

    result = 0.0
    DO i = 0, degree
    result = result + coeff(i) * x**i
    END DO

    EvaluatePolynomial = result
    END FUNCTION EvaluatePolynomial

    END PROGRAM SpaceNavigation

    • TTG says:

      MJ,

      Cool. Try that with graphing parabolic quadratic equations. It’s been over 50 years, but I now remember I used parabolas.

  2. MJ says:

    You asked and chatGPT delivered. Does it work? Compiles? Don’t have a Fortran emulator to test. Other code requests to chatGPT ( java, python) usually execute without issue.

    program SpaceNavigation
    implicit none

    ! Parameters
    integer, parameter :: num_curves = 3
    integer, parameter :: num_points = 100
    real, parameter :: gravity = 9.81

    ! Variables
    real :: x_ship, y_ship ! Spaceship coordinates
    real :: x_target, y_target ! Target coordinates
    real :: x_obstacle(num_curves, num_points), y_obstacle(num_curves, num_points) ! Obstacle coordinates
    real :: a(num_curves), b(num_curves), c(num_curves) ! Coefficients of parabolic curves
    integer :: i, j ! Loop counters

    ! Initialize obstacles (parabolic curves)
    do i = 1, num_curves
    a(i) = 0.01 * i
    b(i) = 0.5 * i
    c(i) = -10.0 * i
    do j = 1, num_points
    x_obstacle(i, j) = real(j) / real(num_points) * 100.0
    y_obstacle(i, j) = a(i) * x_obstacle(i, j)**2 + b(i) * x_obstacle(i, j) + c(i)
    end do
    end do

    ! Initialize spaceship and target coordinates
    x_ship = 0.0
    y_ship = 0.0
    x_target = 100.0
    y_target = 0.0

    ! Main loop
    do
    ! Print current state
    call printState(x_ship, y_ship, x_target, y_target, num_curves, num_points, x_obstacle, y_obstacle)

    ! Check if the spaceship has reached the target
    if (abs(x_ship – x_target) < 1.0) then
    print *, "Congratulations! You've reached the target!"
    exit
    end if

    ! Move the spaceship
    call moveSpaceship(x_ship, y_ship, x_target, y_target, num_curves, num_points, x_obstacle, y_obstacle)
    end do

    contains

    ! Subroutine to print the current state
    subroutine printState(x_ship, y_ship, x_target, y_target, num_curves, num_points, x_obstacle, y_obstacle)
    real, intent(in) :: x_ship, y_ship, x_target, y_target
    integer, intent(in) :: num_curves, num_points
    real, intent(in) :: x_obstacle(num_curves, num_points), y_obstacle(num_curves, num_points)
    integer :: i

    ! Clear screen
    print *, char(27)//"[2J"

    ! Print spaceship and target
    print *, "Spaceship: (", x_ship, ",", y_ship, ")"
    print *, "Target: (", x_target, ",", y_target, ")"

    ! Print obstacles
    do i = 1, num_curves
    print *, "Obstacle ", i, ":"
    print *, " Coefficients: a =", a(i), ", b =", b(i), ", c =", c(i)
    end do
    end subroutine printState

    ! Subroutine to move the spaceship
    subroutine moveSpaceship(x_ship, y_ship, x_target, y_target, num_curves, num_points, x_obstacle, y_obstacle)
    real, intent(inout) :: x_ship, y_ship, x_target, y_target
    integer, intent(in) :: num_curves, num_points
    real, intent(in) :: x_obstacle(num_curves, num_points), y_obstacle(num_curves, num_points)
    integer :: i, nearest_curve
    real :: dist, min_dist

    ! Find the nearest obstacle curve
    min_dist = 1.0E20
    nearest_curve = 0
    do i = 1, num_curves
    dist = sqrt((x_ship – x_obstacle(i, 1))**2 + (y_ship – y_obstacle(i, 1))**2)
    if (dist 50.0) then
    y_ship = y_ship – 0.1
    end if

    ! Slow down spaceship if it goes too low
    if (y_ship < -50.0) then
    y_ship = y_ship + 0.1
    end if
    end subroutine moveSpaceship

    end program SpaceNavigation

    • TTG says:

      MJ,

      I wouldn’t know if it works. This stuff is so far behind me, I wouldn’t know where to begin. But I can see how this ChatGPT function can be a real help to coders. It could at least offer a possible solution to a particular problem. The coder can either use it as is, modify it or use it to spur his own creative process if he hits a wall. Using coding libraries of functions is a regular part of the process so using ChatGPT can fulfill the same function.

  3. MJ says:

    TTG – You are correct, great benefit if your a novice, stuck, or you programing skills are lacking (like mine). I just used simple prompts to get those results. Prompt Engineering is the art of asking GPT (or any LLM) to get the results you want.

  4. F&L says:

    Someone read Walrus’s comment on the true purpose of the Gaza pier.
    Elsewhere I read that the pier was Netanyahu’s idea which makes perfect sense.

    US building Gaza port to facilitate mass ‘voluntary’ migration: Anadolu Agency.
    The US claims the port is to facilitate humanitarian aid but could be used to ethnically cleanse Gaza per previously leaked Israeli plans.

    https://thecradle.co/articles-id/23838

    • TTG says:

      F&L,

      José Andrés and his WCK cooks are building a temporary pier to receive 200 tons of food. I doubt he’s doing it for any other purpose than to get food to the people. He’s doing it with supplies and equipment already in Gaza. UAE is assisting in this whole effort. Maybe a pier is the best way to do this given that supply trucks are not working out so well due to security hinderances and a lack of drivers.

  5. babelthuap says:

    I remember as a kid in the very early 80’s seeing a middle age man with a thick stack of dot matrix printed out code going through it line by line in a McDonald’s.

    Later I got a taste of it in a jr. high computer class and thought of that man going through code. Awful. No way I would be doing this stuff for a living.

    It reminded me of those old circuit board box toys from Radio Shack where you connect l 85 wires to get a siren sound. Painstaking work for one sound. I imagine these Viking folks are doing something very similar.

    • TTG says:

      babelthuap,

      I remember the wide fanfold computer printouts with the alternating light green and white lines. That’s what the WWMCCS terminal at Fort Devens used. At RPI, the electrical engineering students were using punch cards, far worse than that fanfold paper. I was lucky. That high school class used the old florescent green on black CRT screens. Even now, when I use a terminal screen, I switch it to that green on black format.

      It is painstaking work, but there are plenty of coders who get real thrill out of this.

      • Peter Hug says:

        Back in the early 80s as an undergrad, I once watched a bunch of kids slicing up the list of everyone who had been admitted to the college (sorted by date) and then resorting them by hand into alphabetical order so they could be typed into the student database like that.

        I didn’t even say anything, and I’m still kinda proud that I didn’t say what I was thinking…

  6. Mark Logan says:

    Some progress reported in fixing the Voyager glitch.

    https://universemagazine.com/en/saving-voyager-1-interstellar-probe-shows-signs-of-recovery/

    There are several cool space news bits on this site, btw.

  7. Barbara Ann says:

    Talking nonsense? Worried friends? Alternating 1s and 0s? All the signs are there. I think Voyager 1’s distressed condition has been misdiagnosed. The spacecraft has simply decided to identify as non-binary. NASA engineers should consider sending out a maintenance craft with an upgrade; one of those new fangled bit-fluid quantum computers.

    But seriously, I dabbled with Fortran at college (I didn’t inhale) and can see the attraction of the challenge to fix the thing. Best of luck to the techno-nerds.

    • ked says:

      what a relief. I’d feared it degraded to the level of a rambling train wreck loser running for office.

Comments are closed.