Developer Guide - MobiFlight/MobiFlight-Connector GitHub Wiki
This page is under construction
This Wiki is intended for all people who want to contribute to MobiFlight as a Developer. So if you are one of these people, then I right away want to say thank you for your time and effort that you will put into it.
If you are here and you are not a developer and you are just looking for general user documentation then have a look at https://mobiflight.com
Overview
The MobiFlight project helps to create low-cost flight simulator interfaces for flight simulator enthusiasts and home cockpit builders. It supports different flight simulator platforms already (MS Flight Simulator, Prepar3d and X-Plane) and could be extended to support more. For more general information visit https://mobiflight.com
The MobiFlight project consists of
- MobiFlight Connector - a .NET Windows application written in C#, and
- MobiFlight Firmware - a sketch - Arduino code - that is uploaded to supported Arduino boards
All sources are available in the respective MobiFlight Github-Repositories:
- https://github.com/MobiFlight/MobiFlight-Connector
- https://github.com/MobiFlight/MobiFlight-FirmwareSource
Let's get started with development
Alright, please take the time and check the following tools and set up your MobiFlight Development Environment
Setup Development Environment
This is what you need to download and install:
- .NET Framework 4.5+
- Visual Studio Community 2022 - to edit and build the code for the Connector (UI)
- Visual Studio Code & Platform.io Extension for Visual Studio Code - to edit and build the Firmware (Arduino Sketch)
- Git Client for Windows - Both Visual Studio and Code come with extensions but it good to have a plain command line client.
Fork the MobiFlight Connector Repository
If you would like to review the UI source code and maybe contribute, go to https://github.com/MobiFlight/MobiFlight-Connector.git and fork the repository so that you can also later provide your Pull Requests (PR)
Fork the MobiFlight Firmware Source Repository
If you would like to review the firmware source code and maybe contribute, go to https://github.com/MobiFlight/MobiFlight-FirmwareSource.git
and fork the repository so that you can also later provide your Pull Requests (PR)
External Libraries
MobiFlight relies on a couple of publicly available libraries. We started to fork them because of the cool performance improvements by @elral
FirmwareSource/libraries
- CmdMessenger - The main communication library between PC and Arduino (https://github.com/MobiFlight/Arduino-CmdMessenger)
- AccelStepper - The library for the steppers with acceleration (https://github.com/waspinator/AccelStepper)
- LedControl - The library for controlling the LED modules (https://github.com/MobiFlight/LedControl)
- LiquidCrystal_i2c - The library to control the LCD displays (https://github.com/MobiFlight/LiquidCrystal_I2C)
- Servo - The library for the servos (Platform.io Library - arduino-libraries/Servo)
Check the https://github.com/MobiFlight/MobiFlight-FirmwareSource/blob/main/platformio.ini for the latest list of dependencies.