SimVimCockpit has native support of commonly used character LCDs with 4-bit parallel interface, such as 16x2, 16x4, 20x2, 24x2 and 40x2. No libraries are used, SimVim firmaware controls the LCD directly.
All standard ASCII Characters and a some of custom symbols can be used to display information on LCDs. Using online SimVim configurator you can easily assign any data to be displayed:
The SimVim LCD firmware for a separate slave board is imcluded in the SimVimCockpit since v. 0.9.46 as most users have voted for this method instead of old one (connecting displays to master board - see notes below). You need one Uno/Nano Arduino board with special SimVimLCD firmware onboard, that you should upload from the SimVim plugin menu.
Separate, "slave" Uno or Nano board with "SimVim LCD" firmware for connecting up to 12 different size (L x H) character LCDs.
The board can be placed near to your LCD "stack" and linked with master board with 2-wire Serial interface (Rx/Tx #3 on the mastr board). This allows to leave the master board bus for multiplexers addressing only, get more stable data flow for LCD, more control and configuration. In future some pins on this LCD board may be used for "virtual power bus" to control LCDs on/off on power loss)
The wiring is quite simple - all signal wires (4+1) in this system are used in parallel for all connected displays, only one signal line for each display is used separatelly for every specific display.
This method is used as replacement of previously used "direct" connection to master board. If you are using some LCDs already, rewiring will not be a problem (the same 4-wire connections, but to additional board instead of master.
These displays consume very little power from the power source, so you can use +5v from the same SimVim bus. To be able to see something on the screen, you need to add contrast control to the input (V0) using a small potentiometer / trimpot (resistance can be from 1K to 10K Ohm) connected between +5V and GND:
On the other side of the LCD there are two inputs for the backlight LED ( +A - anode, -K - cathode). The "K" input connected to the common GND, and "A" - to the "+" of the power source, which can also be an additional power supply.
Although the backlight LEDs can consume quite much power, you can still connect the A input to the bus +5V instead of an external source. This is especially viable if you use a powerful source for +5v line in your system bus, not taken from the controller board +5 output. Use an additional resistor (50 - 100 Ohm) on the A input in this case.
Select the LCD slave board in the configurator, click on the free pin and assign LCD type.
Choose a parameter for LCD output in the configurator, then select an assigned display and enter the line number and position for your data.
To output additional parameter value on the same display, you need to select second parameter, then select the same display output pin number as for the first parameter was assigned (use the "Apeernd" button), and then enter start position and line number.
You can configure LCD to display some custom text with the data value or as fixed text or text displayed by conditions.
You can select a "LED-type" parameter (annunciator) and configure it for LCD to display some custom text as annunciator.
Note 1 : We left the "direct" connection to the master board using the SimVim data bus (possibly only as temporary solution for some compatibility).
But, you can use only the pins with numbers 20,21 and 30-49 . So, if you have LCD connected to pins 2-13 and want to leave it connwcted to master board, you need to reconfigure it and connect to another pin.
You need to use only 5 signal lines and GND connected to the data bus and one signal line connected to the output pin assigned for this particular display (only pins with numbers 20,21 and 30-53 can be used!). Four address/data lines S0,S1,S2,S3 should be connected to 4 data inputs of every LCD - D4,D5,D6,D7. The "D" signal of the bus is connected to the "RS" (register select) input of the LCD.