Core Flight System (cFS)

What is cFS?

The NASA Core Flight System (cFS) is a platform-independent, open-source, modular framework for flight software development created and maintained by the Goddard Space Flight Center. The framework has extensive flight heritage, including successful use on previous CubeSat missions, and has been successfully implemented on various hardware platforms including the BeagleBone Black.

Core Architecture

cFS is built around several key components that work together to provide a robust flight software environment:

Operating System Abstraction Layer (OSAL)

The OSAL provides an abstract, standardized environment for software applications, allowing the same code to run on different operating systems and hardware platforms without modification.

Platform Support Package (PSP)

The PSP handles the low-level hardware-specific operations, providing a consistent interface for different hardware platforms while isolating the application code from hardware details.

Core Flight Executive (cFE)

The cFE provides the core services that all applications rely on:

  • Software Bus - Interprocess messaging system

  • Timekeeping - System time management

  • Event Logging - System event recording and management

  • Application Lifecycle Management - Starting, stopping, and monitoring applications

  • Scheduling - Task scheduling and execution

  • Table Services - Configuration table management

  • File Services - File system operations

Communication Model

Applications in cFS communicate through the software bus using a pipe-based publish-subscription model:

  • Publishing - Applications can publish CCSDS messages to pipes

  • Subscribing - Applications can subscribe to pipes to receive messages

  • Message Routing - The software bus handles message routing between applications

  • Standardized Format - All messages follow CCSDS standards for interoperability

This model provides several benefits:

  • Loose Coupling - Applications don’t need to know about each other directly

  • Scalability - Easy to add new applications without modifying existing ones

  • Reliability - Built-in error handling and message queuing

  • Standards Compliance - CCSDS compliance ensures compatibility with ground systems

Development and Testing

cFS provides comprehensive development and testing tools:

  • Mock Ground Systems - Simulate ground station operations

  • Unit Testing Framework - Test individual applications in isolation

  • Integration Testing - Test multiple applications working together

  • Simulation Environment - Test flight software behavior before deployment

Benefits for Flight Software Development

Using cFS provides several key advantages:

Reduced Development Time

The framework handles common flight software tasks, allowing developers to focus on mission-specific logic rather than infrastructure code.

Proven Reliability

With extensive flight heritage, cFS has been tested in real space environments and proven to be reliable.

Modularity

Applications can be developed, tested, and deployed independently, making the system easier to maintain and upgrade.

Platform Independence

The same application code can run on different hardware platforms with minimal changes.

Open Source

Being open source allows for customization and community support while avoiding vendor lock-in.

PULSE-A Implementation

For PULSE-A, cFS provides the foundation for our dual-computer architecture. The framework’s modular design allows us to:

  • Run different applications on the OBC and Payload Controller

  • Maintain consistent communication between both computers

  • Ensure system reliability through proven cFS components

  • Focus development efforts on mission-specific applications like the PAT sequence

The cFS framework enables us to achieve high data throughput and reliability while maintaining the flexibility needed for our laser communication mission.

Application Architecture

PULSE-A Developed Applications

OBC Applications

The OBC runs the following custom applications:

  • ADCS Manager Application - Monitors the current satellite orientation and packages messages to match ADCS standards

  • GPS Manager Application - Interfaces with the GNSS receiver to track satellite position and notifies other applications as the vehicle reaches ground-station overpasses

  • Power Manager Application - Monitors the PDU and manages power distribution and thermal control

  • Payload Manager Application - Uses NASA’s SBN to track the Payload Controller’s state and relay key events during the PAT sequence

  • Radio Manager Application - Manages radio state and queues and transmits downlink packets

  • Deployment Application - Sequences deployable actions after release and instructs the ADCS to begin detumbling

  • Communication Manager Application - Serves as the primary interface to the CAN bus and backup I2C bus, preventing message collisions and handling queuing and prioritization

  • Watchdog Monitor Application - Sends heartbeats to the external watchdog timer and exchanges heartbeats with the Payload Controller to ensure both computers remain operational, enabling fail-over if the OBC becomes unresponsive

OBC Lollipop Diagram

Figure 1: OBC Application Architecture

Payload Controller Applications

The Payload Controller runs a separate instance of cFS. It has both custom Payload-associated applications as well as essential applications from the OBC, allowing it to act as a backup system in the case of OBC failure:

Payload Lollipop Diagram

Figure 2: Payload Controller Application Architecture

NASA Provided cFS Applications

PULSE-A utilizes several NASA-provided cFS applications that provide essential system services: