I have a LCD connected to a Arduino Mega 2560 using the instructions in LiquidCrystal library. It is not the first time I am using a 16x2 LCD but I never have encountered a problem like this. When I first connect the Arduino Mega to PC I see a row of blocks in first row of LCD which looks like normal to me. Then after that there is a block of white under each character.

Now I have searched a little and saw whole blocks which was due to bad soldering or bad wiring or etc. I have checked soldering and wiring twice. used 3 different LCD's and 2 different Mega's and it is still the same.

Any suggestions?

These are the images from when I turn it on:

image1 image2

[SOLVED] Update :

Looks like the POT was broken and did not respond the way it used to. So i replaced V0 with a 2.5k resistor and connected them to GND. Here is the updated image : image

  • can you please post an update later with adjusted contrast which looks fine? Dec 10, 2017 at 18:03
  • 1
    @user1306322 updated with image
    – KababChi
    Dec 11, 2017 at 14:28
  • My LCD display shows gibberish character. How do I troubleshoot?
    – Viz4 J
    Oct 10, 2018 at 4:23

2 Answers 2


The row of white blocks is what you get before the screen's initialized. It's normal.

The shadow behind the characters is because you have the contrast turned up too high. Adjust it down a little.


If your contrast is not adjustable by a pot, there's a resistor that goes on the contrast pin that controls the level of contrast, which is what is causing the dark blocks.

  • 2
    Some LCD modules also have software contrast adjustment. Read the datasheet
    – slebetman
    Dec 11, 2017 at 4:39

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.