These signal lines are reserved for outputs only - LCD, 7-segment displays and LED drivers, see more in the related sections:
Note: These 8 pins are configured as outputs, so you may think about common precautions not allowing outputs overload when you mistakenly short the pin to the GND. You can add serial safety resistors (30 - 100 ohm to each signal line) for current limiting, but in HCSCI firmware these outputs are always in "low level" and for only a very short period of program time they can be in a high level state, so it's unlikely you will overload the address line.
NOTE: The +5V output pin can be used as a source for all multiplexers connected to HCSCI bus and also it can be used to power some low-current output devices. See more detail about system powering here.
You can create a flexible modular system and have full set of input controls for any complex cockpit and easily expand it by adding more extension modules at any time. Potentially, you may have (depended on inputs/outputs combination):
- up to 800 digital inputs (or to 540 with 32 axis inputs or +1000 LEDs);
- 176 buttons on key-matrix slave board;
- up to 11 LCD on the slave HCSCI LCD board + several LCD directly connected;
- at least 32 7-segment displays (can be as many as you want);
- up to 32 servo (18-20 with HCSCI servo driver, or 16-32 with WIT-motion driver);
- up to 19 stepper motor gauges (from 8 to 19, that can be extended in future)
- 24 PWM-driven moving-coil gauges.
The most important component used in the HCSCI 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 HCSCI, 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 HCSCI 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 HCSCI 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 use any ofthe Mega 2560 based controller boards available on the market. In the photo you can see three mini controller boards that are tested with HCSCI/SimVimCockpit, the firmware was uploaded to every of these boards from HCSCI plugin menu without any problems.
There are some other atmega2560 controller boards on the market like "Crumbuino-Mega", various "core" modules. You can find them yourself using such keywords as "2560 core", "atmega2560 mini", etc.
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.