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.
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
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:
-
Laser Manager Application - Tracks state and drives both beacon and transmission lasers
-
FSM Manager Application - Performs calibration of, keeps track of current state of, and commands the FSM
-
Quadrant-Photodiode Manager Application - Processes signals from the Quadrant-Photodiode (QPD) and provides necessary transformations of the data for other applications
-
PAT Application - Intakes data from other applications and orchestrates the PAT sequence
-
FPGA Manager Application - Handles laser-modulation FPGA I/O and telemetry
-
Data-Collection Application - Logs Payload data for post-pass down-link and analysis
Figure 2: Payload Controller Application Architecture
NASA Provided cFS Applications
PULSE-A utilizes several NASA-provided cFS applications that provide essential system services:
-
Checksum Application - Ensures onboard memory integrity through CRC calculations
-
CFDP Application - Provides CCSDS File Delivery Protocol services
-
Data Store Application - Stores software bus messages in files
-
File Manager Application - Provides onboard file system management services
-
Health and Safety Application - Monitors application health and provides watchdog services
-
Housekeeping Application - Builds and sends combined telemetry messages
-
Limit Checker Application - Monitors telemetry data against threshold limits
-
Memory Dwell Application - Monitors memory addresses accessed by CPU
-
Memory Manager Application - Provides memory loading and dumping capabilities
-
SBN Application - Connects cFE Software Bus to other buses
-
Stored Commands Application - Manages autonomous command sequences
Related Documentation
-
cFS Software Bus - Software bus documentation
-
SBN Application - Software Bus Network bridge between instances