Ingenuity will fly to Mars with open source software

Ingenuity is the newest component of the MARS 2020 mission. And not only because it is the first human device to fly over the surface of Mars, but because of its open source software (the first time it is used on Mars) and by a hardware engine used massively in smart phones.

Perseverance’s successful landing on the red planet is the big news in rocket science so far this year. The mission is key to the arrival of human beings on Mars and the potential subsequent colonization process. Perseverance is the star of the mission as the most advanced rover ever created by man and as a mobile science laboratory in search of microbial life.

In addition to seven main instruments, the rover carries another unique component, Ingenuity. Although it is not designed to support the main scientific mission and is purely a technology demonstration, it can be very important for later missions. It is a drone weighing two kilograms and 1.2 meters in size, which if everything goes as planned will deploy its solar panels to charge its batteries, separate from Perseverance and fly over Mars.

It carries two cameras that will take images in the skies of the red planet, although its objective is not scientific. Its importance lies in that it will be the first time such an air vehicle has been deployed to a planet outside of Earth. Mars has an atmosphere only one-hundredth the density of Earth’s air and only one-third the gravity of Earth, but scientists say it won’t be an easy task. If it can demonstrate that flying on Mars is possible, it will open the way to other types of exploration with other drones of greater dimensions and possibilities.

Ingenuity: Linux and a Snapdragon SoC

An interview by NASA software engineer Tim Canham with IEEE Spectrum has put us on the trail of the details of the software and hardware of this drone. And it is significant because it is the first time that the agency use open source software on the Martian robotic missions and also the first time Linux arrives on Mars.

The previous Rovers and the current Perseverance use the proprietary VxWorks operating system from Wind River Systems. The thing is, Ingenuity uses hardware based on Qualcomm’s Snapdragon 801 SoC and they didn’t have a VxWorks version for this chip. Instead it will fly using a combination of Linux and a program based on the frame of Open Source F´ created at the Jet Propulsion Laboratory (JPL).

This software is powered by open source components that enables rapid development and deployment of spaceflight and other embedded software applications. F ‘has been successfully implemented in various space applications many times before. It is designed, but not limited to, small-scale spaceflight systems such as CubeSats, SmallSats, and now an autonomous helicopter on Mars.

As for the Ingenuity hardware, what to tell you. It is a Qualcomm chipset that hundreds of millions of users have used on our phones on Earth. NASA’s bet is to use standard commercial hardware (COTS) “widely available.” It is customized for the drone and, for example, its working frequency is 500 Hz, infinitely lower than how it works on a smartphone.

The use of older hardware is common at NASA. These custom processors require years of design and testing work before being certified for space flight. To get an idea, NASA’s newest general-purpose processor is a variant of the ARM A53 that you surely remember from the Raspberry Pi 3.


Do it yourself…. “It’s kind of a win for Open Source, because we’re flying an open source operating system and open source flight software framework and commercial parts that you can buy from a store if you want to do it yourself one day,” explains the NASA engineer.

Of course, NASA uses Linux and open source software massively in space research. The agency has released more than 500 projects under its Open Source license and almost before concepts such as free software were articulated, it had already shared much of its code freely under the COSMIC program.

In fact, NASA started the Linux monopoly on supercomputers with the first Beowulf deployed at the Goddard space flight center. It used 16 Intel 486DX processors and 10 Mbps Ethernet, and while its speed was very limited compared to current ones, it cost only a few thousand dollars and proved that supercomputers could be built on a budget and Linux. Now, Ingenuity aims to demonstrate that great results can be achieved using inexpensive commercial hardware combined with Linux and open source software.