What do small satellites called CubeSats and the NASA Ingenuity Mars Helicopter have in common? It turns out that open-source software developed for CubeSats, small spacecraft, and instruments is being used by the Ingenuity Mars Helicopter.
NASA recently provided some insight into F Prime, it’s history and uses.
When NASA’s Ingenuity Mars Helicopter hovered above the Red Planet April 19 on its maiden voyage, the moment was hailed as the first instance of powered, controlled flight on another planet. Figuring out how to fly on Mars, where the air is thin but gravity is about a third of that on Earth, took years of work. Along with the challenge of developing a craft that was up to the task, the mission needed software to make the unprecedented flights possible.
So they turned to F Prime, a reusable, multi-mission flight software framework designed for CubeSats, small spacecraft, and instruments. The program was initially developed in 2013 by a team led by Tim Canham at NASA’s Jet Propulsion Laboratory in Southern California with the aim of creating a low-cost, portable, pliable software architecture option that would allow components written for one application to be reused easily in other applications and run on a range of processors.
In 2017, the team pushed for F Prime to be released as open-source, meaning anyone could freely access the software’s source code, allowing external collaborators, universities, and the general public to use the framework on their own projects. It is one of hundreds of codes NASA makes available to the public for free, both as open-source or through its software catalog.
“F Prime has enabled a lot of goals we’ve had at JPL to design a truly reusable multi-mission flight architecture with the added bonus of the open-source collaboration and visibility afforded by the Mars Helicopter project,” Canham said. “It’s kind of an open-source victory, because we’re flying an open-source operating system and an open-source flight software framework, and flying commercial parts that you can buy off the shelf, if you wanted to do this yourself someday.”
Before Ingenuity, F Prime (also written as F’) had already been put through its spacecraft paces, operating successfully aboard the ISS RapidScat scatterometer instrument on the International Space Station since 2014 and JPL’s ASTERIA CubeSat in 2017. Looking forward, F Prime is scheduled to run on projects including NASA’s Lunar Flashlight CubeSat, which will look for surface ice in the Moon’s craters; the agency’s Near-Earth Asteroid Scout CubeSat, which will map an asteroid; and potentially JPL’s Ocean Worlds Life Surveyor instrument, which would help search for water-based life in our solar system.
Aadil Rizvi, flight software lead for Lunar Flashlight and NEA Scout at JPL, says F Prime provides an out-of-the-box solution for several flight software services, such as commanding, telemetry, parameters, and sequencing for the spacecraft. There’s also a sort of “auto-coding” tool that makes F Prime highly portable for use across missions.
“This makes it quite easy to drop in a software component from something like Mars Helicopter into another mission’s flight software such as Lunar Flashlight or make the component available for open-source use by anyone else using F Prime,” Rizvi said. “And it’s pretty cool that a significant portion of software used on the Mars Helicopter is identical to software on another spacecraft going to the Moon, or an asteroid, or sitting on a student’s desk.”