I've connected an LCD display to an Arduino Uno following the instructions from the Adafruit LCD lesson.

Fritzing diagram

I've used the code sample described in the Adafruit lesson.

What happens after I connect the Uno to the USB cable is that the LCD lights up, but no text is displayed.

I've checked all connections and they look good. I am not 100%sure I have connected the potentiometer correctly, as this is the symptom I usually found online.

Could this also be a bad solder job? It's my first attempt and I guess it did not go that great.

Soldering detail

Here are some more images, maybe someone with more experience can spot the error.

enter image description here enter image description here enter image description here enter image description here

Update: here's what the board looks like once connected

enter image description here

and after removing the ethernet shield I get some weird flashes from time to time, only when I switch the potentiometer to maximum on one side, see video at https://i.imgur.com/ZclD2xz.mp4 .

Update 2: I realised that this is a 20-pin LCD screen and re-reading the datasheet and some online tutorials I switched digital wire connections to pins to the LCD 7-10 (DB0-DB3) - same result and then 11-14 (DB4-DB7) - garbled output, shown below. Still no idea what is wrong.

Garbled output after correcting pin connections

  • By "no text is displayed" what do you mean? Are there 4 rows of blocks displayed that are lighter than the background or darker than the background? Can you post a picture of the display when lit? Also I have had the Ethernet shield be problematic. Try removing that shield and givi'n her a go without it. If you have a volt meter, you can test the wiper voltage (the yellow wire) to ground and see if it varies as you turn the stem of the potentiometer.
    – MrFixIt87
    Dec 16, 2018 at 16:25
  • 3
    Hint: Start by removing the Ethernet Shield, then check the schematics for the shield and you will see why this was not a very good idea. Dec 16, 2018 at 16:46
  • @MrFixIt87 - thanks for the pointers! See my update with a screenshot and a link to a video of what happens after removing the Ethernet shield. Dec 16, 2018 at 21:30
  • 2
    Ok, so the LCD is a LCD12864 and that needs a different LCD driver. Use this "tutorial" instead. playground.arduino.cc/Code/LCD12864 Dec 17, 2018 at 0:08
  • 1
    The ethernet shield uses power and the backlight of the display uses power. I don't know this display, but the common 16x2 lcd displays needs a resistor for the backlight. The common displays require also a voltage near 5v. Perhaps you can add a resistor to the backlight to reduce the power usage. Measure the 5v pin to check that it is above 4.5v.
    – Jot
    Dec 17, 2018 at 8:19

1 Answer 1


From provided picture it is visible that your display is not alphanumeric display (with most popular HD44780 driver). It is a graphical display (most popular: KS0107 or KS0108 or ST7920). You can count horizontal pixels and vertical ones in the picture to confirm its resolution.
Without too many problems you can drive it with your Arduino. Try to use some of 128x64 Arduino libraries. Also, check the rear of the display for any part number to confirm the driver (search in google).
Good luck!

  • Thanks for the answer. I still need to wait a couple of days as I ran out of wires, so can't validate this right away... Dec 17, 2018 at 17:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.