Flight Software Architecture for Student-Built CubeSats Using F Prime and Zephyr RTOS
In this project, we present the design and implementation of a robust Flight Software (FSW) architecture for a student-developed CubeSat mission. Built upon NASA JPL’s open-source F Prime (F’) flight framework and the Zephyr Real-Time Operating System (RTOS), our architecture supports real-time operations, hardware abstraction, and modular mission components suitable for deployment in orbit. F Prime provides a component-based architecture with proven flight heritage from missions like ASTERIA and Ingenuity, allowing rapid development and reuse of core flight functionalities. Combined with Zephyr RTOS, the system supports precise task scheduling, deterministic execution, and low-level hardware interface management, essential for operating in embedded space environments. A project-specific Hardware Abstraction Layer (HAL) bridges the gap between F Prime’s component model and the Zephyr kernel, enabling seamless driver development and peripheral integration. Our architecture layers include Hardware: CubeSat subsystems including the On-Board Computer (OBC), Attitude Determination and Control System (ADCS), Electrical Power System (EPS), transceiver, and sensors. HAL: Project-specific abstraction of GPIO, UART, and I2C peripherals. Zephyr RTOS: Real-time kernel for scheduling and device control. F Prime: Modular component framework for mission logic and system orchestration. Mission specific components: EPSController, SafeModeController, ADCSController, PayloadController, and TransceiverInterface. The FSW design supports multiple conditional based software modes, Initialization, Idle, Transmit, Experiment, and Safe Mode. Each managed through clearly defined component interactions. Idle Mode serves as the main operational phase, conserving power while awaiting commands. Transmit Mode facilitates downlink/uplink with the ground station using AX.25 protocol, incorporating a full software framing stack including deframing, packetization, and routing. Safe Mode is autonomously triggered on detection of abnormal conditions (e.g., health failures or battery undervoltage), isolating faults and executing fallback sequences managed via CmdSequencer and FatalHandler. Flight software logic is implemented through both F Prime standard components (e.g., CmdDispatcher, Health) and custom mission specific components developed by the student team. These components are tightly integrated and tested via Software-in-the-Loop (SIL). This architecture demonstrates how students can leverage open-source, flight-proven frameworks to build scalable and maintainable CubeSat software systems. By abstracting low-level hardware access and implementing reusable components, our approach reduces development complexity while increasing reliability. It also enables extensibility for future missions, supporting new modalities and hardware through simple integration of new F Prime components. Ultimately, this work highlights a replicable model for university programs to design end-to-end CubeSat flight software leveraging professional aerospace tools, preparing students for both industry and research missions.