The Core Flight Software System (cFS) has reduced the costly and time-consuming process of developing software for spaceflight missions
cFS: A Portable and Extendible Framework for Developing Flight Software
The core Flight System (cFS) is a portable and extendible framework for developing flight software. The framework defines a layered architecture that provides a hardware and operating system independent application runtime environment. The framework and applications use compile-time and run-time configuration parameters to tailor the cFS to meet a wide range of mission requirements.
Developing spacecraft flight software is a complex and challenging task. There are a multiple of processor boards and operating systems that can host the FSW. There are many beneficial applications that can help spacecraft operations and maintenance. These applications may not be obvious to engineers and scientist new to space systems. The spacecraft FSW must be extremely reliable while performing many simultaneous tasks that may be competing for shared resources. A typical spacecraft FSW system may have 20 to 30 applications.
As a result, the cFS was designed to be portable across hardware/operating system platforms. The same application code can run on different platforms. The cFS includes a core set of applications that provide functionality common to most spacecraft regardless of size. Further, the architecture facilitates a user community that can extend the cFS functionality with user platform abstractions and application contributions.
Developed by NASA and Released Open Source – History
The cFS was initially developed by NASA’s Goddard Space Flight Center (GSFC) over many years based on a rich heritage of successful missions; its components were incrementally developed and publicly released. The core Flight Executive (cFE), including the platform abstraction layer, was first used on the Lunar Reconnaissance Orbiter (LRO), launched in 2009, and the initial suite of cFS applications was first used on the Global Precipitation Measurement (GPM) spacecraft, launched in 2014. The entire cFS software suite was released as open source in January 2015.
Designed for Robust Portability across Embedded Platforms – Heritage
Although the cFS was incrementally developed and released, the initial effort started with a team of senior engineers that performed a structured heritage analysis of missions covering more than a decade. The diversity of the heritage missions (single vs. redundant components, varying orbits, different operational communication scenarios, etc.) provided valuable insights into what drove FSW commonality and variability across the missions. The team took the entire FSW life-cycle into consideration, including in-orbit FSW sustaining engineering, as they performed their analysis. They identified system and application level variation points to address the range and scope of the flight systems domain. A primary goal was to enable portability across embedded computing platforms and to implement different end-user functional needs without the need to modify the source code.
NASA develops and maintains the cFS Framework. The framework has two layers: the platform abstraction layer and the core Flight Executive (cFE). The platform abstraction layer contains the Operating System Abstraction Layer (OSAL) and the Platform Support Package (PSP). Together they define an Application Programming Interface (API) that enables porting the cFE to different processor/OS combinations. The cFE provides services for applications through its API and an application run-time environment.
NASA cFS Framework
Organizations augment the NASA framework with applications and tools to create cFS distributions. They may also port the framework to a platform beyond those supported by NASA.
NASA produces the cFS Framework and component specifications as shown below. The cFS community members serve as component (applications, platforms, and tools) suppliers and/or cFS distributors. Component suppliers can be anyone who develops components and makes them available to the community. The cost and licensing are up to the supplier. Distributors integrate the cFS Framework and components into a cFS distribution. The cost and licensing are up to the distributors. Distributions are not limited to the cFS and may include other components such as a command and telemetry ground system.
cFS Community Product Roles