Yes the current library only supports a single display instance.
However, there is a way to “trick” the library into using more than one.
You can trick the library into thinking the multiple displays
are part of a larger single display.
See the attached images for examples of using two 128x64 displays.
There are some issues to be aware of:
The current code uses uint8_t for the pixel coordinates so you can’t have a pixel coordinate larger than 192,
which doesn’t seem to be an issue in this situation.
This means that you would create a 192x192 display by creating a virtual display of the physical displays
my mapping them vertically to create the larger display.
That said, the current code can only deal with having 4 chip selects, so depending on how your chip select
signals need to work, it may not work for all 3 displays.
It is very likely that you will need more than 4 chip selects.
The change to support more than 4 chips selects is quite trivial and if you chose to go down this path,
I can update the library for this.
With respect to wiring:
All glcd modules will share
- data lines,
- reset (if used)
Each module will have its own contrast control circuit and pot for control.
(You might be able to share the pot across all of them using the VEE signal from one,
but I’ve not dug deep enough to see if that could work or has any potential issues)
The chip selects may or may not be shared depending on how the
chipselects work for the GLCD.
More than likely the chipselects will not be shared.
So if you have a GLCD that uses 2 chip selects, then you will likely need to have 6 chip selects
and the macros that control the chip selects will need to be updated to support more than
the current 4 maximum.
Depending on how you are planing to use the displays wiring may be an issue.
(i.e. if they are not all very close to each other it will not work).
To use them/it, you use it as a single larger display. For text you can create text areas
that are within the desired physical display. Graphics is a bit of an issue since there is no equivalent
to a text area for graphics. So you have to be careful with your coordinates and clearing the display.
For clearing an individual physical display, you can cheat a bit and create a text area
that encompasses the pixels for the physical display and then use ClearArea() to clear that display.