20x4 blue LCD not working despite trying hard!

Hi,
I bought a 20x4 blue LCD from ebay, 2PCS 2004 204 20x4 Character LCD Display Module HD44780 Blue Blacklight | eBay
It has J204A on the rear and is supposedly HD44780 compliant.

I'm having awful trouble with getting it to work. I followed the instructions here; Wiring a Character LCD | Character LCDs | Adafruit Learning System and in a number of other places. I'm not a complete electronics noob but am new to arduino. I have no problem getting blinky programs to work or analog inputs on my Uno or Nano's. No matter what I have tried I cannot get the simple "hello world" program to display. I have tried varying the input pins on the Uno with corresponding alterations to the LiquidCrystal lcd setup function, I have checked the wiring many many many times. Fully rewired it a few times. Tried a different breadboard. I tried running the LCD from a Nano. No characters will send to my LCD at all. The backlight works fine as does the contrast adjustment. All I ever get is line one and three highlighted. The LCD I bought came in a pack on two. Each shows the same response. So there is a possibility that both LCD's are duds. p.s. Excuse the photo attached - I know it is not very clean and unambiguous.
The only thing I can think of that is new or different in my setup is that I installed a new version of ubuntu 13.10 and Arduino. Correct board is selected, serial port that comes up by default is /dev/ttyACM0. No errors in compiling or uploading. Blinky programs work fine etc. I am at a loss as to what the problem is.

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup()
{
lcd.begin(20, 4);
lcd.print("hello, world!");
}

void loop()
{
}

Back off the contrast until you just see the pixels.
Your birds nest is too busy to follow.

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

Are you sure that your wiring matches this constructor? I can't check this with the photo that you have provided since some of the connections are obscured.

Don

dg23:
It has J204A on the rear and is supposedly HD44780 compliant.

It most certainly would be.

dg23:
All I ever get is line one and three highlighted.

Which indicates that the contrast is almost correctly set, but as LarryD suggests, you should adjust that impressive multi-turn pot until it just fades to blue.

dg23:
The LCD I bought came in a pack on two. Each shows the same response. So there is a possibility that both LCD's are duds.

That is absurdly unlikely. Much is said about "cheap" stuff, but in fact, it is almost always perfectly functional. I particularly doubt "Alice" sells junk.

dg23:
I am at a loss as to what the problem is.

So are we. As best I can see (with some risk of headache), your connections are correct, probably the correct sequence, and R/~W is grounded. You have of course tested it by using the reset button occasionally in case there is a problem with start-up time on the LCD?
Put a delay(200) in between the lcd.begin(20, 4); and lcd.print just in case.

Ok, evening number 3 tinkering with this. Thanks for all the help and suggestions and thanks to those who tried to figure out the rats rest of wires. I was getting very perplexed by this. Tried a full rewire. Tried uploading the sketch from a windows based PC. Tried a rewire of the main pins. Tried another rewire using the Nano this time. Spent some more time scratching my head for another while then decided to go back to basics. First principles - do your (new) wires have continuity? Does your LCD have continuity from its header pins to board pins? Anyway the problem turned out to be a faulty wire connecting E to D11. The wires are new, cheap (from hobbyking.com) and not great quality. At each wire I must have put that cable back in the same spot each time. That or I had introduces another problem somewhere. Great thing about the Nano is the tops of the pins are easily buzzed for continuity - not as easy on the Uno. Thanks for all your help.
My next problem is to try figure out why the dot . appears instead of the I on it.??

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
lcd.clear();
lcd.begin(20,4);
lcd.setCursor(0, 0);
lcd.print("Thank you guys");
lcd.setCursor(0, 1);
lcd.print("It works fine now.");
lcd.setCursor(0, 2);
lcd.print("It was a broken wire.");
}

void loop()
{
}

dg23:
Anyway the problem turned out to be a faulty wire connecting E to D11. The wires are new, cheap (from hobbyking.com) and not great quality.

Oh dear - I forgot about that! That one has bitten me before, so I usually do mention it and recommend testing them all with a meter or LED. The trick is to get a breadboard and chain all the wires you have back and forth to different pin rows, then measure from one end of the chain to the other - if there is a failure then divide the chain successively until it is found. I must just be getting a bit vague at this point but - well, we will remember it next time. Clearly the source of these wires in the China sweatshops is exactly the same for both "reputable" dealers and the "cheapies" on eBay.

dg23:
My next problem is to try figure out why the dot . appears instead of the I on it.??

Now that is puzzling. I think you will have to try a variety of messages to see what happens.

Paul__B:
.. The trick is to get a breadboard and chain all the wires you have back and forth to different pin rows, then measure from one end of the chain to the other - if there is a failure then divide the chain successively until it is found.

Good practical suggestion - cheers