Banner Image: Ingenuity Mars Helicopter, Credit: NASA/JPL-Caltech

Our Motivation

We created F Prime to address new challenges we’ve been facing in flight software development, shaped in large part by the proliferation of small scale flight systems like CubeSats. We now need to support more flight missions than ever before along with a growing variety of processors and operating systems. We need to accommodate tighter cost constraints and shorter development schedules that accompany missions with increased risk tolerances. Our approach to flight software development had to adapt with greater emphasis on versatility, reusability, and portability without sacrificing reliability and performance. The result was F Prime.

Two full-scale development model rovers are tested in JPL's Mars Yard in August 2023 as part of NASA's CADRE tech demo. These tests confirmed the project's hardware and software can work together to accomplish key goals.

Image Credit: CADRE development model rovers, NASA/JPL-Caltech

Versatility is Key

F Prime supports a wide variety of embedded applications:

  • Icon of a drone with camera Icon of a drone with camera

    Flight systems, large or small

  • Icon of a camera Icon of a camera

    Flight instruments and sensors

  • Icon of a drone Icon of a drone

    Flight system deployables
    (like planetary rovers, landers, or even helicopters!)

  • Icon of a server Icon of a server

    Flight-like simulation and testbed development

  • Icon of a computer monitor with lines, a gear, and code symbol Icon of a computer monitor with lines, a gear, and code symbol

    Software technology development
    for intended flight infusion

The Four Elements of F Prime

Icon of a computer showing two gears inside Icon of a computer showing two gears inside

Software Architecture

  • Defines modular components with well-defined interfaces that communicate over ports (more info)
  • Enables rapid development, portability, high performance, reusability, analyzability, testability
  • Supports running with or without an operating system (useful for executing on low power/low performance microcontrollers)
Icon of file with a C++ label underneath Icon of file with a C++ label underneath

C++ Framework

  • Enables the development of applications following the F’ architecture
  • Provides basic features such as message queues, threading, and operating system abstraction
Icon of a component Icon of a component

Component Library

  • Provides generic components for common capabilities, e.g., command dispatch and memory management
  • Usable without modification in new software projects
Icon of a wrench and screwdriver crossed Icon of a wrench and screwdriver crossed

Tool Suite

  • Provides tools for specifying components and connections, automatically generating code
  • Provides tools for flight software unit and integration testing, including a lightweight ground data system
  • Dramatically improves software development productivity

F´ Is Flight-Proven

1 / 5
NEA Scout spacecraft after de-integration from hot box
NEA Scout
Credit: NASA MSFC, EMMETT GIVEN
2 / 5
This artist's concept depicts a small rover – part of NASA's CADRE (Cooperative Autonomous Distributed Robotic Exploration) technology demonstration headed for the Moon – on the lunar surface.
CADRE Rover
Credit: NASA/JPL-Caltech, Motiv Space Systems
3 / 5
This artist's concept shows the Lunar Flashlight spacecraft, a six-unit CubeSat designed to search for ice on the Moon's surface using special lasers.
Lunar Flashlight
Credit: NASA/JPL-Caltech
4 / 5
An artist's concept of NASA's Ingenuity Mars Helicopter flying through the Red Planet's skies.
Ingenuity Mars Helicopter
Credit: NASA/JPL-Caltech
5 / 5
A view of the removal of the RapidScat Nadir Adapter from the SpaceX-4 Dragon trunk and installation of the adapter onto the Columbus Exposed Facility Unit (EFU).
ISS-RapidScat
Credit: NASA JSC, Alexander Gerst

View More F’ Projects