OpenSatKit core Flight System (cFS) starter kit

Why cFS

If you have a new missions without an existing flight software code base, the cFS adds significant value by providing freely available high quality flight software that would take years to develop. If you have have an existing code base, the cFS still offers a highly valuable option. The primary costs of adopting the cFS are educational and if required, porting the cFS to run on your particular hardware/operating system platform. The cFS has a vibrant community that helps you with both of these needs. Once the cFS is adopted you will benefit from the numerous freely available applications and tools. In addition, you can start to reuse your own applications across missions.

Your embedded software system not destined for space? The cFS may still be a solution. The cFS is a general purpose framework originally designed for spacecraft but there’s nothing that precludes it from being used in other embedded software applications such as UAVs, embedded simulators, etc. The cFS requires a multi-tasking real-time operating system with a file system so it is not suitable for microcontroller systems with limited resources.


The open source cFS framework provided by NASA is the same flight software code-base used on several multi-million and even billion dollar space programs. This is a highly reliable and very stable code base. The framework provides an application runtime environment that allows the same application source code to be rebuilt and run on different target platforms. NASA has also released several applications that provide common mission functionality. If you are a newcomer to the space business some of this functionality may not be obvious and you will reap the benefits of the lessons learned that led to the initial development of the applications. You can focus on your mission-specific requirements and applications, reducing your cost and schedule risks.

All of the NASA framework and application code comes with requirements, design documents, unit tests, and functional tests. The NASA open source software is managed by a Configuration Control Board that approves all future changes. You can be assured that the cFS will evolve in a manner that is aligned with long term cFS goals and that the quality of the software will remain very high.

Portable and Extendable Architecture

Many science and technology-purposed spacecraft are uniquely designed for their particular objective. Therefore they often have varying flight software requirements between missions. The cFS is designed to accommodate this variability. The framework defines a layered architecture that provides a hardware and operating system independent application runtime environment. The same application code can be rebuilt to run on different platforms. The framework and applications use compile-time and run-time configuration parameters to tailor the cFS to meet a wide range of mission requirements.

NASA maintains open source releases for multiple platforms and over a dozen applications that are common to many missions. The number of user-contributed platform abstractions and applications continue to grow.

Permissive Licensing

All of the NASA components are released under the NASA Open Source Agreement (NOSA) Version 1.3, NOSA is a very permissive license that allows for reuse in commercial and closed source products. However, modifications to the NASA source code must be made publicly available.

A Vibrant Community

Since NASA released the complete cFS code base as open source in January 2015, the cFS has grown to an international community. The cFS was originally developed as NASA Class B software for a variety of science missions. Since then we are seeing a wide range of adoption from manned space to CubeSats and even unmanned aerial vehicles (UAVs).

The cFS mailing list has over 150 participants and online catalogs are being maintained for user-contributed platforms, applications, and tools.

As the community grows the cFS continues to get easier to adopt and use. Distributions provide out-of-the-box systems that can be tailored for your needs. If you need to port the cFS to a platform, browse the catalog or ask the community. Chances are someone has a solved a problem similar to your own.