PyQt5 application connecting to X-Plane flight simulator and displaying a garmin G5 attitude indicator as well as Horizontal Situation indicator
Project description
PyG5
Description
This project aims at development a Garmin G5 view targeting a Raspberry Pi 7 inches display (640x480) . The intent is to provide a G5 Attitude indicator + G5 Horizontal Situation Indicator stacked on the display in vertical mode. The pyG5
connects to X-Plane flight simulator.
It does not require any plugin and use the standard DREF UDP interface from X-Plane. It should not require any configuration. Start it and it will connect to X-Plane and fetch the required data.
This is currently developed on macOS with python 3.9 and testing on a Raspberry Pi 4 with Raspberry Pi OS and an official 7 inches display in vertical mode.
Below is a view of the user interface.
And you can see it in its simulation environment
Maturity
It's currently in pretty early phase. It's functional and should be easy to install but might suffer from issues here and there.
Not all the features of the G5 are implemented. It's currently missing:
- Glide scope
- lateral guidance on the AI
- Distance to next way point on the Horizontal Situation Indicator.
Installation
pyG5
depends on PyQt5
. Due to failure to install PyQt5
from pip on Raspberry Pi OS it is not
a dependency of the pyG5
. As a result it needs to be installed manually.
Raspberry Pi OS:
> sudo apt-get install python3-pyqt5
other OS:
> sudo pip3 install PyQt5
The install PyG5
:
> sudo pip3 install pyG5
Running
> pyG5DualStacked
Running on Raspberry Pi it is recommended to install FreeSans fonts in order to be consistent with the rendering on the current main development platform, ie. macOS. Most liked this is solved with:
> sudo apt-get install libfreetype6
Developers
If you intend to develop based on this project. At a glance:
- The application runs on PyQt5 event loop.
- It's loosely implementing a Model View Controller coding style
- The
pyG5Network
contains X-Plane network interface is monitoring the connection and feed data at 30Hz to a slot - The view is repainting the interface every time the data is received from the network interface
- The
pyG5Widget
is derived twice into and Horizontal Situation Indicator and an AI. thepyG5DualStack
instantiate both into a single widget. That means it's easy to build the view with just one of them. - The
pyG5Main
module contains the application and the main window class.
Running from sources
Clone the repository
> git clone
Initialize the virtual environment
> source bootstrap.sh
Start the Application
> python -m pyG5.pyG5Main
In order to evaluate the design without X-Plane running you can use:
> python -m pyG5.pyG5ViewTester
This will feed the data from the sliders in the UI instead of the X-Plane network interface:
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyG5-0.0.2.tar.gz
.
File metadata
- Download URL: pyG5-0.0.2.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 928ef864f724cd3aba2d82274136b08f63cd5832569f45c050dbda1f46459743 |
|
MD5 | 49fae930060fbd5bf1e8c1c19d62e9c7 |
|
BLAKE2b-256 | 0c18e7c7ecace1ee58aca03e1f46f11640b0c8f06949a8b62cee1bf1c6bf8d71 |
File details
Details for the file pyG5-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: pyG5-0.0.2-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e84dff02e3ba4c67b20867f1ad458a05940aa0bf42dd58935b895e2c3c10151 |
|
MD5 | 386222ab4a4786860fbc69bf91d8dc47 |
|
BLAKE2b-256 | eae63554fec8f11db333e19d61019a7f7ab0eee52f3348e9e4d49531ce815178 |