When making cockpit controls you should define all types of inputs to be used and know what type of switches you need to control every function in your cockpit - toggle switch with maintained functions (OFF-ON), toggle switch with one or two momentary positions, push-button switch with either momentary or alternate functions, etc.
For more information about the different types of input actuators, see the tech guide pages.
Most of the systems in an aircraft cockpit are controlled with toggle switches, multi-position switches and momentary push-buttons. For parameter value increment/decrement two coupled momentary push-buttons (- and +) can be used in your cockpit. It can be buttons for map zooming, clock setting, trim adjustment, as well as for any other incremental inputs instead of using encoders.
Also, the rotary encoder is a commonly used input device for changing numerical data step-by-step. With SimVimCockpit you can configure any two input pins either for encoder or for a pair of increment/decrement buttons.
All multiplexers used for inputs are connected to the same bus as all output multiplexers. The difference is that for input only 4 address lines and 2 power lines are used.
The "EN" signal of each input extension board should be always logical "0" (set to GND). Usualy the multiplexer breakout board has a pull-down resistor on this 'EN" pin, so it can be already set to logical "0" but you need to be sure it is, so just connect it to GND.
The "SIG" output of every input multiplexer is connected directly to the pin assigned for this input extension.
1. To work with SimVimCockpit correctly, the throw terminals of every toggle switch or push-button should be connected to one input directly, without using any pull-up/pull-down resistors. Another, "pole" terminal is connected to the common GND bus:
2. To work with SimVimCockpit all encoders (or pair of push-buttons) should be connected to Arduino pins or multiplexer pins directly, without using any pull-up/pull-down resistors. Each encoder always occupies two adjacent inputs, and the common "C" terminal of each encoder is connected to the common GND bus:
NOTE: you need to know the positioning of the common ("C") terminal in each encoder, because it can be either in the middle or not.
Read more technical details about encoder types on this page: Tech Guides - Rotary Encoders
You can group a set of switches into one module/panel using multiplexer extension boards. Place several modules in different parts of your cockpit and connect them to the main board using only one pin for each multiplexer and the system bus wires, 5 (or 4) wires, +5 and GND, that are laid across the cockpit to each multiplexer:
Although we recommend to use the 16-channel multiplexers for inputs, even if you don't use all 16 channels, you can also use the 8-channel 74HC4051 multiplexer when you don't need many switches in one particular place.
There is no difference in code performance because the firmware function always counts it as 16-channel MUX.
Note: if you use the 8-bit multiplexer board you should not connect the "EN" input to the "GND". Instead you need to use the first 3 bus address lines for S0..S2 and connect the 4-th address line to the "EN" input of this multiplexer board.
Any switch, button, or encoder can be connected to the main controller board directly, without using extension boards (MUX). You can use this if you have a very simple control panel with a few switches, or you just need to connect additional switches to your system and you don't want to add more extension boards.