A curated list of resources for NASA's Core Flight System (cFS) — the open-source flight software framework for spacecraft, instruments, and payloads.
NASA's Core Flight System (cFS) is a reusable flight software architecture that provides a portable, extendable platform and a suite of reusable applications, flown on missions ranging from CubeSats to flagship spacecraft.
Note: While NASA's cFS is under active development, some cFS repositories are no longer actively maintained or are clearly deprecated. Because there are relatively few cFS resources online, some of these are still included here for reference.
- Framework and Development Environments
- Apps
- Tools
- Ground Software
- Documentation
- cFS Spacecraft, Payloads and Projects
- NASA cFS Home - NASA's homepage to cFS.
- cFE - Core Flight Executive.
- OSAL - Operating System Abstraction Layer.
- PSP - Platform Support Package.
- NASA cFS Bundle - Initial build for a cFS system. Also primary GitHub home for cFS.
- cfs-basecamp - A lightweight environment to help learn cFS.
- nos3 - Small satellite environment with cFS, COSMOS and NOS3 simulator.
- OpenSatKit - Includes cFS, COSMOS Ground System and the 42 Simulator.
- pi-sat - A cFS distribution that can be run on a Raspberry Pi.
- rtems-cfs-demo - This is a Beaglebone Black RTEMS core Flight System demo.
- CF - The CF application provides CFDP CCSDS File Delivery Protocol services.
- CI - The Command Ingest (CI) application receives commands and forwards the command to the appropriate application over the software bus.
- CS - The Checksum (CS) application is used for for ensuring the integrity of onboard memory.
- DR - The Diagnostic Reasoner application is used for fault detection and fault isolation.
- DS - The Data Storage (DS) application is used for storing software bus messages into files.
- FM - The File Management (FM) application provides onboard file system management services.
- HK - The Housekeeping (HK) application is used for building and sending combined telemetry messages to the software bus for routing.
- HS - The Health and Safety (HS) application provides functionality for miscellaneous different monitoring, servicing and reporting.
- LC - The Limit Checking (LC) application monitors telemetry data, compares the values against predefined threshold limits and supports predefined responses.
- MD - The Memory Dwell (MD) application monitors memory addresses accessed by the CPU.
- MM - The Memory Manager (MM) application is used for the loading and dumping system memory.
- SBN - The Software Bus Networks (SBN) application connects the cFE Software Bus (SB) to other buses.
- SC - The Stored Command (SC) application allows a system to be autonomously commanded using sequences of commands that are preloaded.
- SCA - The Stored Absolute Command (SCA) application allows a system to be commanded 24 hours a day using sequences of absolute time tagged sequences.
- SCH - The Scheduler (SCH) application provides a method of generating software bus messages at pre-determined timing intervals.
- TO - The Telemetry Output (TO) application is responsible for transmitting telemetry to external destination(s) over transport devices(s).
- bc42_ctrl - Executes a 42 Simulator spacecraft control algorithm that has been ported from 42.
- bc42_intf - Provide an interface between a 42 Simulator socket and the cFS Software Bus.
- bc42_lib - Encapsulates 42 simulator data types and functions as a single cFS library.
- CI_LAB - This Command Ingest Lab (CI_LAB) application is a non-flight utility to send commands to the software bus.
- pl_sim - Payload simulator app that provides a ground interface to the payload simulator library (PL_SIM).
- pl_sim_lib - Payload simulator library that simulates a fictitious detector that provides text data.
- SCH_LAB - This lab application is a non-flight packet scheduler application for the cFS Bundle.
- TO_LAB - This lab application is a non-flight utility to downlink telemetry from the cFS Bundle.
- TVSIO - This application provides two-way communication between cFS's Software Bus Network (SBN) and Trick simulations.
- TVSIO Demo - A sample project for integrating TVS-IO into cFS.
- sc_sim - Simulate a simple spacecraft operational interface that exposes users to a remote operational interface.
- Sample App - This sample application is a non-flight example application implementation for the cFS Bundle.
- pi_iolib - cFS library providing an interface to Raspberry Pi peripherals.
- rpi_btn - Raspberry Pi app demonstrating how to interface with a button.
- jmsg_app - Serves as a ground command and telemetry interface for the JMSG_LIB.
- jmsg_lib - Provide tools for bi-directional translation between JSON text messages and cFS Software Bus binary messages.
- jmsg_mqtt - Provide a gateway between the cFS Software Bus messages and MQTT messages. The initial version supports predefined MQTT JSON payloads.
- jmsg_udp - Provide a gateway between the cFS Software Bus and JSON messages transmitted using UDP.
- mqtt_lib - The Eclipse Paho Embedded C MQTT Library ported to the core Flight System.
- pl_mgr - Example payload management app.
- CCDD - CFS Command and Data Dictionary Tool manages command and telemetry data for CFS and CFS applications.
- cFS-GroundSystem - Default ground system included with NASA's cFS.
- CTF - cFS Test Framework (CTF) provides cFS projects with the capability to develop and run automated test and verification scripts.
- elf2cfetbl - A ground utility to convert ELF to cFE binary tables for cFS.
- gen_msgids - A ground utility to Generate Message Ids used by cFE for cFS.
- SIL - Tools for generating CFS ECI-compatible code from Simulink models.
- tblCRCTool - A ground utility to generate binary table CRCs for cFS.
Not cFS but this list includes common ground software used with cFS.
- Trick - A common set of simulation capabilities and utilities to build simulations automatically.
- 42 - Simulator of spacecraft attitude, orbit dynamics, and environmental models.
- OpenC3 COSMOS - Open Source, Open Architecture - Command, Control and Communication. Based on Ball Aerospace COSMOS.
- Yamcs - Open-source software framework for command and control of spacecrafts, satellites, payloads, ground stations and ground equipment.
- Core Flight Software Projects on Orion Multi-Purpose Crew Vehicle (2018)
- Application of the Core Flight System to a Lunar Rover (2017)
- Future Standardization of Space Telecommunications Radio System with Core Flight System (2016)
- Lessons from 30 Years of Flight Software (2015)
- NASA's Core Flight Software - A Reusable Real-Time Framework (2014) - Includes cFS overview, Morpheus Lander case status, etc.
- The Road to the New Flight Software - Starting on page 33.
- Open Source Space - Linux Journal.
- cFE/CFS (Core Flight Executive/Core Flight System) (2008)
- cFS Overview
- Core Flight System (cFS) Training - cFS Draco (2024)
- Core Flight System (cFS) Training - cFS Caelum (2021)
- Core Flight System (cFS) Training (2020)
- Open Mission Stack Learn Page
- Open Source Core Flight System (cFS) Flight Software (FSW) Verification & Validation (V&V) Final Summary: IV&V Analysis Technical Report (2020)
- Verifying Architectural Design Rules of the Flight Software Product Line (2009)
The following projects are documented or reported as using cFS.
- GPM - Global Precipitation Measurement.
- LRO - Lunar Reconnaissance Orbiter.
- MMS - Magnetospheric Multiscale.
- PSP - Parker Solar Probe.
- Artemis II Orion - Similar use as Artemis I including camera controllers and backup flight software.
- Intuitive Machines Nova-C IM-2
- Intuitive Machines Nova-C IM-1
- Artemis I Orion - Used in camera controllers and backup flight software per NASA presentation: Core Flight Software Projects on Orion Multi-Purpose Crew Vehicle.
- Ascent Abort 2 (AA-2) - Used as primary flight control system per NASA presentation: Core Flight Software Projects on Orion Multi-Purpose Crew Vehicle.
- LADEE - Lunar Atmosphere and Dust Environment Explorer.
- Van Allen Probes (formerly RBSP)
- Project Morpheus - A full scale robotic lander used as a risk reduction test article.
Contributions are welcome! Please read the contribution guidelines first.