fprime
F´ - A flight software and embedded systems framework
NASA's open-source framework for building spacecraft flight software using small, reusable components, battle-tested on real space missions and available for any embedded system.
F Prime (written as F') is an open-source software framework made by NASA's Jet Propulsion Laboratory for building the code that runs inside spacecraft. It has been used on real missions, including CubeSats, small satellites, and scientific instruments that have actually flown in space. The framework is now publicly available for anyone to use, not just NASA teams.
The core idea behind F Prime is that flight software should be broken into small, self-contained building blocks called components. Each component has clearly defined inputs and outputs, which makes it easier to develop, test, and swap out individual pieces without rewriting everything else. The framework provides the underlying machinery that lets these components communicate, including message queues and background threads, so developers can focus on what their software needs to do rather than how to coordinate it.
Beyond the runtime pieces, F Prime includes tools for describing components in a model and then automatically generating the boilerplate C++ code from that model. There is also a ground-data system for monitoring and commanding a running application, plus testing tools that work at both the individual component level and the full system level.
Setting it up requires a Linux, macOS, or Windows (via WSL) machine with Python 3.10 or newer and a C++ compiler. Installation starts with a single pip command to get the bootstrap tool, and then a second command to create a new project. The project website hosts tutorials, a user manual, and a community discussion forum. Active maintainers from several organizations handle ongoing development and security oversight.
The project is tailored toward small-scale spacecraft but the README notes it is not limited to space applications. Any embedded system where reliability and testability matter could use the same component-based approach. With over 10,000 GitHub stars and a track record on actual space hardware, it represents a mature option for teams building software that has to work right the first time.
Where it fits
- Build flight software for a CubeSat or small satellite using NASA's proven component-based architecture.
- Create testable embedded systems software where each piece can be developed and verified independently.
- Monitor and command a running embedded application using F Prime's built-in ground-data system.
- Use the same framework that flew on real space hardware to build reliable software for any critical embedded system.