TERMS Q & A B58 Sim SUPPORT

RealSimControl - System Architecture

The central control unit of the RealSimControl system is a single "master" controller board Mega2560 (Arduino2560) with RSC firmware uploaded to it once (until next firmware update).


  1. All toggle, momentary, rotary switches and encoders are connected to the system using simple input extension boards (multiplexers), totally up to 500-800 digital inputs can be configured (depending on how many pins you reserve for output devices). Also, direct connection can be used for simple cockpits.
  2. 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.
  3. At least 32 seven-segment indicators can be connected to the system, using output multiplexers. A few indicators can be connected directly to the master board.
  4. Additional "slave" controller boards (Arduino Nano/Uno) are used: for servos (up to 32), stepper motors (8-19 motrs now), LCD displays (10-20 LCDs) and key matrix inputs (+176 buttons). More slave boards can be added in future.
  5. You can connect up to 24 PWM-driven moving-coil gauges or other PWM controlled devices or LEDs, using one PWM driver. Also up to 15 direct PWM outputs can be use on 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 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 RealSimControl 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 RealSimControl 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.

RSC Firmware

The RSC firmware is a heavily optimized program code, written from scratch (without using third-party Arduino libraries) to handle a large number of inputs, synchronize data control for a large number of different input/output devices, exchange data between plugin and “slave” boards.

RSC interface doesn't allow to use the controller board as a "usual" Arduino and users can not add any custom code, as there is no Arduino sketch, and the plugin uploads firmware directly to the board. At this moment the Atmega2560 is used as a convenient and easily available controller platform for RSC firmware.


The system is designed to work with Roman's SimVimX plugin. The latest stable RSC firmware is usually included in the plugin, and it's' usually updated very rare (once in a few months or year), even if the SimVimX plugin or database is frequently updated. The RSC Firmware is loaded only once, directly from the SimVimX plugin menu, as described below or in the SimVimX page.

But sometimes I can provide the latest beta Firmware version on the Boosty blog or Patreon as additional file that regular subscribers can download and place it to the SimVimX plugin folder after that it will be uploaded automatically. Without this file the in-built firmware will be used.

Firmware upload

The RSC firmware needs to be uploaded to the master board from the plugin menu by the user just once at first time to the "fresh" Mega2560 board (If you have NO previously uploaded firmware).

First time Firmware Upload


  1. Open the "I/O Hardware" window from SimVimX plugin menu.
  2. Make sure the master board (Mega2560) is not connected to USB and click the "[Continue] button.
  3. Plug the master board (Mega2560) USB cable into X-Plane computer USB port.
  4. Click the button >> "Master" in the Firmware Upload section on the left. The [Upload] button will appear in the window.
  5. When you see "Controller Board Connected" click "UPLOAD" . Wait until firmware upload is complete (about 3-5 s).
  6. If you need to upload the Ethernet firmware version set the "Ethernet" checkbox before pressing "Upload".

  7. After upload the plugin will connect to this controller automatically.


On successful connection you will see the messages "Master Board: Connected (USB/LAN)" and "Configured: 1 Input, 1 Output"
This means your board is working correctly, and you can start wiring all input controls and output devices to the controller and use the Configuration tool to assign all of them, but before you can run a simple test to make sure:

  • Load some standard X-Plane aircraft (Cessna or Baron 58). Connect a toggle switch to pin #5 / GND and flip it on/off.
  • The on-screen Pitot switch will change its position accordingly with your real switch. The on-board LED on the master board will change its state (Pitot Heat is on/off).

SimVimX Connection, notes

  • You never need to upload the firmware to change I/O configuration. All you need to do for that is change your configuration file.
  • If you have changed the configuration "data.cfg" file while X-Plane is running, just click the "Reload Config" button in the Status window.
  • With firmware uploaded you no longer need to unplug your controller board USB cable before X-Plane launch.
  • The plugin should always establish connection automatically every time X-Plane is started, no matter how many times you have done it.
  • If you use Ethernet firmware instead of USB you don't need USB cable to be connected until you will need to upload a new firmware version.
  • You'll need an Ethernet module for communication if you use Ethernet firmware.
  • Note for Linux users: Some Linux distributions do not grant the user access to serial ports by default. In this case you need to add your user name to the "dialout" group.
    • Reload Config button reloads all SimVimX configuration, it should be used when you have saved a new or edited data configuration file.


      Firmware Auto-Update

      The plugin checks the currently used firmware version on connection, and if it needs updating (the new stable firmwre is included to the plugin or plugin finds a beta RSC file in the plugin folder), the program uploads the new firmware to the board and then establishes connection. There's nothing more for you to do for the serial USB version.

      • For Ethernet version you need to connect your master board to USB (or reconnect it) and click "Upload" - just like during the first upload.

      Alternative controller boards

      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 RealSimControl/SimVimCockpit, 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.


RealSimControl / SimVim / SimVimX 2012 - 2022