Faulty starter kit display (pins DB5 and DB6 somehow connected)?

I have been working on a project involving two Arduino Unos connected to a Vex Cortex, but in trying to connect a 16x2 LCD (from the starter kit) to one of the Arduinos I have been met with undesirable results. I am trying to use a couple phone cables and halves of duplex phone adapters to get the pins connected over to the LCD (and so that I can unplug it), but it just isn’t displaying anything. The display will turn on, even the backlight (without actually running power to the BL1 and BL2 pins), but nothing I try will get recognizable characters onscreen.

At first I realized that the R/W pin was connected to 5V instead of Gnd, but even after fixing that I’ve got no luck. Doing some testing with an LED I have found at least that the RS and E pins and the VO pin are receiving the correct signals, and likely the four data pins are as well (they are at least are turning on consistently, I don’t know what they should be doing exactly though). I have also checked many times that all of the wires going to the LCD are connected properly, and eventually found some unusual connections on the LCD.

I am still a newbie to electronics, I’ve been programming for four years, but I found that when powering pretty much any of the pins which should be receiving power, some other pins could return it a little bit, or at least power that LED enough to see it, except for pins DB5 and DB6. When either DB5 or DB6 is powered, so is the other. Again, I have checked many times through my wiring, even going so far as to disconnect everything and check all of the pins separately, and yet these pins are still somehow connected. My question is: Is this normal behavior, a faulty display, or somehow my fault?

(Also yes, the LCD is mounted inside the box it came in :slight_smile: )

There's more (from very recent investigation):

Pins on the LCD seem to bleed out to one another. I don't know how, but I have noticed on one pin 5 different voltage levels when the cable coming into my LCD box only gives 2. (That was on pin DB6, while sending a different incremental digit character after every second. e.g. 0... 1... 2... 3...)

Also, I forgot to mention that I built a tiny circuit on the Gnd side of the LCD circuit, which I put inside my other box, which uses a transistor, resistors, and an optocoupler to allow the Arduino to detect when the LCD is drawing power, while providing minimal resistance in the first place. However, it does resist current slightly, but while testing I have bypassed this circuit directly to ground, as the Arduino doesn't yet need to know if the LCD is plugged in or not.

The image posted shows the wiring is backwards. The soldering is quite poor as well.

Look at the lcd and understand which is pin 1 and which is pin 16. Then redo the wiring starting with ground and power on pin 1 and 2. 15 and 16 are for the backlight. You connected power and ground to them, and that's why it works.

I'm sure the soldering isn't great, but it works. I have tested every pin and wire (by trying to power a wire from my Arduino and completing the circuit with a probe wire touching the solder pad of the LCD), and each connection works as it should. Also, you're right... it is backwards. The labeling isn't quite so clear, it's backwards on the silk screen, and I didn't notice the numbers "1" and "16" on the pins.


(Edit: After rewiring it works great, and the poor soldering was in part due to the wrong tip)