B58 Sim TERMS Of Use Q&A
Home Cockpit Simulator
Control Interface Software

START--> -> -> -> ->

HCSCI - Hardware

  • A single "master" Mega2560 board (Arduino2560) is used in the whole system as a central control unit.
  • The number of inputs/outputs can be extended to several hundreds using simple input extension boards and output drivers.
  • Additional "slave" boards are used for servo or stepper motors, LCD displays, key matrix inputs ... (more to come)
  • The HCSCI firmware is loaded only once, directly from the plugin, as described in the "Software" section.
  • All pins that are available in the CONFIGURATOR can be assigned for inputs/outputs or extensions

    Functions of the control/address bus pins:

  • Pins #22,23,24,25 are reserved and used as four address lines (S0 ... S3) for all INPUT multiplexer board and for multiplexers used as output extension for 7-segment displays.
  • These signal lines are reserved for outputs only - LCD, 7-segment displays and LED drivers, see more in the related sections:

  • #26 - "S (SIG)" Output port for OUTPUT extension boards
  • #27 - "L" - Control signal for all 7-segment displays (except TM1637), Serial LEDs, PWM
  • #28 - "D" - Data signal for all 7-segment displays (except TM1637), Serial LEDs, PWM and LCD displays.
  • #29 - "T" - Control signal for TM1637 7-segment displays only
  • 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.


  • The pins #14...19 can be used for serial communication with slave driver boards (steppers, servo, LCD drivers).
  • The pins #10, and 50-53 can not be not used in LAN version, they are reserved by Ethernet module.

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.


HCSCI - I/O Extensions

Input Extension board

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).


Outputs Extension for 7-segment displays

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:

  • S0,S1,S2,S3 inputs are connected to the same common 4 address bus lines
  • SIG ("Z") should be connected to the one "S" line on the master board
  • "EN" input is connected to the output pin assigned for this output multiplexer board.
  • C0..C15 outputs are used as input control signals for 7-segment indicators

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.



Other Output Extensions

  • 1. HCSCI supports multiple serial outputs (up to 64x LEDs for one signal line), for this you need to use LED drivers or shift registers (see the details in the Wiring Guides).
  • 2. HCSCI also supports "LED matrix output" (up to 64x LEDs for one output), for this you need to use the MAX7219 controller .
  • 3. To extend the number of PWM outputs in HCSCI use one 24-channel PWM driver TLC5947 ).

Slave controller Boards

  • 1. For stepper motors control additional HCSCI Stepper controller board is used. It is one Uno or Nano Arduino board with special HCSCI stepper control firmware uploaded to it from the HCSCI plugin menu.
  • 2. For servo control additional HCSCI Servo controller board is used. It is one Uno or Nano Arduino board with special HCSCI Servo control firmware uploaded to it from the HCSCI plugin menu. Also you can use the WitMotion 16-32-channel Servo Controllers.
  • 3. Support for Button Matrix Extension board, the "HCSCI Matrix" firmware is added and the "Matrix" board is included in the configurator.

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.


Alternative controller boards and extensions

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.

Option: 8-channel extension boards

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.


SimVimCockpit 2012 - 202X