How NASA Is Pushing a Software Update to Mars to Get Ingenuity Flying

Updating software can be a pain. To pull off the first powered flight on an alien world, NASA is pushing a software update from Earth to Mars.
How NASA Is Pushing a Software Update to Mars to Get Ingenuity Flying
Image: NASA/JPL-Caltech

When it comes to regularly updating our devices, we’re all guilty of a little (or a lot) of procrastination. This wasn’t a choice for the NASA Jet Propulsion Laboratory's Perseverance team when they received a software update request on April 9th from a device they couldn’t ignore—the mission’s four-pound helicopter, Ingenuity, currently on Mars.

Ingenuity, an $85 million NASA “flight experiment,” will pull off the first powered flight on an alien world when it takes off. It landed on Mars in February atop the Perseverance rover’s back and on April 7th first began stretching out and testing its rotor blades after the 173-million-mile journey from Earth to Mars. It was a couple of days later on Ingenuity’s 49th Martian day, and just before its planned first flight, that NASA caught wind that something might not be quite right, explained Dave Lavery, Program Executive for Solar System Exploration at NASA HQ and Helicopter Program Executive, in an email.


“Ingenuity, while preparing for a high-speed spin test of its rotors, did not transition from a pre-flight check-out mode to its flight mode as expected,” says Lavery. “The onboard logic did not recognize the flight control computers as healthy and functional, even though it was confirmed they were.”

When this happened, Lavery said that Ingenuity’s onboard computers behaved exactly as they should have to protect it from damage had it been in flight and sent Ingenuity into sleep mode to await further instructions from Earth. Despite this seeming miscommunication between onboard logic and flight computers, Lavery says that Ingenuity’s critical functions (like communications, thermal control, and power) remained stable.

But in order to get Ingenuity’s two computers to speak with each other again, the JPL team needs to send the helicopter a software update all the way from Earth. The initial software modifications themselves can be quick, NASA said, but validating and eventually sending the software package to Ingenuity can take time.

“The process for updating the Ingenuity software is conceptually similar to a user downloading a software update from an operating system supplier and installing it on a personal computer,” explains Lavery. But instead of being downloaded directly by the user, Ingenuity’s software updates funneled between several different computers linked across the vastness of space called the Deep Space Network—no biggie.


The first step of updating a helicopter on Mars, said Lavery, is to design and validate the software on Earth.

“As software intended for the Ingenuity helicopter is developed here on Earth, it is run through a careful and deliberate validation and testing process to ensure the software is safe and functions properly,” he explained.  “This includes exercising the software on testbeds that are computationally identical to the flight systems.”

Once these software updates have been given the OK on Earth, they are then compressed and separated into pieces for their journey through the Deep Space Network, the communication network of giant radio antennas dotted around the Earth that helps NASA transmit information to and from planetary spacecraft.

“The pieces of the software load are sent from the Jet Propulsion Laboratory, via the DSN, to one of the satellites currently orbiting Mars [and] are then relayed down to the Perseverance rover on the surface of Mars, where they are reassembled into the consolidated software package,” explains Lavery.

Once the software update has safely landed in Perseverance’s hands, it is finally passed along to Ingenuity via the Helicopter Base Station, which Lavery says is a “dedicated controller in the rover which collects, stores, and configures data communications between the rover and the helicopter.”

And then, finally, Ingenuity can install the software update to its computers and reboot with new pep in its step. 

Lavery says that this kind of real-time problem solving is not unexpected for a technology like Ingenuity, but if all goes according to plan this new update should be all Ingenuity needs to continue preparing for what will be the first “first powered, controlled flight on another planet.” 

NASA doesn’t yet have a hard date of when to expect Ingenuity to be back up and running, but plans to set a new flight date the week of April 18th.