Problem using LiquidCrystal_I2C


I’ve bought a LiquidCrystal_I2C last month but I not able to make it work.
All I’ve it’s black boxes on screen or crazy characters like this:

The scan to know the address give me: 0x27.
The wire on the I2C to know the pin give me this: (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE). Furthermore, another buyer of this screen found the same wired than me, so I can suppose that I’ts ok.
The wire between the I2C and the arduino is good.
The chip on the I2C is a Philips PCF8574P.
The liquidCrystal is a 2004A.

Before posting here, I read and tryed several solutions but no one worked.
Libraries that I tryed:
_ LiquidCrystal_I2C
_ LiquidCrystal_I2C2004V1
_ LiquidCrystal_I2C2004V1_Chinese
_ LiquidCrystal_V1.2.1
_ NewliquidCrystal_1.3.4

Old topic that I read (incluing all the topics linked in each topic):

Using this sketch I just have the light of the display clipping but nothing on it, so it seen to be working without text.

** Example Arduino sketch for SainSmart I2C LCD Screen 16x2
** based on
** by
** Edward Comer
** LICENSE: GNU General Public License, version 3 (GPL-3.0)

** This example uses F Malpartida's NewLiquidCrystal library. Obtain from:

** Modified - Ian Brennan ianbren at 23-10-2012 to support Tutorial posted to

** Written for and tested with Arduino 1.0
** NOTE: Tested on Arduino Uno whose I2C pins are A4==SDA, A5==SCL

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define I2C_ADDR    0x27 // <<----- Add your address here.  Find it from I2C Scanner
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

int n = 1;

LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup()
  lcd.begin (20,4); //  <<----- My LCD was 20x4

// Switch on the backlight
lcd.home (); // go home


void loop()
  // Backlight on/off every 3 seconds
  lcd.setCursor (0,1);        // go to start of 2nd line
  lcd.setBacklight(LOW);      // Backlight off
  lcd.setBacklight(HIGH);     // Backlight on

I’m new in this so maybe that I’m not doing something as it should.
The other solution is that the I2C is bugged, but before buying another one I would like to check if I’m not the problem by missing a basic thing.

Thank you.

Libraries that I tryed: . . .

Old topic that I read (incluing all the topics linked in each topic): . . .

Try using the search bar at the upper right corner of this page and search for I2C LCD. Then look at some of the more recent threads on this topic and you will find that the currently recommended library is the one by 'fm' which you can find here. Also read the background information about the installation and use of the library here.


Hello Floresta,

Thank you for your reply.

I already try and read the 2 links that you are talking about, I just forget to write it.

I'm still reading things about it to learn but at the moment, like I said, I'm thinking that the problem is the I2C :confused:

I've edit the first post with more details.

I've edit the first post with more details.



if not yet done, have a look at this thread.
Your problem sounds very familiar to me and maybe my workaround works for you.
Make sure, that you throw all other LCD libraries out of your Arduino library (delete or back them up somewhere else or at least zip them). The only library you should keep ist the one mentioned in floresta's post above (latest version: 1.3.4).

Let us know if that works for you. Keep in mind that I had to modify my previous code only when having "updated" to IDE 1.6.7. With 1.6.5 it worked without modification ...

Keep in mind that I had to modify my previous code only when having "updated" to IDE 1.6.7. With 1.6.5 it worked without modification ...

Kind of like a Windoze "update", eh?

Kind of like a Windoze "update", eh?

.. yeah, that's why I am primarily working on a Mac and using Windoze just for unavoidable applications (like the ones for my CNC) - running Win in virtual box with my Mac doing the basics ...

Hello rpt007,

Thank you for trying helping me too.

Sorry for the delay to answer you but I ordered a new I2C and 2004A LCL.

First of all, talking about the old display, I alredy tryed the “NewliquidCrystal”, all of them. Of course, I delected the old one before trying another one). But no one was working.

I have the new one since yesterday, and it’s work ““better”” (but still have a problem). So the first one was really factory burned.

Talking about my new one:

The “NewliquidCrystal 1.3.4” don’t work too but I found a librairie that make it work but like I said, still have a problem on it.

If i use the Hello world sketch I only have the “H” write on the display.
If I use the CustomChars sketch, the first part, when I should see
“Hello world…”
" i “)
" arduinos!”

I only see the “H” (like the Hello world) and a “<3” in the 2 line but when it change to the “display all keycodes” I can see all of them:
bell note heart clock etc
(nothing at this moment)
&é”’(-è_çà etc"

I dont understand why I dont see the first screen but I can see all the other one!

I still didn’t have read your thread, but I will do it tomorow!

have a nice day!