This is the main repository of the CHESS flight software. It uses the NASA F' framework
Read F´ Discerning User’s Guide to discover the framework. Tutorials are a very good way to understand it.
More resources (Community Forum, Reference Application, F' Architecture Overview) are available on nasa.github.io/fprime
Follow this guide to start with CHESS FS development : Quick start guide
- Linux based OS (Ubuntu 18.04 via WSL2 in our case)
- GCC compiler GCC 7.5.0
- CMake 3.5 or newer (3.10.2 used)
- Python 3.5+, PIP and Python Virtual Environment
See Quick start guide for details.
F' tools installation
python3 -m venv ./fprime-venv
. ./fprime-venv/bin/activate
python3 -m pip install --upgrade wheel setuptools pip
cd fprime
python3 -m pip install ./Fw/Python ./Gds
F' compilation
Before compiling, you need to know if the flight sofrware will be used with the FPrime GDS or PUS demonstrator
In ./App/CMakeLists.txt comment and uncomment your choice
add_definitions(-D_PUS) # to use PUS with GS
#add_definitions(-D_GDS) # to use F' GDS (without PUS)
fprime-util generate fprime-util build
Launch F' and GDS (Ground Software simulator)
Prerequisites
1. Run ADCS simulator
2. Run EPS simulator
fprime-gds
## simulators
### ADCS
#### Installing
```bash
pip install python-statemachine
python3 ./simulators/ADCS/TcpMain.py
pip install python-statemachine
sudo apt install libsocketcan-dev pkg-config libzmq3-dev
sudo chmod +x ./simulators/EPS/zmqproxy
sudo ./simulators/EPS/zmqproxy &
export LD_LIBRARY_PATH=./simulators/EPS/packages/csp/lib && python3 ./simulators/EPS/CspMain.py
- Run ADCS simulator
- Run EPS simulator
cd /gs/gs
cmake .
make
./gs
The demonstrator is a TCP server. It will wait for a connection from Flight software and then, start sending and receiving packets
./App/build-artifacts/Linux/bin/App -a 127.0.0.1 -p 27015
In 05_FS/App
run
fprime-util check --all
FS can be build and deployed on a Raspberry Pi with
fprime-util generate raspberrypi
fprime-util build raspberrypi
You will need Raspberry Pi toolchain in /opt/rpi
.
Binary generated in App/bin/arm-linux-gnueabihf/App
can be launched on the Pi after having started GDS without application on Linux
fprime-gds -n
See GPS tutorial for details.
F' also provide a custom topology RPI to test it on a Raspberry Pi, see here.
- Jonathan Michel - HES-SO Master student - @jonathanmichel
- Charles-Lewis Jaggi - HES-SO Master student - @lewisjaggi
- Maxime Welcklen - HES-SO Bachelor student - @maximewel