The most important component used in the RealSimControl system for input expansion is the CD74HC4067 multiplexer. The CD74HC4067 module (16-channel multiplexer) is widely available online as a cheap breakout board (less than $1 for a piece). Also, you can use the 8-channel 74HC4051 multiplexers if needed.
CD74HC4067 works as simple multiposition electronic "switch" when only one port of 16 is selected with 4 address lines (S0 ... S3) at any given time.
So, you can connect 16 toggle switches or momentary buttons to the multiplexer inputs, or use appropriate number of inputs for rotary switches and encoders. All multiplexers used for inputs are connected to 4 common address lines: S0,S1,S2,S3 (or pins #22,23,24,25).
To extend a number of 7-segment displays in RealSimControl, the same CD74HC4067 module is used, but used as reversed (output) multiplexer. You can also use several multiplexers for output, but most likely only one output expansion board will be sufficient for your entire system (16 displays).
The difference from the input multiplexer is the connection and direction of signals, in this case Z (SIG) is used as input, and all 16 channels are used as outputs:
The RealSimControl firmware program receives formatted data from the plugin that need to be changed for particular display. In the moment when needed channel is opened it sends data for output device connected to the selected channel.
Note: Any single extension board can be used either for inputs or outputs only! Don't try to connect switches to output multiplexer.
NOTE: Though the main input/output connection options mostly stay intact, the configuration protocol and hardware connections can be changed, sometimes drastically.
Please don't rush to make some kind of complex PCBs, modules for yourself (and especially proposing them to the community).
Besides, the RealSimControl architecture is specially designed the way when anyone can simply buy ready-to-use, cheap modules and breakout boards listed on this website and in the "Components" page, connect them as described on our pages, that's all.
You can also use the 8-channel 74HC4051 multiplexer when you don't need many switches (or 7-segment displays) in one particular place. There is no difference in code performance because the firmware function always counts it as 16-channel MUX.
1) For 8-bit INPUT 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.
2) For 8-bit OUTPUT multiplexer board the address line S3 is not used at all.