# F Prime — NASA Flight Software Framework for Embedded Systems > Component-based flight software and embedded systems framework developed by NASA JPL. Used on missions like Mars Helicopter Ingenuity, it provides reusable components for commanding, telemetry, and fault protection. ## Install Save in your project root: # F Prime — NASA Flight Software Framework for Embedded Systems ## Quick Use ```bash pip install fprime-tools fprime-util new --project MyProject cd MyProject fprime-util generate fprime-util build fprime-util gds ``` ## 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. ## Sources - https://github.com/nasa/fprime - https://nasa.github.io/fprime/ --- Source: https://tokrepo.com/en/workflows/asset-de7984d6 Author: AI Open Source