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.

Image Credit: CADRE development model rovers, NASA/JPL-Caltech
Versatility is Key
F Prime supports a wide variety of embedded applications:
-
Flight systems, large or small
-
Flight instruments and sensors
-
Flight system deployables
(like planetary rovers, landers, or even helicopters!) -
Flight-like simulation and testbed development
-
Software technology development
for intended flight infusion
The Four Elements of F Prime


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)


C++ Framework
- Enables the development of applications following the F’ architecture
- Provides basic features such as message queues, threading, and operating system abstraction


Component Library
- Provides generic components for common capabilities, e.g., command dispatch and memory management
- Usable without modification in new software projects


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