Sorry, LCD black boxes once again 2004A I2C

UNO:

ESP32:

The LCD is a 2004A with a I2C:

I am getting text only in the first 8 spaces of the first two rows.

I have read a ton of previous black box post but none apply that I have seen.

If I disconnect the LCD power before compiling and then power up the LCD I get a clear blacklit LCD no black boxes, eventually the program cycles and I get the illustrated LCD.

Getting different results with different processors (boards) the ESP32 at least gets some clear text.

Sorry, no code posted, therefore no idea what the problem is. :astonished:

Looks like a hardware problem, could also have a software issue.

Turn contrast down so black rectangles just disappear.

Use CTRL T to format your code.
Attach your ‘complete’ sketch between code tags, use the </> icon in the posting menu.
[code]Paste your sketch here[/code]

Thanks for the replies.

HEL as in Hello World

It does not matter what code I use I get the same results!!

//DFRobot.com
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  


void setup()
{
//  lcd.init();                      // initialize the lcd 
lcd.begin(20,4); 
  lcd.backlight();
}

void loop()
{

  lcd.print("     Hello, world!        ");
lcd.setCursor ( 0,2 );            // go to the 2nd row
  lcd.print("12345IIC/I2C LCD2004c");
  lcd.setCursor ( 0,3 );            // go to the 3nd row
  lcd.print("12345IIC/I2C LCD2004b");
  lcd.setCursor ( 0,3 );            // go to the 4nd row
  lcd.print("12345IIC/I2C LCD2004a");   
}

re: contrast if I turn it it all the way up I see just black boxes if I turn it all the way down I get just a clear screen. I set it at about 80% and I see the text in the first 8
boxes on line 1 and 2.
CTRL T does not do anything.

I am using fm’s latest NewLiquidCrystal_lib.

Isn’t this 26 characters when your display is 20?

lcd.begin(20,4);
. . .
lcd.print(" Hello, world! ");

It does look like an LCD module h/w issue.
You could try running the I2CexpDiag sketch included in the hd44780 library in the hd44780_I2Cexp i/o class.
It will check the i2C signals, and then do a RAM test on the LCD module display memory.
The hd44780 library is available in the IDE library manager.

— bill

bperrybap:
It does look like an LCD module h/w issue.

Given that it is indeed, being correctly initialised, that appears to be the case.

This display has five driver chips. Each drives 16 characters. U1 is the primary chip.


This problem indicates that the data connection between U1 and the next chip in the chain is faulty. Since they are COB assemblies, this is probably unrepairable unless perhaps there is a gouge visible in the PCB.

The contrast was set correctly. Do not connect the contrast potentiometer to 5 V. This is a long-standing and silly blunder handed down from one amateurish design to another - for many years! :roll_eyes:

On my third module and it works!

Why can't I post images? I have the tags but my images do not show in preview so I do the link which thankfully works.

Thanks everybody for your help, it appears there is a hardware problem, now
using my reflow tools I wonder if I can get the I2C module off the LCD, any suggestions?

Ralph

Ralphpdq:
...
using my reflow tools I wonder if I can get the I2C module off the LCD, any suggestions?

I've done it before,
I used a desoldering tool and it didn't always work.

In your case since, particularly since you don't need to save the LCD,
I think it might be easier to use a dremel tool with a cutoff wheel to cut the pins between the i2c backpack module and the LCD module.
You could then pull off the plastic part of the header off the cut pins and desolder/remove the individual pins one by one as needed.
--- bill

Ralphpdq:
Why can't I post images? I have the tags but my images do not show in preview so I do the link which thankfully works.

Because you must put in the image tag, the URL of an image, not a Web page.

Better complain to the vendor about the faulty display. To de-solder from plated-through holes, you often (usually?) need to add some "real" solder to the joint before applying the solder sucker - I do it with a manual sucker. You then need to check that the pin is loose in each and every hole by moving it sideways with the tip of a screwdriver, "un-sticking" it from the hole. And if I get too pi**ed off with it, then like what Bill suggests. :grinning:

Whether you can effectively use a re-work tool I can't say. :astonished:

Well that didn't work. I had to really heat the pins up.

I did manage to separate the I2C module from the LCD.

Tested the I2C module for I2C address and got 6 different ones.
Tested the LCD and got the same error as I started with
so apparently it was a bad LCD. I had 3 bad LCDs.

But I have one that actually works as expected!

Thanks again everyone!!

Ralph