-
-
Notifications
You must be signed in to change notification settings - Fork 107
Input and Output devices
The following device types are currently supported by the MobiFlight firmware:
Input devices are all kinds of devices that allow a user to trigger an input event through a hardware device.
You can use any kind of buttons and switches. There are many forms and shapes:
- Push buttons
- Tactile switches
- Micro switches
- Toggle switches
- Kill switches
Switches comes as momentary buttons (push button), latch buttons (they stay pressed) or switches that have a handle that you can flip, where the position also can be momentary (ON), or stays ON. There are typical configurations for such switches:
- ON-OFF - These switches require one input pin. The handle can be moved in ON position or in OFF position providing a low or high signal to the MobiFlight Board.
- ON-ON - These switches require two input pins. The handle can be set to two different positions (on and off) but both have their own high signal.
- (ON)-OFF - Switch requires one input pin. On position is only momentarily as long as user holds the switch in the ON-position. On releasing the handle, the switch will go back to the OFF position.
- ON-OFF-ON - These switches require two input pins. The handle can be set to three different positions ("on" on one side, off in the middle, "on" to other side).
- (ON)-OFF-ON -These switches require two input pins. One On position is momentarily only as long as the user holds the switch. On release the switch snaps back to the OFF (middle) position. The opposite ON-position is a permanent position. This switch is used, e.g. for APU switch in the B737.
- (ON)-OFF-(ON) -These switches require two input pins. Both "On" positions are momentarily only as long as the user holds the switch. On release the switch snaps back to the OFF (middle) position. This switch can be used as trim switch or flaps switch.
Encoders are important for building cockpits because many avionics use them.
Pin Settings
- Left Pin
- Right Pin
Type
- 1 detent per cycle (00)
- 1 detent per cycle (11)
- 2 detents per cycle (00, 11)
- 2 detents per cycle (01, 10)
- 4 detents per cycle
Name
- The name of the device (max 16 characters)
Encoders support the following events
- onLeft - triggered on every detent when encoders turns left
- onLeftFast - triggered when encoders is turned left fast (multiple detents per second)
- onRight - triggered on every detent when encoders turns right
- onRightFast - triggered when encoders is turned right fast (multiple detents per second)
- Single Shaft Encoders
- Dual Shaft Encoders
Analog input devices can be connected to the analog pins of your MobiFlight Board. An analog input device will vary the voltage between 0-5V at the respective pin which will translated into a value between 0 and 1024.
Pin Settings
- Pin - Only allows to choose from the analog pins that are available.
Sensitivity
- Can be set from high (1) to low (20) - the value indicates how much the value has to change at the analog input to actually trigger an input event. The smaller the value, the more events are triggered.
Name
- The name of the device (max 16 characters)
Analog input devices provide the following events
- onChange - is triggered when the input value changes (depending on sensitivity setting) and you can reference the current value by using the @-Symbol.
- Potentiometers are the typical device that you can connect via an analog input.
Input Shift Registers allow to increase the number of buttons. Read more information about how to configure and use an input shift register with MobiFlight
Pin Settings
- Latch
- Clock
- Data
- # of 8 bit registers
Name
- The name of the device (max 16 characters)
Input Shift Registers support the the same events like a button.
- SPI input shift register, e.g. 74HC165
Multiplexer allow to increase the number of buttons.
Pin Settings
- S0, S1, S2, S3 - these are the channel select pins. You define these pins only once per MobiFlight board.
- Data - the data pin. Every additional multiplexer defines their own data pin.
- Type - select whether you have a 8bit or 16bit multiplexer, default is 16bit
Name
- The name of the device (max 16 characters)
Input Multiplexer support the the same events like a button.
- 74HC4067 (16-bit multiplexer)
The "LED / Output" is a simple one pin output that can be either set to "On" (5V) or "Off" (0V). This allows to drive LEDs or relais, transistors, etc. Depending on your Arduino board, some pins support PWM signals. In this case, you can control the PWM signal through values from 0-255.
Pin Settings
- Pin - define the pin for the output, if pin supports PWM, then (PWM) will be displayed.
Name
- The name of the device (max 16 characters)
- LEDs
- Relais, optocoupler, etc.
7-Segment modules are used frequently in plane avionics like radios or autopilots. MobiFlight supports MAX7219 and TM1637 drivers.
MAX7219 can drive 8 digits. They require three pins. You can daisy-chain MAX7219 chips and compatible modules. Up to 8 modules or chips can be in one such chain.
TM1637 drivers can drive 6 digits; common modules on the market have four or six digits. They require two pins. They cannot be daisy chained.
Type Select what kind of chip the 7-segment device is using. You can choose from:
- MAX72xx - all MAX7219 or MAX7222 based displays
- TM1637 4Digit - TM1637 based displays with four (4) digits
- TM1637 6Digit - TM1637 based displays with six (6) digits
Pin Settings
- DIN - the SPI data in pin
- CS - the SPI chip select pin (only MAX7219)
- CLK - the SPI clock pin
- NUM - defines the number of modules that are daisy chained, this is needed for correct initialization and display.
Global intensity Adjust the global intensity and affect the default brigthness of the module on start of MobiFlight. You can later adjust the brightness as part of your output config.
Name
- The name of the device (max 16 characters)
- MAX7219 chips
- MAX7219 LED modules
- TM1637 4 and 6 digit chips and modules
Servo motors typically have a range of about 180 degrees and can be used for classic gauges and indicators.
Pin Settings
- DIN - the servo's DIN line
Name
- The name of the device (max 16 characters)
- Common servo motors, e.g. SG90
Servo motors typically have a range of about 180 degrees and can be used for classic gauges and indicators.
Pin Settings
- Pin1 - pin 1 for coil 1
- Pin2 - pin 1 for coil 2
- Pin3 - pin 2 for coil 1
- Pin4 - pin 2 for coil 2
The commonly available 28ybj stepper motors and the ULN2003 breakout boards have their pin labled the same way as the MobiFlight UI. Other stepper motors might have different order or labeling.
Auto Zero Input Stepper motors can be auto-homed by using a switch that closes when the "0"-position of the stepper is reached. This is optional. Remove the tick from the checkbox "None" and select a free pin instead where your switch is connected to.
Name
- The name of the device (max 16 characters)
- Common stepper motors, e.g. 28ybj
LCD Displays are very flexible and versatile displays that can display many different values at the same time. MobiFlight supports LCD Displays that come with a I2C connector. These connectors have to be connected to the I2C pins of your Arduino board. Individual LCDs must have their individual I2C addresses.
Display Settings
- Address - the I2C address of your lcd display. The dropdown contains the values that are configurable.
- Columns - the number of columns (characters) of your LCD display
- Lines - the number of lines (rows) of your LCD display
Name
- The name of the device (max 16 characters)
- Common LCD displays with I2C module, e.g. LCD 1602 (2 lines, 16 characters), LCD 2004 (4 lines, 20 characters)
Output Shift Registers allow to increase the number of simple outputs. Read more information about how to configure and use an output shift register with MobiFlight
Pin Settings
- Latch
- Clock
- Data
- # of 8 bit registers
Name
- The name of the device (max 16 characters)
- SPI output shift register, e.g. 74HC595
Custom devices are a new type of supported device which allows the MobiFlight Community to extend the capabilities of the MobiFlight boards.
You can add and remove custom devices in the same way you do it for Input devices or Output devices
The list of available custom devices depends on the connected board and whether the board supports one or more specific custom device.A custom device requires a specific firmware and a specific config file for MobiFlight which has to be installed into the devices
-folder.
The process currently is very manual since this a very new and experimental feature. Please contact the provider of the custom device for installation instructions.
- 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