Flight Software

Flight software may be the least appreciated challenge of spacecraft development. It’s easy to see and love the incredible structures and rocket engines and not appreciate that the majority of what makes those things work is the software that controls it precisely, communicates with controllers, and manages fault tolerance and fallback plans.

It’s also hard to find good resources, so most of our time at Space Steps is focused on helping you understand frameworks, get hands on experience with labs, and connect with the community.

A collection of acronyms and terms used frequently in the flight software world.

Find Basecamp, apps, and additional support materials.

Our channel includes YouTube videos covering flight software topics

Three Ways to Grow as a Flight Software Developer

Read our Intro Articles

These three articles cover the things we think most learners can benefit from.

Get to Know the Terminology

The flight software world is filled with special terms. Our dictionary aims to help you decipher the difference between “Ack” and “Ack!”

The Flight Software Dictionary: The Flight Software Dictionary

Learn cFS with Basecamp

Basecamp is our free programs that wraps NASA’s cFS flight software architecture in Python and provides tools, apps, and built-in tutorials to get you developing with the same code set flying all over the solar system.

Our GitHub repository is here:

  • Spacecraft Software Basics

    Spacecraft Software Basics

    Spacecraft are a lot like robots on Earth. They both have things that move, they have sensors such as cameras, and they’ve got to operate…

    Read More…

  • Core Flight Software Basics

    Core Flight Software Basics

    If you need to write software to run your spacecraft, instruments, and maybe even ground systems and aerial drones, you might consider adopting NASA’s Core…

    Read More…

  • Operating System Basics

    Operating System Basics

    Spacecraft that use operating systems tend to use real-time (or close enough to real-time) operating systems. Traditionally, this has been because every clock cycle and…

    Read More…

  • What is cFS?

    What is cFS?

    It’s worth pointing out that it’s not just space missions using cFS. Drones and underwater vehicles are using it. And people are looking at it…

    Read More…

  • Why use cFS?

    Why use cFS?

    The Core Flight Software ecosystem is high-quality, certified by NASA, and freely available. It would take teams of programmers years to develop the same capability…

    Read More…

  • Why not use cFS?

    Why not use cFS?

    The Core Flight System can save your team many (many) months of work. And it’s a flexible framework that lets you use it on many…

    Read More…

  • cFE Executive Services

    cFE Executive Services

    Every system (including our brains) has some core component within them that keeps the lights on. It keeps the heart pumping, watches to make sure…

    Read More…

  • cFE Software Bus

    cFE Software Bus

    Vehicles have all sorts of data zipping around. Your sensors are collecting information, your functions want information, you want to send information… managing the chaos…

    Read More…

  • cFE Time Services

    cFE Time Services

    People who have launched and operated spacecraft all agree: Getting the time correct is incredibly difficult. It’s so difficult and tricky to keep everything on…

    Read More…

  • cFE Event Service

    cFE Event Service

    The Event Services module lets you send, filter, and log event messages. These are time-stamped messages that can be given labels such as Debug, Informational,…

    Read More…

  • cFE Table Service

    cFE Table Service

    Tables are great at organizing information in easy-to-understand ways. If your temperature function needs to know what the maximum temperature limit is, it can look…

    Read More…

  • cFS App Layer

    cFS App Layer

    If you spend weeks and months creating a robust guidance, navigation, and control algorithm for reaction wheels, wouldn’t you like to use that on a…

    Read More…

  • cFS App: Scheduler Lab

    cFS App: Scheduler Lab

    Would you like something to happen every day precisely at 2:03 in the morning? Would you like a series of things to happen, one right…

    Read More…

  • cFS App: Command Ingest Lab

    cFS App: Command Ingest Lab

    When your system is out flying or swimming around, you’ll probably use some sort of radio to talk with it. But when your system is…

    Read More…

  • cFS App: Telemetry Output Lab

    cFS App: Telemetry Output Lab

    Getting data out of your system when it’s in the lab can be surprisingly complex sometimes. NASA has solved a big part of the problem…

    Read More…

  • Starting a Flight Software Project

    Starting a Flight Software Project

    Take any veteran software developer to lunch and they’ll tell you story after story of the things they wish they’d known when they started. And…

    Read More…

  • Electronic Data Sheets

    Electronic Data Sheets

    Electronic Data Sheets are a way to create and document your software interfaces. You can use them for any software project to make it much…

    Read More…

  • cFS Basecamp Basics

    cFS Basecamp Basics

    Communications is between anything and everything: the spacecraft and the ground, the spacecraft and other spacecraft, and ground stations to operation centers. Even simple satellites…

    Read More…

  • cFS Basecamp JSON

    cFS Basecamp JSON

    Communications is between anything and everything: the spacecraft and the ground, the spacecraft and other spacecraft, and ground stations to operation centers. Even simple satellites…

    Read More…

  • cFS Basecamp App Design

    cFS Basecamp App Design

    Communications is between anything and everything: the spacecraft and the ground, the spacecraft and other spacecraft, and ground stations to operation centers. Even simple satellites…

    Read More…