20x4 LCD V1.3 with built-in I2C interface - does not work

Hello,

There are several threads related to this subject and while I am grateful for the wisdom that has been shared I would like to know how to "activate" built in interface, please.

My hardware is Arduino Nano v3, the I2C data and clock lines have pull up resistors 4k7 ohm to the 5 volt rail. I am using B Perry's HD44780-ext-I2C library and have run an I2C address-finder which returns " nothing found." If I swap the display for a 16x2 with external backpack interface, the address is found instantly as 0x27 so my Nano and I2C wiring should be correct.

I have asked Dr Google to find a circuit diagram for the V1.3 display module, without success. I have tried all three 20x4 modules purchased from Ali Express, none show anything other than two rows (numbers 1 and 3) of square boxes when I fit and adjust an external contrast potentiometer which I connected to the module's 16-pin connector (i.e. Vdd, Vss, Vo pins)

In a similar Forum posting from 2023, a picture is shown of a V1.3 display module with an external backpack interface. But this seems to defeat the point of having a built-in interface. Is there, somewhere on the board, a jumper or solder bridge that I need to connect to "activate" the built-in I2C interface, or are these modules "rejects" in some way, hence sold at a cheap price?

If I have to fit an external (backpack) I2C interface then so be it. If that is the case is someone kindly able to let me know the model / part number for such an interface please?

Kind regards,
Denis

Welcome to the forum

Please post a link to where you got the displays

Check, double check etc the wiring. Can you post a clear picture of your setup; we should be able to follow every single wire between the LCD and the Nano. Is there a breadboard involved?

If you bought from an unreliable supplier you probably got what you paid for.

Please show us a link of the display you have bought and any datasheet you have found for that LCD.

Furthermore please provide pictures of your setup - front and rear of the LCD so we can see what you have wired.

Usually LCDs with built in I2C interface have solder jumpers to activate either the parallel input or the I2C input.

Depending on the LCD model you are using, my library supports at least two different driver ICs.
The AIP31068L :

and the ST7070:

But first you need to clarify what module you really have.

Post legible photo of back and front of the LCD. It sounds like it is NOT an I2C device but some have a jumper.

It seems like things can't be too seriously wrong with the display. Posting your code might be helpful. You generally need to call the width and rows, something like
lcd.begin(20,4);

Or SPI.

@kanekobrown
These types of lcd devices usually use a communication protocol like the PCF2116/PCF2119x or the AIP31068 chipsets.
i.e. they don't use a PCF8574 i/o expander connected to a hd44780 parallel interface.
This means that libraries like LiquidCrystal_I2C and the hd44780 library hd44780_I2Cexp i/o class won't work with this device.

The i2c address range of the PCF2116/PCF2119x and AIP31068 is different than the i2c address range of the PCF8574.

The hd44780 library does have a hd44780_I2Clcd i/o class for this type of device.

All that said, we need to see the datasheet for this LCD to know for sure what type of i2c device it is, to know what library to use to talk to it.

--- bill

you did adjust the white pot on thev LCD interface...

The OP said he saw two rows of blocks when he fitted and adjusted a contrast pot.
This indicates that there is not a contrast issue but that the LCD is not initialized.
If there were a contrast issue either all the pixels for all the rows would be off or all the pixels on all the rows would be on.
i.e. no blocks at all or all rows have blocks on them due to the contrast being too low or too high.

--- bill

Hello all,

Firstly, I hope this is reaching all the ones who kindly responded. Secondly, I will honour your requests with photos and information that you need to understand my hardware / software setup. I will reply to these requests tonight (Perth, Western Australia time.)

Kind regards,

Denis

Hello all

It turns out that to use I2C with the V1.3 of LCD module 2004, the user should purchase and fit an associated "backpack" I2C interface. The on-board I2C circuitry does not include the necessary chips. Hopefully one day - V1.4 maybe? - the chips will be populated and the 2004 module can stand alone. Sorry for the "noise" in the thread but someone may benefit in future. And here have been some very helpful responses around the various LCD libraries on offer.

???