DI and RS are the same things. This is noted in the included
PDF and HTML documents as well as the connection table on the ks0108 playground web page.
Wow! thats a lot of wires, soldering and connectors .....
My concern is that with so many wires and connections the possibility
of errors or bad connections goes up substantially.
I solder male headers to the glcd and then plug it into a breadboard
and use that for all the connections connections.
It makes hooking things up much easier
since no additional soldering is needed. (maybe for the pot)
and jumper wires can be plugged into the Arduino and the breadboard.
For connections to PCBs I'll still use male headers on the glcd
but use a female header on the PCB board to allow easy
connection of the display to the PCB without having to use
An alternative is to use an IDE cable for the wires. Simply plug
the glcd with its soldered male headers into one side of the cable
and only use one half of the cable.
If you go this route, then make sure that all the wires go straight through
as some IDE cables have interconnections on the cable select connections.
Also make sure to limit the able length to less than 12-18 inches.
I've done limited tested with these cables at that length and it seems to work but
if you get too long it will create noise that will make things not work properly.
Using this strategy you can make you own shield that plugs into the
UNO using stacking headers (you have to bend the header pins for D8-D13 row)
and then you can solder on a small PCB mount pot and use a male header
to connect to an IDE cable.
What is on the top row pins on the Arduino board?
The connector/header looks odd in the photo.
Hooking up +5 to Vout (also known as Vee on some glcds) is not good.
That can very quickly burn out the glcd on board negative power supply used
to drive the contrast circuit.
Without that powersupply working, you will never see any pixels.
However, given that you are seeing pixels now that the contrast
pot and power connections are properly hooked up, it may be ok.
I would avoid using Arduino pins 0 and 1 as those are used for the serial
port and are hooked up to the FTDI/U8/U16 USB to serial conversion chip.
Trying to use them for something else will have issues/problems.
Using pin 1 may be ok since it normally isn't driven by the USB chip
but it might be useful to avoid it at least for initial testing of the glcd.
What were the results of running the diag sketch?
That would be the next step.
Run the diag sketch and post the results back here.
That will be the best way to try to diagnose any potential issues.
In nearly all cases a non functioning glcd is due to wiring issues
(incorrect connections, broken wires, faulty soldering, or poor electrical connections)
In a few case it is due to a bad glcd and those cases, it was almost
always due to previous incorrect wiring that damaged the glcd.
But even in those cases, some of the glcds still kind of sort of worked.
Often the damaged glcd still worked but the contrast circuit was damaged so
the pixels either didn't show up or had issues.