Riva - I removed the display from the breadboard [too many wires to disconnect from the Uno ] and the code uploaded but still nothing showing on the display. I also plugged an external 9V power supply into the barrel jack of the board.

Sorry Pedro147 I can't really help with the display though I will look in some detail later (meant to be working).Did you have the 9V supply connected before when it failed to upload the sketch or have you since connected it? If it was running off 9V then maybe there is a screen/wiring problem or it's still drawing to much power.

Riva - when I initially tried to upload the code I did not have the 9V supply connected. When you suggested that I try to upload with the display disconnected, I removed the display from the breadboard and the code uploaded successfully, so then I plugged the 9V supply into the board just in case it was drawing more current than the USB could supply.

cowasaki - yes I have checked the connectionS and they are as shown in the PDF that Docedison posted the link to in reply #2 of this thread. The LCD back light is lighting up.

Edit - I investigated a little further and found out that the code will not upload with the display connected to the breadboard with either USB only power or with both USB and 9V supply connected simultaneously, but if I remove the display from the breadboard the code will upload with only USB power connected or both USB and 9V

Edit - I investigated a little further and found out that the code will not upload with the display connected to the breadboard with either USB only power or with both USB and 9V supply connected simultaneously, but if I remove the display from the breadboard the code will upload with only USB power connected or both USB and 9V

The display should be wired for type B pinouts. It sounds like the your drawing to much current. Is the backlight powered from the arduino 5V pin? Disconnect it (pin 19 on the LCD) and see if you can upload code then.

Pedro,See the KS0108/GLCD playground page. There is quite a bit of information about this issue.Play close attention to the glcd reset pin wiring, and makesure to read all the notes about it and troubleshooting when uploading isnot working.

BTW, I don't particularly recommend the pdf file for documentation as it isnot actively maintained anymore. The included html documentation is better and more complete.The wiki/playground page has even more up to date notes in it since it is updated after the release.

1. leave reset line (display pin 18) disconnected. Code would upload but nothing displaying on glcd.2. connected reset line to Vcc (+5V) Code would upload but nothing displaying on glcd.The only other thing I could see to try was "small fraction of the glcds out there will need a reset pulse. For those that need a reset pulse and connecting the glcd to the arduino reset line causes the autoreset on the aruduino board to fail, the library must be used to reset the glcd which requires another Arduino pin. In order to enable this functionality edit the pin configuration file and uncomment the line that looks like this: // Reset Bit - uncomment the next line if reset is connected to an output pin //#define glcdRES 19 // Reset Bit "I found the line to uncomment in the ks0108_Arduino file of the config folder, but I do not understand what this means "And then connect the Arduino pin specified by glcdRES to the glcd module's reset pin."Other than the glcd's reset pin is pin 18, and that the only Uno pins left are A5 (D19?) and Tx Rx pins 0 and 1 and D1 D2.Just to clarify, regarding the contrast pot connections, I have a 10k pot with the centre (wiper) pin connected to pin 3 of the glcd, one outer pot pin connected to glcd pin 18 and the other outer pot pin to glcd pin 1 and ground. Also I have a 220 0hm resister fitted in the back light pin 20 ground line.I apologise for my lack of understanding, so much to learn. Thanks everyone for your time Pedro.

According to the datasheet, glcd pin 18 is not the reset pin.glcd pin 18 is Vee which is the negative voltage used to drive the contrastcircuit. It should be hooked up to one leg of the pot.The glcd reset pin is glcd pin 17.

What code are you uploading?I highly recommend using the diag sketch as it can offer clues asto what is going on.My guess is that something is not hooked up correctly.

For now stick with either of your options #1, or #2 (from your previous post) with respect to thereset line (just a reminder, reset is glcd pin 17 not glcd pin 18).I would start with leaving the glcd reset pin disconnected.

First thing,go back and verify each of the wires between the glcd and the arduino to make surethat they match the datasheet - that is much better than just going by "type A", or "type B".Use the datasheet to determine where each wire needs to go.This is why having the correct datasheet is critical. Without that, it is next to impossibleto get the connections correct.

To verify your arduino connections, look at the datasheet pinout, then look at the table on the wiki.Using the table on the wike page, focus on 2 columns:- Arduino 168- Function

What you do is follow down the data sheet pinout for each of the 20 pins.Some pins are voltage gnd, vcc, - those are easy.(connect the backlight pin LEDA to the resistor then to VCC)There is Vee which connects to 1 leg of the pot.There are also some special glcd pins like reset, and Vo. reset will be left disconnected for now. Vo (contrast voltage input) will be connected to the center wiper of the pot.Then there are the data and control glcd pins that must be connected to Arduino pins.For each pin on the datasheet that is a data or control pin, look at the wiki table column "Function"to locate the function, then look left to the "Arduino 168 column" to see where which Arduino pin the glcd pin should be connected to.

For example, on your sheet you can see thatglcd pin 4 is D/INow go down the function column on the wiki table then go left to see that in the Arduino 168 columnthat should be hooked up to Arduino pin 17.a few more exmaples:glcd pin 14 is DB7 which hooks to Arduino pin 7glcd pin 16 is CS2 which hooks to Arduino pin 15 (analog 1)

As far as actual connections go, how are you attaching the wires to the glcd module?soldering them? Soldering a 20 pin header and using a breadboard?

Can you post some clear closeup pictures of your wiring:- a closeup of the wires connected to the Arduino- a closeup of the wires connected to the glcd module- a wider shot that shows everything.The goal of the photos is to be able to identify where all the wires are going.If I can see that I can be a second set of eyes to see if anything looks out of place.

It would also help to run the diag sketch and post the output from the serial port here.That will offer some clues as to what is happening.

you explain things in a very clear and concise manner. I have soldered a header pin strip to the display and this is plugged into a breadboard. My soldering looks good to me but I might check the continuity of all these joints just to be sure. As for photos of my setup, I will have to tidy up the wiring layout so that you can see where they all go to (too many wires) I also ran the diag sketch but when I tried to copy/paste the serial monitor output , to save as a text file Windoze XP, it did not work. Ctrl-A (select all), Ctrl-C (copy) then Ctrl-V (paste) into notepad. So I had to do a screen capture of the first section of the serial monitor output and attach it as two images Serial_monitor_1 and Serial_monitor_1. I will post the set up photos ASAP,

A BUSY timeout means that the library is checking to see if the glcd module isready after powering up and after waiting longer than should be necessary,it wasn't. This is normally due to a wiring issue. (it could be related to the glcd reset pin)The glcd is more than likely actually ready but because of a wiring issuethe library is not seeing the proper glcd status.

One common error is getting the glcd pins reversed.From looking at the photos on the ebay link you provided, it appearsthat the glcd has pins 1 and 20 labeled. Just make sure to not to accidentallyreverse them when using the header and breadboard.

What kind of wire are you using?I'm assuming you are plugging the wires into the Arduino headersand the breadboard. Stranded wire doesn't work very well for this.Solid core wire is best.

If you want to verify your wiring against the library configuration, lookat the serial diag output.It displays each function followed by the arduino pin and port information as:function:ArduinoPin#(portinfo)

You can use this to verify the wiring by looking at the arduino pin# and making surethat it connects to the glcd pin associated with the designated function as indicatedby the datasheet.exampleDI:17(PIN_C3)means that Arduino pin 17 must connect to the glcd DI function which accordingto the datasheet is glcd pin 4

If you are positive that the wiring is correct, then it may require enabling s/w reset.This is done by going into the config file and uncommenting the line with the glcdRES(to uncomment the line remove the comment indicator the two slashes at the beginning of the line)Then hook arduino pin 19 to the glcd reset pin (glcd pin 17).

These displays must be very touchy or else I have been at this for too long today XD I verified the wiring by checking the data sheet against the pin allocations on the serial monitor. After trying the config file uncommenting and reset line to Uno pin 19 procedure which was unsuccessful, I connected the reset line to Vcc and uploaded the GLCD diags sketch again. This time to my surprise the test was successful. I have attached the screen capture of the serial monitor output. I then tried to upload the Hello World sketch but nothing showed on the screen. After leaving all this experimenting alone for a while (to let my sanity return) I tried to upload the GLCD diag sketch again but it is back to the initial "initialisation failed: BUSY"error. I had changed nothing since the upload when the initialisation tests passed. I am still using the multi stranded jumper leads until I can fit some solid core wires. Any clue as to what might be going on. Maybe I need to leave it for a while, but it is perplexing that it eventually initialised correctly and then suddenly went back to the initial error, Pedro

Those types of stranded wires are prefect for this kind of stuff.If the ends of the wires are stranded and just twisted together,they are difficult to push into the headers or a breadboard.If the connections between the wires and the sockets are marginal, all kinds of weird things can happen.Simply touching or moving something can cause connection issues.On the female headers like what is on the Arduino board, stray strands can also twist aroundand short to the adjacent pin under the plastic header.I would say never use wires with stranded ends or expect issues.

How long are your wires? Long wires can also cause issues.

As far as initialization goes, Other than faulty wires/wiring, there is no reason I can think of why tieing glcd resetto VCC would work, when using the additional pin for s/w reset wouldn't work.The best solution to guarantee a proper initialization every time is to use theadditional pin for software reset.If connecting the glcd reset pin to VCC or leaving it disconnected, then the only way to reset the glcd module is to power it off. What that means is that in order to start a clean initialization, the boardand glcd must be power cycled.Without power cycling, a single faulty initialization can lead to seeing things not working becauseof something going wrong in the past.

Using the extra pin to allow the library to reset the glcd is the best wayto ensure that the library and the glcd are both starting clean duringinitialization. It uses an extra pin which is why it isn't the default.The next best way is to use the reset pin from the Arduino, but becauseof the poor auto-reset circuit on the Arudino, it doesn't work on someboards.If tying gcd reset to VCC or leaving it disconnected, the board and glcdneed to be power cycled between tests to ensure the glcd is startingfrom a clean uninitialized/power-up state since there is no wayto reset it.

When diags worked, were you seeing the diag images on the displayand can you adjust the pixel intensity by adjusting the contrast pot?The html documentation included in the library has a section on diags with sample images of whatthe display will look like during diags.

My stranded wire are the type with pins on the end and none of them are what I would call particularly long. I have now got the diag sketch uploading with the glcd reset line tied to pin 19 of the Uno with the appropriate modification to the config file. There are no images showing on the glcd and the contrast pot seems to do nothing, but I assume that it will not do anything until there is some image to adjust the contrast of. I have attached some images of my setup but it is difficult to get any that are very helpful. I will try and reconfigure the circuit so that you can see where everything is going,