Introduction
F Prime (F') is an open-source component-based framework for building flight software, developed by NASA's Jet Propulsion Laboratory. It powers real spacecraft including the Mars Helicopter Ingenuity and multiple CubeSat missions, providing a proven architecture for safety-critical embedded systems.
What F Prime Does
- Provides a component-based architecture where each software module runs independently with defined port interfaces
- Generates boilerplate C++ code from XML or FPP model definitions, reducing manual coding errors
- Includes a Ground Data System (GDS) web UI for commanding, telemetry display, and log analysis
- Supports deployment to embedded Linux targets, bare-metal microcontrollers, and desktop environments
- Ships with reusable flight-heritage components for commanding, sequencing, file management, and health monitoring
Architecture Overview
F Prime uses a component-and-port model where components communicate through typed ports. Developers define components, commands, events, telemetry channels, and parameters in FPP (F Prime Prime) modeling language files. The code generator produces C++ classes with serialisation and threading support. A topology file wires components together at the system level.
Self-Hosting & Configuration
- Install via pip:
pip install fprime-tools fprime-gds - Requires Python 3.8+, CMake, and a C++ compiler (GCC or Clang)
- Cross-compilation supported for ARM targets like Raspberry Pi and custom embedded boards
- Configuration is done through FPP model files and CMake build settings
- The GDS web interface launches on localhost for ground-station operations
Key Features
- Flight-proven on actual NASA missions including Mars Helicopter Ingenuity
- FPP modeling language generates type-safe C++ code from high-level definitions
- Built-in unit testing framework for component-level verification
- Portable across Linux, macOS, Raspberry Pi, and bare-metal ARM targets
- Web-based Ground Data System for real-time telemetry and commanding
Comparison with Similar Tools
- ROS 2 — robotics middleware with pub/sub messaging; F Prime targets spacecraft-grade reliability
- Zephyr RTOS — real-time operating system kernel; F Prime is a higher-level application framework
- cFS (Core Flight System) — NASA Goddard's flight software platform; F Prime is more lightweight and uses code generation
- PX4 — drone autopilot stack; F Prime is general-purpose flight software, not vehicle-specific
FAQ
Q: What missions use F Prime? A: Mars Helicopter Ingenuity, ASTERIA CubeSat, and several other NASA JPL missions.
Q: Can I use F Prime for non-space projects? A: Yes. It works well for any embedded system needing reliable component-based architecture, including robotics and IoT.
Q: What is FPP? A: F Prime Prime is a domain-specific modeling language that generates C++ code, port definitions, serialisation, and test harnesses.
Q: Does it require a specific RTOS? A: No. F Prime runs on Linux, macOS, bare-metal, and can integrate with various RTOSes.