← Back to all projects

SATELLITE FLIGHT SOFTWARE ENGINEERING MASTERY

Space is the ultimate unfriendly environment for code. Once a CubeSat is deployed from a rocket's P-POD, there is no physical reset button. You face radiation-induced bit flips, extreme thermal cycles, and a strictly limited power budget.

Learn Satellite Software Engineering (CubeSats): From Zero to Flight Software Master

Goal: Deeply understand the constraints and architecture of Flight Software (FSW) for CubeSats. You will master orbital mechanics, power budget management, telemetry protocols (CCSDS), and Attitude Determination and Control Systems (ADCS) by building a high-fidelity simulator from first principles. By the end, you’ll understand why “space is hard” and how to write reliable software that survives in a vacuum 400km above Earth.


Why Satellite Software Matters

Space is the ultimate “unfriendly” environment for code. Once a CubeSat is deployed from a rocket’s P-POD, there is no physical “reset” button. You face radiation-induced bit flips, extreme thermal cycles, and a strictly limited power budget.

  • Reliability: A bug in your power management logic can permanently “brick” a $100,000 hardware stack.
  • Constraints: You are often working with ARM Cortex-M or MSP430 processors with kilobytes of RAM, not gigabytes.
  • Autonomy: With only 10-minute communication windows every 90 minutes, the software must decide how to save itself when things go wrong.
  • Legacy: The principles used in CubeSats are the same ones used by NASA’s Voyager and SpaceX’s Dragon.

Core Concept Analysis

1. The CubeSat Architecture (The “Stack”)

A CubeSat is a 10cm x 10cm x 10cm modular unit (1U). Its software is divided into specific subsystems that must communicate via narrow interfaces.

+---------------------------------------+
|           Flight Software (FSW)       |
+---------------------------------------+
|  [ADCS]    [EPS]    [COMMS]   [PAYLOAD]| <--- Subsystems
+---------------------------------------+
|         Command & Data Handling       | <--- The "Brain" (C&DH)
+---------------------------------------+
|           Real-Time OS / HAL          |
+---------------------------------------+
|        Microcontroller Hardware       |
+---------------------------------------+

2. The Orbital Environment & Mechanics

Satellites move according to Kepler’s Laws. Your software needs to know where it is to point its antenna at Earth or its solar panels at the Sun.

       Sun (Light/Power)
          \ | /
           \|/
            *
           / \
          /   \
    [Satellite] ----> Velocity (v)
        |
        |
        V
     ( EARTH )

Concept Summary Table

Concept Cluster What You Need to Internalize
Orbital State Machine The satellite must exist in discrete modes (Startup, Safe, Science, Comm).
Telemetry & CCSDS Data must be packetized and prioritized. Bits are expensive in space.
Power Management Energy is the “Hard Currency.” You cannot spend what you haven’t harvested.
FDIR Fault Detection, Isolation, and Recovery. The “Dead Man’s Switch” logic.
Timekeeping Spacecraft Time vs. UTC. Synchronization across subsystems is vital.

Deep Dive Reading by Concept

Space Mission Foundation

Concept Book & Chapter
Mission Overview “Space Mission Engineering: The New SMAD” by J. Wertz — Ch. 1: “Mission Geometry”
CubeSat Design “CubeSat Handbook” by Chantal Cappelletti — Ch. 2: “System Engineering”

Flight Software & Control

Concept Book & Chapter
FSW Architecture “Spacecraft Systems Engineering” by Fortescue — Ch. 11: “Data Handling”
ADCS Control “Fundamentals of Space Systems” by V. Pisacane — Ch. 8: “Attitude Control”
Power Systems “Spacecraft Systems Engineering” by Fortescue — Ch. 13: “Power Systems”

Project 1: The Space Packet Parser (CCSDS Protocol)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Alternative Programming Languages: Rust, C++, Python
  • Coolness Level: Level 4: Hardcore Tech Flex
  • Business Potential: 3. The “Service & Support” Model
  • Difficulty: Level 2: Intermediate
  • Knowledge Area: Telemetry / Binary Protocols
  • Software or Tool: Hex Editor / Bit-wise Logic
  • Main Book: “Spacecraft Systems Engineering” by Fortescue

What you’ll build: A robust parser for CCSDS Space Packets.

Why it teaches Satellite Engineering: Satellites send tightly packed bitfields. You’ll learn binary parsing at the metal level.


Project 2: The Flight State Machine (The Life Cycle)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Alternative Programming Languages: Rust, C++
  • Coolness Level: Level 3: Genuinely Clever
  • Business Potential: 1. The “Resume Gold”
  • Difficulty: Level 2: Intermediate

What you’ll build: The core control loop that manages “Modes” (STARTUP, SAFE, NOMINAL).


Project 3: EPS Power Budget Simulator (Energy Management)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: Python
  • Alternative Programming Languages: C (for embedded logic), Excel/Matlab
  • Coolness Level: Level 2: Practical but Forgettable
  • Business Potential: 2. The “Micro-SaaS / Pro Tool”
  • Difficulty: Level 1: Beginner
  • Knowledge Area: Electrical Engineering / Modeling
  • Software or Tool: Pandas / Matplotlib

What you’ll build: A simulation engine that calculates if your satellite will survive a 90-minute orbit. You’ll model Solar Panel intake (Insolation) vs Subsystem consumption.

Why it teaches Satellite Engineering: This is the “God Equation” of satellites. If Energy_In < Energy_Out over an orbit, the satellite dies. You’ll learn about battery Depth of Discharge (DoD) and the “Eclipse” period.


Real World Outcome

A battery state-of-charge (SoC) graph over 10 orbits.

Example Output:

$ python eps_sim.py --config mission_a.json
[INFO] Simulation Started for 10 orbits (900 minutes)
[RESULT] Minimum Battery Level: 68% (SAFE)
[RESULT] Maximum Power Draw: 4.2W (During Comms)
[WARN] Subsystem 'Heater' remained on for 45% of eclipse.
[PLOT] SOC Graph generated: soc_plot.png

Project 6: Reaction Wheel PID Controller (The Mover)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Alternative Programming Languages: Python (for prototyping)
  • Coolness Level: Level 5: Pure Magic (Super Cool)
  • Business Potential: 1. The “Resume Gold”
  • Difficulty: Level 3: Advanced
  • Knowledge Area: Control Systems / Robotics
  • Software or Tool: PID Loop / PWM Emulation

What you’ll build: A Proportional-Integral-Derivative (PID) controller that spins up reaction wheels to rotate the satellite 90 degrees and stop exactly on target without overshooting.

Why it teaches Satellite Engineering: In a vacuum, there is no friction. This teaches the core of spacecraft “Stability and Control.”


The Core Question You’re Answering

“How do I stop spinning in a world without friction?”

Before you write any code, sit with this question. On Earth, if you stop pushing a wheel, it stops. In space, if you stop pushing, it keeps spinning forever.

Project 4: SGP4 Orbit Propagator (Finding Your Place)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C++
  • Difficulty: Level 3: Advanced

What you’ll build: A program that predicts position (Lat/Lon/Alt) from NORAD TLE sets.


Project 5: The Attitude Estimator (Sensor Fusion)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Difficulty: Level 4: Expert

What you’ll build: An Extended Kalman Filter (EKF) that fuses Magnetometer and Sun Sensor data.


Project 6: Reaction Wheel PID Controller (The Mover)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Difficulty: Level 3: Advanced

What you’ll build: A PID controller that spins up reaction wheels to rotate the satellite.


Project 7: Priority Telemetry Scheduler (The Traffic Cop)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Difficulty: Level 2: Intermediate

What you’ll build: A telemetry engine that prioritizes “Health” data over “Science” data.


Project 8: Memory Scrubbing Simulator (Defeating Radiation)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Difficulty: Level 3: Advanced

What you’ll build: A task that checks for bit-flips in RAM and corrects them using Hamming Codes.


Project 9: Thermal Profile Forecaster (Heat Management)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: Python
  • Difficulty: Level 2: Intermediate

What you’ll build: A simulator that predicts temperature based on Sun/Shadow cycles.


Project 10: Payload Image Compressor (Space JPEG)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Difficulty: Level 3: Advanced

What you’ll build: A specialized image compressor (DCT-based) for low-power links.


Project 11: FDIR Watchdog (The Dead Man’s Switch)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: C
  • Difficulty: Level 3: Advanced

What you’ll build: A fault detection and recovery system that hard-reboots the CPU on hangs.


Project 12: Ground Station Command Console (The HMI)

  • File: SATELLITE_FLIGHT_SOFTWARE_ENGINEERING_MASTERY.md
  • Main Programming Language: TypeScript/React
  • Difficulty: Level 2: Intermediate

What you’ll build: A 3D dashboard to monitor satellite health and send commands.


Project Comparison Table

Project Difficulty Time Depth of Understanding Fun Factor
1. CCSDS Parser Level 2 Weekend Binary Protocols 3/5
2. State Machine Level 2 Weekend System Architecture 4/5
3. EPS Simulator Level 1 Weekend Electrical Constraints 3/5
4. SGP4 Propagator Level 3 1 week Orbital Mechanics 5/5
5. Attitude Estimator Level 4 2 weeks Complex Math/Control 4/5
6. PID Controller Level 3 1 week Physical Simulation 5/5
7. Telemetry Sched. Level 2 Weekend Data Management 3/5
8. Memory Scrubber Level 3 1 week Hardware Reliability 4/5
9. Thermal Model Level 2 1 week Physical Modeling 2/5
10. Image Comp. Level 3 1 week Payload Ops 4/5
11. FDIR Watchdog Level 3 1 week Safety Engineering 4/5
12. Command Console Level 2 2 weeks Operations / UX 5/5

Recommendation

If you are a software developer: Start with Project 1 (CCSDS Parser) and Project 2 (State Machine).

If you are a physics/math enthusiast: Start with Project 4 (SGP4) and Project 6 (PID Controller).


Final Overall Project: “The Full Mission Simulator”

What you’ll build: A unified simulation where all previous projects are integrated into one high-fidelity “Digital Twin” of a CubeSat mission.


Summary

This learning path covers Satellite Software Engineering through 12 hands-on projects.

Expected Outcomes

After completing these projects, you will understand the life cycle of a satellite mission from first principles, from orbital math to binary protocols.