-
-
Notifications
You must be signed in to change notification settings - Fork 107
Developer Guide
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
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
Alright, please take the time and check the following tools and set up your MobiFlight 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.
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)
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)
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.
- MobiFlight Connector Installation
- Mobiflight Connector BETA version installation
- Modules
- MobiFlight Connector Files Structure
- MobiFlight Connector Uninstall
- Modules Reset to factory default
- Verifying the WASM module installation and locating the MSFS2020 community folder
- Verifying the WASM module installation and locating the MSFS2024 community folder
- Using a Winwing FCU with MobiFlight
- Using VKB controllers with MobiFlight
- Providing logs from MobiFlight
- MobiFlight Connector How does it work
- Mobiflight Connector Main Window
- Flash module with MobiFlight firmware
- Input and Output devices
- Joysticks
- Midi Boards
- Sim Variables (for Output)
- Input Actions
- Merging configuration files
- Disabling specific COM ports
- Examples Output LEDs
- Examples Input Switch
- Example 7 segment display
- Example Servo motor
- Controlling LEDs with an output shift register
- Adding lots of buttons with an input shift register
- Beginner's guide to input multiplexers
- Key Matrix with standard MobiFlight and Multiplexers
- Tutorial Easy Driver and x.27 or x.40 Stepper Motor
- Tutorial for Airbus VS display via 7-Segment LED Module
- Example Analog Input Potentiometer
- Baron G58 Tutorial Gear, Flaps, Mags, ELT Input Output Programming
- Using Mobiflight to control arduino-based 3rd party panels (RealSimGear GNS530)
- How to use a VNH2SP30 DC motor shield with MobiFlight
- Using 3D printer mainboards
- Playing sounds by sending keystrokes to AutoHotKey
- Using the selector knob on a Honeycomb Bravo
- Using an adjustable 12 position switch as a GA starter
- Brightness of LCD displays with I2C
- Using three-position switches
- Transponder with one Rotary
- Workflow for Creating Flight Simulation Panels ‐ Part 1
- MSFS2020 RPN Tips and Tricks
- MSFS2020 Using the Custom Input Code Box
- MSFS2020 Install WASM module and Event List
- MSFS2020 How to Create and Use User Defined Lvars
- MSFS2020 How to Create a Blinking LED configuration
- MSFS2020 User Defined WASM Module Events Best Practices
- MSFS2020 Developer Mode, Model Behavior dialog and Console window
- MSFS2020 PMDG 737‐700 List of Events that require use of FSUIPC7
- MSFS2020 PMDG 737‐700 Calibrate throttle idle and reverse thrust using interpolation (Valkyrie)
- MSFS2020 PMDG 737-700 Chrono unit functions implemented in Mobiflight
- Configuring PMDG 737 Parking Brake Lever Auto-Release with a Servo in Mobiflight
- Using encoder to drive a value back and forth within a given range
- Adding a custom board to MobiFlight
- User guide - Community Board and Custom Devices
- Developing your own custom devices/boards