Skip to content
msuder edited this page Nov 3, 2022 · 45 revisions

Welcome to the NOS3 User's Manual and Developer's Guide. This documentation is designed to provide information for users and developers that intend to utilize, enhance, and extend the NASA Operational Simulator for Small Satellites (NOS3).

NASA Operational Simulator for Small Satellites (NOS3)

The NASA Independent Verification and Validation (IV&V) Independent Test Capability (ITC) team developed West Virginia's first satellite, named Simulation-to-Flight 1 (STF-1), which is a 3U Small Satellite. The primary goal of this Small Satellite was to develop and demonstrate the lifecycle value of a software-only small satellite simulator. This simulator is called the NASA Operational Simulator for Small Satellites or NOS3.

NOS3 is an open-source, software only test bed for small satellites available via the NASA Open Source Agreement. It is a collection of Linux executables, libraries, and source code. Current simulations are based on commercial off the shelf (COTS) hardware that were developed to support the STF-1 CubeSat. It is intended to easily interface with flight software developed using the NASA Core Flight System (cFS).

Documentation

Components

NOS3 is comprised of a number of components. These components are listed in the following table:

Component Description
Vagrant Vagrant is an open source solution that can be used to script the creation of Oracle VirtualBox virtual machines and the provisioning of such machines, including package installation, user creation, file and directory manipulation, etc.
VirtualBox Oracle VirtualBox is an open source solution for creating and running virtual machines.
NOS Engine NASA Operational Simulator (NOS) Engine is a NASA developed solution for simulating hardware busses as software only busses. This component provides the connectivity between the flight software and the simulated hardware components.
Simulated Hardware Components A collection of simulated hardware components which connect to NOS Engine and provide hardware input and output to the flight software.
42 Some of the hardware components require dynamic environmental data. 42 is an open source visualization and simulation tool for spacecraft attitude and orbital dynamics developed by NASA Goddard Space Flight Center (GSFC) which is used to provide dynamic environmental data.
cFS NASA Core Flight Software (cFS) is an open source Fight Software used as the base system which STF-1 flight software is developed on.
COSMOS COSMOS is open source ground system software developed by Ball Aerospace which is used to provide command and control of the flight software.
AIT AIT is a light weight open source ground system developed by JPL that provides command and control to the flight software.
OIPP Orbit , Inview, and Power Planning (OIPP) is an ITC developed planning tool which can use current two line element (TLE) sets from the internet or a TLE file to project satellite to ground station inview times and satellite eclipse and sunlight times.

FAQ

  1. How do I login to the NOS3 virtual machine?
    • user: nos3, password: nos3123!
    • user: vagrant, password: vagrant
  2. NOS Engine bus ports fail on launch
    • NOS Engine allows dynamic connections and disconnects and ensures ports are closed before connecting. Ports may work again after an initial "Not connect".
  3. When the cFS flight software starts it cannot find my application or startup script
    • Make sure that your application is build correctly and the shared object library (.so) is present. Likewise, ensure that the app name is correctly listed in fsw/nos3_defs/cpuN_cfe_es_startup.scr and fsw/nos3_defs/targets.cmake.
    • For further information, please check the NASA/cFS git repository and documentation.
  4. How do I connect my own standalone flight software?
    • Be sure to have all port numbers consistent between all components in NOS3, including 42.
  5. Why does cFS constantly crash on start-up and/or force me to restart my PC to rerun?
    • NASA's cFS is safety-critical flight software. Make sure you are building your applications to specification and that you are properly using the PSP and OSAL calls from within your apps.
    • It is best to not run cFS as sudo. If you are doing this, make sure you have configured for your host or are providing appropriate run-time arguments with cFS.