Falcon Ground Control Station.
Learn more on our website!
Windows - Installation
- Go to releases and download the most recent versions
.exe
file - Run the downloaded file, you may have to click "more" then "run anyway" if windows defender blocks it
- Once installed it should be accessible via the start menu as "FGCS"
Windows - Manually
- Ensure npm is installed, to do so follow this guide. Note: node version must be >= v20.10.0
- Ensure yarn is installed, to do so run
npm install --global yarn
or follow this guide - We are using
python 3.11.9
so make sure its installed before creating the venv. If you have multiple environments then please runpython3.11 -m venv venv
cd gcs
yarn
(to install dependencies)yarn dev
cd radio
- Make sure you're in a virtual environment (or create one via
python3 -m venv venv
) and all dependencies are installed usingpip install -r requirements.txt
NOTE: To enter the virtual environment you will need to run
venv/Scripts/activate
on windows, to learn more please read: how to make venv for linux and winodws or what is a virtual environment?
python app.py
Create a new Python virtual environment using python -m venv venv
. This can then be activated using ./venv/scripts/activate
.
NOTE: You don't need to run them at the same time with 1 command, you can run each one individually in separate terminals
To run both the frontend and backend at the same time, you need to make sure all the requirements are installed for both yarn and Python. Then you can install a script globally using npm install -g concurrently
. After activating your Python virtual environment, you can run ./run.bat
and this should start up both the frontend and backend in one terminal.
Mac/Linux
We currently dont have instructions or releases for mac or linux, we will in future releases. It does run on ubuntu and mac as members of the team use it, but we want to test the instructions before releasing them. Howerver, you can still run both the frontend and backend indivudally by following the windows version with slight alterations to the commands.
Stack
- GUI
- Electron + Vite + React (JavaScript)
- Backend
- Flask (Python)
Python
We are going to be using python 3.11.x so please install that on your computer from Python's website. Please try to use a virtual environment when programming, if you don't know how to do this please message me (Julian)! Name the folder either "env" or "venv" so its in the .gitignore as we don't want to be uploading that to github.
We will be using ruff
as the code style for python, please look at the documentation found here. When pushing code we have an action to check if it is in the correct code style, if it is not in the correct style it will fail the run and you will need to fix it by running python -m ruff format .
in your virtual environment (or something ruff format .
works on different systems); this should automatically reformat everything so you can push it again!
Pre-Commit
When cloning the repo for the first time, please install pre-commit
. This can be done with a simple pip install pre-commit
and then pre-commit install
. Our pre-commit hooks will run every time you try to push something, if any of the checks fail then you will not be able to push that commit and receive an error message, often the files will be fixed but not staged, so make sure to re-stage and retry the with pushing commit.
Packaging
From within the radio
folder run pyinstaller --paths .\venv\Lib\site-packages\ --add-data=".\venv\Lib\site-packages\pymavlink\message_definitions\:message_definitions" --add-data=".\venv\Lib\site-packages\pymavlink\:pymavlink" --hidden-import pymavlink .\app.py -n fgcs_backend
. This will create an exe and folder within the dist/fgcs_backend/
folder.
After compiling the backend, place the contents of radio/dist/fgcs_backend
into a folder in gcs/extras
. Then from within the gcs
folder run yarn build
.
Feel free to ask questions in the discussion area.