# NASA F Prime — Flight Software Framework for Embedded Systems > F Prime is an open-source component-driven framework developed by NASA JPL for building flight software and embedded systems. It powers missions including the Mars Ingenuity helicopter. ## Install Save as a script file and run: # NASA F Prime — 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 ``` ## Introduction F Prime (F´) is a component-based software framework created by NASA's Jet Propulsion Laboratory for rapid development of flight and embedded software. It has flown on multiple space missions, including the Mars Ingenuity helicopter, proving its reliability in demanding environments. ## What F Prime Does - Provides a component architecture where each unit communicates via typed ports - Auto-generates boilerplate code from XML or FPP model definitions - Includes a ground data system (GDS) for commanding and telemetry display - Supports cross-compilation for ARM, x86, and custom embedded targets - Ships with a unit and integration testing framework built into the component model ## Architecture Overview F Prime uses a component-and-port model: each software component exposes typed input and output ports. A topology XML file wires components together. The framework auto-generates C++ base classes and serialization code from model definitions written in FPP (F Prime Prime), a domain-specific modeling language. ## Self-Hosting & Configuration - Install fprime-tools via pip and bootstrap a project with fprime-util new - Define components using FPP modeling language files - Generate and build with fprime-util generate and fprime-util build - Deploy the GDS locally for commanding and telemetry via a web browser - Cross-compile using CMake toolchain files for target hardware ## Key Features - Flight-proven on NASA missions including Mars 2020 and ASTERIA - FPP modeling language reduces boilerplate and enforces interface contracts - Built-in ground data system with web-based telemetry and command interface - Platform abstraction layer supports Linux, macOS, VxWorks, and bare-metal targets - Integrated unit testing and integration testing harnesses ## Comparison with Similar Tools - **ROS 2** — ROS 2 targets robotics with a pub/sub model; F Prime uses a port-based component model designed for constrained flight systems - **cFS (NASA)** — cFS is another NASA framework with a message-bus architecture; F Prime favors direct port connections and lighter resource use - **Zephyr RTOS** — Zephyr provides an OS kernel; F Prime is a software framework that can run on top of any OS or bare metal - **PX4** — PX4 focuses on drone autopilot; F Prime is a general embedded framework for any mission type ## FAQ **Q: What missions use F Prime?** A: F Prime has flown on Mars Ingenuity, ISS experiments, CubeSats, and multiple JPL technology demonstrations. **Q: What language is F Prime written in?** A: The framework is C++ with Python tooling. Component models are written in FPP, a dedicated specification language. **Q: Can F Prime run on a Raspberry Pi?** A: Yes. F Prime supports Linux on ARM, making it suitable for Raspberry Pi-based prototypes and educational projects. **Q: Is F Prime suitable for non-space projects?** A: Yes. Its component model and testing framework work well for any embedded or mission-critical application. ## Sources - https://github.com/nasa/fprime - https://nasa.github.io/fprime/ --- Source: https://tokrepo.com/en/workflows/asset-dd0ad6cc Author: Script Depot