darnegar:
I have the email with the specific KS0108 module datasheet which had been sent to me by the seller, this specifies that the KS0108 uses Pinout B, but the mapping is applied for the Mega Arduino.
Again, you should be using a real datasheet - not ks0108 pinout table references.
While pinout tables can be convenient, they are error prone and errors in wiring can potentially damage the glcd or the Arduino.
A real ks0108 datasheet will show the glcd function for each module pin.
That is what you need.
There are 3 different "ks0108" libraries that all share the same heritage from a library written by Fabian Maximilian Thiele.
- ks0108 - a port of Thiele's library to Arduino by Michael Michael Margolis
- glcd or glcd v3 - a partial re-write of ks0108 that I contributed heavily (it is faster and supports other glcds)
- openGLCD - a fork of glcdv3 that has more features and is licensed GPL v3 vs LGPL 2.1+
I am the sole author & maintainer of openGLCD.
While openGLCD is currently compatible with ks0108 & glcdv3 in many ways, it is a different library and I would recommend using the openGLCD documentation vs ks018 or glcdv3 documentation.
During the glcd library development Michael and I had many disagreements.
One area of those areas was panel / pinout types.
He "invented" them to try to make things easier for the Arduino crowd.
While it generally works and does make things a bit easier, especially for certain people, it isn't foolproof and users often need hand holding.
Also, if they pick or use the incorrect panel/pinout type, they can fry their glcd or the Arduino.
Another issue panel pinout types, and this was the last straw for me, was that there are multiple versions of this pinout type table that were different since these tables were being maintained on the ks0108 wiki that was open for public editing. This meant that there was no guarantee that a given pinout type was correct or that it would not change over time.
I saw cases were people would go in and modify the pinout type table on the ks0108 wiki instead of creating a new one. Even worse, I also saw cases where people would insert a new on in the middle of the list and bump the others down. i.e they would create a new panel C and bump the existing C to D.
There were and probably still are external references to these pinout tables.
The problem is that the external reference might specify a particular pinout type, but over time the table for that type might be modified or renamed. This is a BIG issue as using the incorrect table can fry things.
This is why I highly discourage their use.
You simply can't trust tables that can be modified by anyone at any point in time.
In openGLCD I immediately abandoned them or any reference to them in favor of simply using the glcd datasheet as that method will always work and is nearly as easy as using the pinout tables.
I have found the KS0108 documentation in the OpenGLCD library (didn't know about it thanks!).
There is information about it on the bitbucket wiki for openGLCD.
Though it's interesting, there's no direct mapping to the Nano board. Can I use any of the other board configurations for my Nano?
You can't just pick any config file.
openGLCD assigns its pins using a config file. You must wire up pins according to what is in the config file that is being used.
While you can override this, openGLCD picks a config file based on the board type selected in the IDE.
Do to the way the IDE works, there isn't always a 1 to 1 mapping between an IDE board type and a openGLCD config file.
If you run the diagnostic sketch it will tell you which pin config file is being used.
For the Nano, openGLCD should pick the uno pin config file, but run the diagnostic sketch as it will tell you.
The diagnostic sketch will also print out how all the glcd pins need to be wired to the Arduino.
You must wire the pins between the Arduino and the glcd the way the diagnostic reports them.
You can change the pins used to anything you want by modifying the config file; just make sure that they are wired up the way the diagnostic sketch reports.
You can read more about pin configuration and config files in the documentation.
Running the diag sketch and looking at the serial output is very useful when initially getting things working.
As for the Tx and the Rx, they weren't my choice to be exact, and I can understand why it is not recommended to use them, but aren't those pins D0 and D1, as specified in the mapping?
Not sure what mapping your are referring to (Arduino board pin mapping or openGLCD pin mappings)
But use of those pins must be your choice since openGLCD does not ship with any pin configuration that uses those pins. Being able to use the serial interface is necessary for the diag sketch.
--- bill