Open Source Resources

From Team SFU Satellite Wikipedia
Revision as of 13:11, 10 August 2019 by Cgimpel (talk | contribs)
Jump to navigation Jump to search

The following are a few open source resources that can be used by the team for testing and design. Many of the following links are software developed for free use; however, this list is not exclusive to software and could include open source design plans for test rigs or otherwise.

When adding to this list, please include the link to the source, author, coding language, OS Environment (Linux, Mac, Windows) and a brief description. Use the following template when adding a new resource:


  • Author:
  • Language:
  • Environment:
  • Source
  • Description:


F' Software Framework

  • Author: NASA Jet Propulsion Laboratory
  • Language: C++
  • Environment: Linux, Windows
  • Source at github
  • Description: The F' (F Prime) Software Framework was developed at JPL with the goal of providing software for flight systems that would be memory efficient and reusable. It consists of a component framework utilizing code generation to generate the commonly used patterns in the architecture. The framework is meant to be delivered as a package; the source, build system, code generators, GUI and an example are ready to be built and run on systems commonly used at JPL. This user's guide will show how to acquire, build and run an example as well as directions for applying the software to a particular use. For more details on the architecture itself, read F' Architecture Description document located in the docs folder of the distribution. It will explain the terms used to describe the example.


  • Author: KubOS Corporation
  • Language: Python / Rust
  • Environment: Linux
  • Source on their website
  • Description: KubOS is a collection of microservices that accomplish critical functionality required of flight software (FSW), run within a highly fault tolerant and recoverable operating system, and provide a safe and effective development environment for mission specific FSW applications. It looks like they have a community slack as well, which provides troubleshooting and answers questions. They give this software away for free because they sell mission control software as well.


  • Author: Nasa Independent Verification and Validation Facility (IV&V)
  • Language: N/A
  • Environment: Linux
  • Source on github
  • Description: The NASA Operational Simulator for Small Satellites (NOS3) is a suite of tools developed by NASA's Katherine Johnson Independent Verification and Validation (IV&V) Facility to aid in areas such as software development, integration & test (I&T), mission operations/training, verification and validation (V&V), and software systems check-out. NOS3 provides a software development environment, a multi-target build system, an operator interface/ground station, dynamics and environment simulations, and software-based hardware models.This is a stand alone testing tool that simulates the same inputs that you would receive in space. The tool is designed for testing your flight software and make sure the code will be functional in space.


  • Author: Nasa Goddard Space Flight Center
  • Language:
  • Environment: Linux
  • Source on sourceforge
  • Description: 42 is a comprehensive general-purpose simulation of spacecraft attitude and orbit dynamics. Its primary purpose is to support design and validation of attitude control systems, from concept studies through integration and test. 42 accurately models multi-body spacecraft attitude dynamics (with rigid and/or flexible bodies), and both two-body and three-body orbital flight regimes, modelling environments from low Earth orbit to throughout the solar system. 42 simulates multiple spacecraft concurrently, facilitating studies of rendezvous, proximity operations, and precision formation flying. It also features visualization of spacecraft attitude.
  • Notes: It looks like a separate GUI was developed for learning how to use this software and can be found here.


  • Author: Hawaii Space Flight Laboratory
  • Language: N/A
  • Environment: Linux, MacOS (Windows setup available)
  • Description: COSMOS is a open-software framework designed to primarily support the development, mission operations and flight software of one or more small spacecraft. It is particularly suited for organizations with limited development and operations budget, such as universities. COSMOS is also designed to be used as a generic framework to operate heterogeneous architectures such as satellites, ground stations, drones, rovers, CanSats, BalloonSats, etc.
  • Source document with a section on installation

Open-Source Helmholtz Cage Design with Air-Bearing Table

  • Author: University of Cincinnati
  • Language: Python
  • Environment: Windows 10
  • Source on github
  • Description: This is the repository for the UC Helmholtz Cage project. The designed cage is capable of generating a uniform +/- 1.5 Gauss magnetic field along 3-axes, in a volume large enough to fit a 3U CubeSat (30cm x 30cm x 30cm). The cage is controlled by a GUI-based Python program, which can manage instrument connections (working), calibrate the cage (still being tested), and run both single-value tests (working) and time-varying replications of orbital magnetic fields (still being tested). Additionally, the design includes both a static test stand for simple tests, and an air-bearing table for more dynamic testing of CubeSat Attitude Determination and Control Systems (ADCS) on hardware.


  • Author: LeoLabs
  • Language: Java
  • Environment: Linux, Windows
  • Source on gitlab
  • Description: Orekit aims at providing accurate and efficient low level components for the development of flight dynamics applications. It is designed to be easily used in very different contexts, from quick studies up to critical operations. As a library, Orekit provides basic elements (orbits, dates, attitude, frames, ...) and various algorithms to handle them (conversions, propagations, pointing, ...).
  • Notes: The authors of orekit have two other projects they have published as well: rugged and stavor. Rugged is a geolocation library which allows you to map coordinates on an image to a geographic location. Stavor is a 3D attitude visualization tool for smart-phones and tablets which allow you to visualize the attitude and orbit information of a simulated spacecraft.


  • Author: University of Bristol (Tom Etchells & Lucy Berthoud)
  • Language: MATLAB
  • Environment: Windows, MacOS
  • Source on github
  • Description: PowerCubeSat is a MATLAB base CubeSat power modelling tool. The model takes user customizable orbits, attitudes and solar panel configurations as inputs , allowing the modelling of many different CubeSat configurations. It handles self-shadowing of deployable panels and outputs power generated by each panel over the orbit.