OpenSatKit core Flight System (cFS) starter kit

cFS Community

The cFS is a collaborative community. NASA provides the open source cFS Framework and community members, including NASA, provide components and distributions.

cFS Product Model

There are multiple ways to participate in the online cFS community:

cFS Platforms

Name/Link Overview
Embedded Flight Systems - Aitech Combines Aitech’s SBC and optimized SP0-S drivers with EFSI’s Linux distribution.

cFS Applications & Libaries

Name/Link Overview
CCSDS File Delivery Protocol Transmits and receives files using the CFDP standard protocol defined in the CCSDS 727.0-B-4 Blue Book. The CF app sends and receives file information and file-data using Protocol Data Units (PDUs) over the cFE’s software bus.
Checksum The CS application is used for ensuring the integrity of onboard memory. CS calculates Cyclic Redundancy Checks (CRCs) on the different memory regions and compares the CRC values with a baseline value calculated at system start up. 
Command Ingest Reads commands from an input device using the Input-Output Library and sends the commands on the software bus.
Data Storage Stores software bus messages into user defined files.
External Code Interface Software abstraction layer that allows the interfacing of externally generated mission-specific code to a cFS app via a generic set of wrapper code. The ECI enables direct integration of heritage or auto-generated code without the need for hand-written interface code.
File Manager Provides a ground interface for onboard directory and file management services.
Health & Safety Provides onboard status assessment with Application Monitoring, Event Monitoring, Hardware Watchdog Servicing, Application Execution Counter Reporting (optional), and CPU Aliveness Indication (via UART).
Housekeeping Builds and sends combined telemetry messages (from individual system applications) to the software bus for routing.
I/O Library Collection of I/O protocol libraries used by apps such as command ingest and telemetry output.
Limit Checker Used for fault detection and correction by monitoring telemetry data and executing stored command scripts when limits exceeded.
Memory Dwell The MD application monitors memory addresses accessed by the CPU. This task is used for both debugging and monitoring unanticipated telemetry that had not been previously defined in the system prior to deployment.
Memory Manager Provides the ability to load and dump system memory via command parameters, as well as, from files. Supports symbolic addressing.
Scheduler Generates software bus messages at user-defined time intervals. When apps synchronize their execution with the scheduled messages the system can operate in a Time Division Multiplexed (TDM) fashion with deterministic behavior.
Simulink Interface Layer The Simulink Interface Layer (SIL) is an extension of the Simulink Coder generation tool which allows it to generate code which is compatible with the cFS ECI (External Code Interface). 
Stored Command Manage absolute and relative time tagged command sequences that are executed upon command.
Telemetry Output Outputs software bus telemetry message to an output device using the Input-Output Library.

cFS Tools

Name/Link Overview
cFS Command & Data Dictionary Manages command and telemetry definitions using a spreadsheet-style user interface and a PostgreSQL database. Supports multiple import-export file formats and scripting languages for extensive user customization.
COSMOS CFDP Engine COSMOS add on that provides CCSDS File Delivery Protocol (CFDP) Class 1, 2 and immediate mode file transfers.

cFS Distributions

Name/Link Purpose Overview
cFS Framework-101 cFS Framework training package This is a training tool for individuals to learn how to develop software with NASA-developed Core Flight software (CFS) framework. No agreement is necessary through this catalog. Software is available at open source site.
NASA Goddard cFS Build Initial cFS build for a developer or a project This repository contains the core Flight Executive and a number of submodules including OSAL, example “lab” applications, and NASA GSFC mission-ready applications. This distribution has been compiled/linked but has not been verified as an operational system.
NASA Operational Simulator for Small Satellites (NOS3) Provides a complete cFS system designed to support satellite flight software development throughout the project life cycle. Includes
•42 Spacecraft dynamics and visualization, NASA GSFC
• cFS – core Flight System, NASA GSFC
• COSMOS – Ball Aerospace
• ITC Common – Loggers and developer tools, NASA IV&V ITC
• NOS Engine – Middleware bus simulator, NASA IV&V ITC
OpenSatKit (OSK)

Provides a complete cFS system to help train new cFS developers and provide an initial cFS platform for a project.

The kit combines three open source tools to achieve these goals:

• cFS – core Flight System, NASA GSFC
• COSMOS – command and control platform for embedded systems, Ball Aerospace
• 42 dynamic simulator, NASA GSFC

cFS Training

For information about the NASA Goddard Space Flight Center cFS training, please send an email to OSK Support.

Community Events

The cFS team holds an annual cFS Workshop in conjunction with the FSW Workshop led by the Johns Hopkins Applied Physics Lab and NASA’s Jet Propulsion Laboratory. We discuss current programmatic/technical status and strategic plans. There are also several technical cFS presentations throughout the workshop. Previous workshop presentations can be found at FSW Workshop.

cFS Technology Efforts

If you would like your technology effort listed here, please send an email to OSK Support.