A distribution of the cFS that includes the cfe-eds-framework which includes NASA's core Flight Executive(cFE) and CCSDS Electronic Data Sheets(EDS) support.

core Flight System(cFS) Application Toolkit(cFSAT) - Beta Release

A distribution of the cFS that includes the cfe-eds-framework which includes NASA's core Flight Executive(cFE) and CCSDS Electronic Data Sheets(EDS) support. A custom python application provides a user interface to a cFS target communicating over UDP. Each cFS application interface is defined using EDS and the cfe-eds-framework build toolchain generates artifacts that are used by both the flight and ground software systems.

This is a beta-release made in time for the FSW Workshop. The following features should work.

  • Send commands and receive telemetry
  • Create an application from the menu's Apps->Create
  • Run a tutorial from the menu's Tutorial

If you have any issues installing or using the above features please submit an issue.

Getting Started

Prerequisites

The system can be developed on any GNU/Linux development host. The following commands install the development packages for a Debian/Ubuntu environment. Other Linux distributions should provide a similar set of packages but, the package names and installation tool names may vary.

sudo apt-get update -y 
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install libexpat1-dev
sudo apt-get install liblua5.3-dev
sudo apt-get install libjson-c-dev
sudo apt-get install python3-dev
sudo apt-get install python3-pip
sudo apt-get install python3-tk

Package Notes:

  • sudo apt-get update updates a platform's current package respositories
  • build-essential contains a C developer tool suite including gcc, libc-dev, make, etc.*
  • cmake must be at least v2.8.12
  • liblua5.3-dev must be at least v5.1

The python appplication uses PySimpleGUI which can be installed with the following command:

pip3 install PySimpleGUI

Clone cFSAT Repository

git clone https://github.com/OpenSatKit/cfsat.git

Build and Run Flight Software

Prepare build tree, build binaries, and install executable in cfsat/cfe-eds-framework/build/exe/cpu1:

cd cfsat/cfe-eds-framework
make SIMULATION=native prep
make install

Run the flight software on the development host:

cd build/exe/cpu1
./core-cpu1

If the cFS fails to start and you get a message like Aborted (core dumped) then try running in privileged mode and refer to the cFSAT Quick Start Guide for potential reasons why unprivilged mode failed. sudo ./core-cpu1

Run Python Ground System Applcation

In a new terminal window, starting in the directory where you issued the git clone, run the Ground System application and establish telemetry flow:

cd cfsat/gnd-sys/app
. ./setvars.sh
python3 cfsat.py
  • From the 'cFS Config' dropdown menu select 'Enable Telemetry'

Next Steps

In the docs folder refer to

Owner
OpenSatKit
Core Flight System Application Developer Kit
OpenSatKit
Comments
  • Tutorial crashes after reset

    Tutorial crashes after reset

    PySimpleGUI doesn't allow sharing layouts. The tutorial refresh recreates the main window it violates the single use layout rule. Looks like all components of the layout need to be recreated. ScreenHunter 596

  • The create app tool incorrectly reports errors if the new app directory already exists

    The create app tool incorrectly reports errors if the new app directory already exists

    The create app tools uses the os.mkdirs() utility which raises an exception if the destination directory already exists. A general error exception is being caught and it needs to be more specific so a 'dir/file already exists error' is not reported.

  • Tutorial screens block users from using the main screen menus

    Tutorial screens block users from using the main screen menus

    Tutorials are designed to provide instructions to users for how to perform tasks using cFSAT so the user must be able to use the main screen features while a tutorial screen is open.
    In the current implementation tutorial screens block the main screens event loop.

  • Add File Browser Refresh Directory Listing

    Add File Browser Refresh Directory Listing

    The directory listings in File Browser are only updated if an action is taken from the File Browser. For example if a file is deleted then the directory listing is refreshed If a directory's content is changed from a different source such as an onboard app creating files, there's no way to refresh a listing and see the directory changes.

  • Last table load status (osk_c_fw) initialization value appears as invalid

    Last table load status (osk_c_fw) initialization value appears as invalid

    When an app that has a JSON table is first initialized (see osk_c_demo) its initial status shows last table action status as invalid even though the initial table was preoperly loaded.

  • Threads not being shut down properly

    Threads not being shut down properly

    cFSAT and FileBrowser do not shutdown all of their threads properly. May be other files as well when run as main. After shutdown the GUI a control-C is required to terminate all of the threads.

  • Use compress_abs_path() utility for all paths containing '../'

    Use compress_abs_path() utility for all paths containing '../'

    There are multiple cases when a dialog box shows a path that has one or more '../' in the path. Most of these are the result of a relative path specified in the cfsat.ini relative path definition being used in a join() function. Any path that will be displayed should be cleaned up.

Related tags
A collection of individual tools to randomize bdsp sheets

BDSP_Randomisers A collection of tools to randomize BDSP assets Setup (Windows 10 only) Install Ubuntu 18.04 via WSL1 (plenty of tutorials on that) In

Mar 1, 2022
Fast C/C++ CSS Parser (Cascading Style Sheets Parser)

MyCSS — a pure C CSS parser MyCSS is a fast CSS Parser implemented as a pure C99 library with the ability to build without dependencies. Mailing List:

Sep 22, 2022
A custom distribution of FreeImage, with a CMake-based build system. Used by the Athena Game Framework.

This is a custom distribution of FreeImage, version 3.13.1, with a XMake-based build system. License ------- FreeImage's license is unchanged: this

Apr 6, 2022
Filter driver which support changing DPI of mouse that does not support hardware dpi changing.

Custom Mouse DPI Driver 하드웨어 DPI 변경이 불가능한 마우스들의 DPI 변경을 가능하게 하는 필터 드라이버 경고: 해당 드라이버는 완전히 테스트 되지 않았습니다 Install 해당 드라이버는 서명이 되어있지않습니다. 드라이버를 사용하려면 tests

Sep 23, 2022
My new zigbee project. Wireless temperature and humidity mini sensor with electronic ink display 2.13 inches, low power consumption, compact size, enclosure with magnets.
My new zigbee project. Wireless temperature and humidity mini sensor with electronic ink display 2.13 inches, low power consumption, compact size, enclosure with magnets.

My new zigbee project. Wireless temperature and humidity mini sensor with electronic ink display 2.13 inches, low power consumption, compact size, enclosure with magnets. The device use SHTC3 sensors, chip CC2530, battery CR2477.

Nov 20, 2022
Metal lathe electronic lead screw project built on top of Russian-speaking DigitalFeed ELS system by Oleg A. and contributors from ChipMaker.ru
Metal lathe electronic lead screw project built on top of Russian-speaking DigitalFeed ELS system by Oleg A. and contributors from ChipMaker.ru

This software and instructions are provided as is, without warranty of any kind. This is a hobby project. Using this might damage your equipment, caus

Nov 29, 2022
Arduino core for GD32 devices, community developed, based on original GigaDevice's core
Arduino core for GD32 devices, community developed, based on original GigaDevice's core

GD32 Arduino Core (New) This is a Arduino core is based off of the original GigaDevice core that was provided by the company in early June 2021 (see h

Nov 26, 2022
An Electronic voting machine simulator using C

EVM-using-C An Electronic voting machine simulator using C The project is divided into few parts 1.The program first asks to enter the information of

Oct 24, 2021
Arduino Based Electronic DC Load.
Arduino Based Electronic DC Load.

ArduDCLoad A configurable multipurpose DC Load board developed directly on Twitch The values of the resistors can be calculated to adapt the PCB to yo

Feb 19, 2022
This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robotics and Perception Group (RPG).
This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robotics and Perception Group (RPG).

rpg_svo_pro This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robot

Nov 29, 2022
MFD Button Switches for Flight Simulators. Arduino *.ino and PCB Gerber files and a picture. Now with FalconBMS specific firmwares.
MFD Button Switches for Flight Simulators. Arduino  *.ino and PCB Gerber files and a picture. Now with FalconBMS specific firmwares.

MFD-Switches Use at your own risk. I am not accepting responsiblity for anything. Copyright Ron Lyttle 2021. I have to copyright because of some of th

Jul 10, 2022
Two alphanumeric LCDs and 2 LED bars to show and manage some in-flight parameters
Two alphanumeric LCDs and 2 LED bars to show and manage some in-flight parameters

FS2020-LCD-Panel with Arduino Two alphanumeric LCDs and 2 LED bars to show and manage some in-flight parameters for FS2020. In this project you can pl

Sep 24, 2022
A hobby and performance-oriented Linux® distribution that provides aesthetics and practical functionality.

Heiwa/Linux A hobby and performance-oriented Linux® distribution that provides aesthetics and practical functionality.

Apr 29, 2022
By putting in a lot of speed, the speed sequence is sorted and divided, three types of speed interval distribution maps are generated.(including broken line graph,histogram and curve graph)

Auto-drawing-speed-range-map By putting in a lot of speed, the speed sequence is sorted and divided, three types of speed interval distribution maps a

May 14, 2022
Create Particle Distribution for N-Body and SPH simulation.

ParticleDistributor Create Particle Distribution(s) for N-Body (and prospectively SPH) simulation. Distributors Currently supported distributors: Plum

Dec 1, 2021
Oct 6, 2021
Using Pi Pico to provide trimwheel for Flightgear Flight Simulator

Trimwheel for FGFS This uses a Rotary Encoder (RE) and a Raspberry Pi Pico (Pico) to connect the RE to FlightGear Flight Simulator as a Pitch Trimwhee

Dec 14, 2021
Arduino library for ST Microelectronics VL53L5 multizone Time-of-Flight ranging sensor
Arduino library for ST Microelectronics VL53L5 multizone Time-of-Flight ranging sensor

VL53L5 Arduino library for ST Microelectronics VL53L5 multizone Time-of-Flight ranging camera (get it here!) Quickstart Connect I2C in the usual way (

Dec 2, 2022
Satellite Flight Software: Command-Centric Architecture

Core of Command Centric Architecture C2A Command Centric Architecture OBC 搭載フライトソフトウェアフレームワーク C2A core 各 C2A で共通利用される C2A の中核部のコード 基本的には,各々の C2A user

Nov 14, 2022