This is a curated list of cFS links, apps, tools, documentation, training, misions/projects. The goal is to have a one stop shot for new and experienced users to find sources for cFS.
Note: While NASA's cFS is under active development, it appears some cFS repos are not in active development or are clearly deprecated. Since there are not a ton of cFS resources on the Internet, I have opted to include those in this list for now.
- Awesome core Flight System (cFS)
- NASA cFS Home - NASA's homepage to cFS
- 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 enivronment with cFS, COSMOS and NOS3 simulator
- OpenSatKit - Includes cFS, COSMOS Ground System and the 42 Simulator.
- CFS-101 - Note that this training is deprecated but it is a core training provided by NASA.
- 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.
- CS - The Checksum (CS) application is used for for ensuring the integrity of onboard memory.
- 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.
- DS - The Data Storage (DS) application is used for storing software bus messages into files.
- DR - The Diagnostic Reasoner application is used for fault detection and fault isolation.
- 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 Healthy 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.
- Skeleton App - A bare-bones cFS application
- berry_imu - Core Flight System app that interfaces to the Ozzmaker Berry IMU over a Raspberry Pi I2C interface.
- gpio_demo - Example app controlling a GPIO pin that can be used as a starting point for more sophisticated apps.
- lora - Long Range (LoRa) radio communication tech demo app using a Durand/Packard 2400 MHz link.
- lora_rx - Long Range (LoRa) Receive app for a tech demo of a Durand/Packard 2400 MHz link.
- lora_tx - Long Range (LoRa) Transmit app for a tech demo of a Durand/Packard 2400 MHz link.
- pi_iolib - cFS library providing an interface to Raspberry Pi peripherals
- rpi_btn - Raspberry Pi app demonstrating how to interface with a button.
- sx128x - An SX1280 transceiver library design to be used on a Raspberry Pi.
- 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.
- tbl_sat - Raspberry Pi app used in the Table Sat kit.
- tplug_web - Serves as an example for using JMSG_MQTT to interface with a web app via an MQTT broker.
- 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 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.
- LRO - Lunar Reconnaissance Orbitor
- GPM - Global Precipitation Measurement
- MMS - Magnetospheric Multiscale
- PSP - Parker Solar Probe
- Artemis II Orion - Similar use as Artemis I including camera controllers and backup flight software.
- 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