
Youâve wired up your new I2C LCD display. The backlight turns on, but instead of text, you just see a row of solid blank boxes staring back at you menacingly. Donât panic! Your screen isnât broken. This is the most common issue beginners face, and it usually means you just need to adjust a tiny, hidden knob on the back until the text magically appears.
On the back of your I2C backpack (the small black board soldered to the LCD), there is a small blue box with a screw in it. This is a potentiometer that controls the contrast of the screen.
The Fix:
Note: If you turn it too far one way, the screen goes completely blank. Too far the other way, and it turns into solid boxes.
If adjusting the contrast didnât work, your Arduino might be trying to talk to the screen using the wrong I2C address.
Most displays use either 0x27 or 0x3F. If your code initializes the LCD with LiquidCrystal_I2C lcd(0x27, 16, 2); but your screenâs address is actually 0x3F, it wonât receive the data.
The Fix:
I2C device found at address 0x3F.(Need a refresher on I2C? Check out Lesson 127: Introduction to I2C LCD Displays).
If the I2C scanner hangs or says âNo I2C devices foundâ, your wiring is incorrect. For an Arduino Uno:
(Using a different board? Check out our Microcontroller Setup Guide to find the correct I2C pins for your specific board).
Let us know in the comments if one of these fixes worked for you!