System Architecture
The SimVimX interface is a bus-based system for a widely dispersed work area (such as the home cockpit). The central control unit of the SimVimX System is a single "master" controller board Mega2560 (Arduino2560) with SimVimX firmware uploaded to it only once (until next firmware update).
- All toggle, momentary, rotary switches and encoders are connected to the system using simple input extension boards (multiplexers), totally up to 500-600 digital inputs can be configured (depending on how many pins you reserve for output devices). Also, direct connection can be used for simple cockpits.
- Up to ~1000 LEDs can be connected using the output extensions - LED drivers, up to 64 LED for each extension. Also, direct connection can be used for few LEDs in simple cockpits.
- Up to 64 seven-segment displays (or displays plus LED drivers) can be connected to the system, using output multiplexers. A few indicators can be connected directly to the master board.
- Additional "slave" controller boards (Arduino Nano/Uno) are used: for servos (up to 32), stepper motors (8-19 motors now), LCD displays (12 LCDs) and key matrix inputs (+176 buttons). More slave boards can be added in future.
- Also, character LCDs can be used with "direct" connection, in case if you don't want to use the slave LCD board and have many free pins, or 12 LCD on the slave board is not enough.
- You can connect up to 24 PWM-driven moving-coil gauges or other PWM controlled devices or LEDs using one TLC5947 PWM driver or connect up to 15 directly to the master board if you have free pins not assigned to inputs/outpus.
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 used as four address lines (S0, S1, S2, S3) for all multiplexer boards and directly connected LCDs.
- #26 - "S (SIG)" Output port for OUTPUT extension boards only
- #27 - "L" - Control signal for 7-segment displays (except TM1637), Serial LEDs, PWM board
- #28 - "D" - Data signal for 7-segment displays (except TM1637), Serial LEDs, PWM bpard 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. However, in the firmware these outputs are always in "low level" state 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, matrix).
The pins #10, and 50-53 can not be not used in LAN version, as they are reserved by Ethernet module.
NOTE: The +5V output pin can be used as a source for all multiplexers connected to the system 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.
Alternative controller boards
You can use any of the Mega 2560 based controller boards available on the market. In the photo you can see three mini controller boards that are tested with SimVimX, the firmware was uploaded to every of these boards from SimVimX 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.