My LCD Qapass with MH i2c does not display text.

this is the i2c i used. i2c

this is the LCD i used LCD

The code i am using is from sunfounder

// include the library code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//
char array1[]=" SunFounder "; //the string to print on the LCD
char array2[]="hello, world! "; //the string to print on the LCD
int tim = 500; //the value of delay time
// initialize the library with the numbers of the interface pins
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
/
/
void setup()
{
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
}
/
/
void loop()
{
lcd.setCursor(15,0); // set the cursor to column 15, line 0
for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++)
{
lcd.scrollDisplayLeft(); //Scrolls the contents of the display one space to the left.
lcd.print(array1[positionCounter1]); // Print a message to the LCD.
delay(tim); //wait for 250 microseconds
}
lcd.clear(); //Clears the LCD screen and positions the cursor in the upper-left corner.
lcd.setCursor(15,1); // set the cursor to column 15, line 1
for (int positionCounter = 0; positionCounter < 26; positionCounter++)
{
lcd.scrollDisplayLeft(); //Scrolls the contents of the display one space to the left.
lcd.print(array2[positionCounter]); // Print a message to the LCD.
delay(tim); //wait for 250 microseconds
}
lcd.clear(); //Clears the LCD screen and positions the cursor in the upper-left corner.
}
/
****/

The picture of the connections. pic

I can turn on the backlight. I already tried to adjust the pot. The text does not display.
I tried i2cexpDiag base on this post
my serial monitor display this:


Serial Initialized

I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool

hd44780 lib version: 0.9.3

Reported Arduino Revision: 1.8.5
CPU ARCH: AVR - F_CPU: 16000000

A4: digital pin: 18
A5: digital pin: 19
SDA: digital pin: 18
SCL: digital pin: 19

Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES

Scanning i2c bus for devices..
i2c device found at address 0x27
Total I2C devices found: 1

Scanning i2c bus for all lcd displays
LCD at address: 0x27 | config: P01245673H | R/W control: Yes
Total LCD devices found: 1

LCD Display Memory Test
Display: 0
Walking 1s data test:
Compare error: addr: 0 read 33 != wrote 1
Compare error: addr: 0 read 33 != wrote 2
Compare error: addr: 0 read 77 != wrote 4
Compare error: addr: 0 read 77 != wrote 8
Compare error: addr: 0 read 77 != wrote 10
Compare error: addr: 0 read 77 != wrote 20
Compare error: addr: 0 read 77 != wrote 40
Compare error: addr: 0 read 77 != wrote 80

Compare error: addr: 40 read 77 != wrote 1
Compare error: addr: 40 read 77 != wrote 2
Compare error: addr: 40 read 77 != wrote 4
Compare error: addr: 40 read 77 != wrote 8
Compare error: addr: 40 read 77 != wrote 10
Compare error: addr: 40 read 77 != wrote 20
Compare error: addr: 40 read 77 != wrote 40
Compare error: addr: 40 read 77 != wrote 80

Compare error: addr: 10 read 77 != wrote 1
Compare error: addr: 10 read 77 != wrote 2
Compare error: addr: 10 read 77 != wrote 4
Compare error: addr: 10 read 77 != wrote 8
Compare error: addr: 10 read 77 != wrote 10
Compare error: addr: 10 read 77 != wrote 20
Compare error: addr: 10 read 77 != wrote 40
Compare error: addr: 10 read 77 != wrote 80

Compare error: addr: 50 read 77 != wrote 1
Compare error: addr: 50 read 77 != wrote 2
Compare error: addr: 50 read 77 != wrote 4
Compare error: addr: 50 read 77 != wrote 8
Compare error: addr: 50 read 77 != wrote 10
Compare error: addr: 50 read 77 != wrote 20
Compare error: addr: 50 read 77 != wrote 40
Compare error: addr: 50 read 77 != wrote 80
FAILED
Address line test:
Compare error: addr: 0 read 77 != wrote 0
Compare error: addr: 1 read 77 != wrote 1
Compare error: addr: 2 read 77 != wrote 2
Compare error: addr: 3 read FF != wrote 3
Compare error: addr: 4 read FF != wrote 4
Compare error: addr: 5 read FF != wrote 5
Compare error: addr: 6 read FF != wrote 6
Compare error: addr: 7 read FF != wrote 7
Compare error: addr: 8 read FF != wrote 8
Compare error: addr: 9 read FF != wrote 9
Compare error: addr: B read FF != wrote B
Compare error: addr: C read FF != wrote C
Compare error: addr: E read FF != wrote E
Compare error: addr: F read FF != wrote F
Compare error: addr: 10 read FF != wrote 10
Compare error: addr: 11 read FF != wrote 11
Compare error: addr: 12 read FF != wrote 12
Compare error: addr: 13 read FF != wrote 13
Compare error: addr: 14 read FF != wrote 14
Compare error: addr: 15 read FF != wrote 15
Compare error: addr: 16 read FF != wrote 16
Compare error: addr: 17 read FF != wrote 17
Compare error: addr: 18 read FF != wrote 18
Compare error: addr: 19 read FF != wrote 19
Compare error: addr: 1A read FF != wrote 1A
Compare error: addr: 1B read FF != wrote 1B
Compare error: addr: 1C read FF != wrote 1C
Compare error: addr: 1D read FF != wrote 1D
Compare error: addr: 1E read FF != wrote 1E
Compare error: addr: 1F read FF != wrote 1F
Compare error: addr: 20 read FF != wrote 20
Compare error: addr: 21 read FF != wrote 21
Compare error: addr: 22 read FF != wrote 22
Compare error: addr: 23 read FF != wrote 23
Compare error: addr: 24 read FF != wrote 24
Compare error: addr: 25 read FF != wrote 25
Compare error: addr: 26 read FF != wrote 26
Compare error: addr: 27 read FF != wrote 27

Compare error: addr: 40 read FF != wrote 40
Compare error: addr: 41 read FF != wrote 41
Compare error: addr: 42 read FF != wrote 42
Compare error: addr: 43 read FF != wrote 43
Compare error: addr: 44 read FF != wrote 44
Compare error: addr: 45 read FF != wrote 45
Compare error: addr: 46 read FF != wrote 46
Compare error: addr: 47 read FF != wrote 47
Compare error: addr: 48 read FF != wrote 48
Compare error: addr: 49 read FF != wrote 49
Compare error: addr: 4A read FF != wrote 4A
Compare error: addr: 4B read FF != wrote 4B
Compare error: addr: 4C read FF != wrote 4C
Compare error: addr: 4D read FF != wrote 4D
Compare error: addr: 4E read 77 != wrote 4E
Compare error: addr: 4F read 77 != wrote 4F
Compare error: addr: 50 read FF != wrote 50
Compare error: addr: 51 read FF != wrote 51
Compare error: addr: 52 read FF != wrote 52
Compare error: addr: 53 read FF != wrote 53
Compare error: addr: 54 read FF != wrote 54
Compare error: addr: 55 read FF != wrote 55
Compare error: addr: 56 read FF != wrote 56
Compare error: addr: 57 read FF != wrote 57
Compare error: addr: 58 read FF != wrote 58
Compare error: addr: 59 read FF != wrote 59
Compare error: addr: 5A read FF != wrote 5A
Compare error: addr: 5B read 77 != wrote 5B
Compare error: addr: 5C read 77 != wrote 5C
Compare error: addr: 5D read 77 != wrote 5D
Compare error: addr: 5E read 77 != wrote 5E
Compare error: addr: 5F read 77 != wrote 5F
Compare error: addr: 60 read 77 != wrote 60
Compare error: addr: 61 read 77 != wrote 61
Compare error: addr: 62 read 77 != wrote 62
Compare error: addr: 63 read 77 != wrote 63
Compare error: addr: 64 read 77 != wrote 64
Compare error: addr: 65 read 77 != wrote 65
Compare error: addr: 66 read 77 != wrote 66
Compare error: addr: 67 read 77 != wrote 67
FAILED

No working LCD devices

Can you please help me? thank you

more than likely soldering issues.
Can you post a photo of your device showing the soldered pins of the backpack to the LCD so we can take a look at the soldering of the pins.

BTW, the backpack is normally soldered to the back of the LCD PCB vs the same side of the PCB as the LCD.

--- bill

Thanks for your feedback. Right know the device is under warranty. I think soldering it would make the warranty null and void. I would like to know if it works first before I solder. I have tried this on other LCD before and it seems to works even though it was unsoldered. Is there a way to solve this issue without soldering?

JAJSentina:
Is there a way to solve this issue without soldering?

No it can't be solved without soldering.

For a small/quick test, it is possible to test the LCD without soldering, but I don't recommend it.
You hold the lcd and then lift up a little bit and rotate the backpack to put some pressure on the pins in the holes.
It can be tricky to get things held in place and ensuring that all 16 pins are making contact with the LCD holes, but I have done this before for a quick test.
You have to hold the LCD and backpack in position while the Arduino is reset and can't let go or the connections will go bad.

For proper connections you need to solder the backpack connections to the LCD PCB.
Remember without good electrical connections things go haywire like what you are seeing.
These devices very seldom have issues.
Nearly all of the issues are caused by improper soldering or using incorrect s/w or incorrectly configured s/w.

--- bill

Okay i will solder. Btw is their a difference if i solder the i2c face-up or at the back.

You can solder it either to the LCD side of the PCB or the backside.
What matters is that pin 1 of the backpack header connects to pin 1 of the LCD PCB.
Usually, the backpack is soldered to the back side of the LCD PCB as it is out of the way.
Your original photo shows the orientation for the top.
Here is photo for the back.

When on the back, the LCD will sit a bit angled when resting and creates a nice viewing angle.

For a quick test you could put the backpack on the back side of the LCD and try to wedge something non conductive under it to hold it in place. It doesn't have to be lots of pressure but it does some pressure to hold it in place.
That might create good enough connections for a quick test.
But like I said, soldering is the way to go as when done properly, will ensure good connections that won't ever come loose.

--- bill

does it supposed to have a gap in between lcd and i2c as i place it flat, naturally. is the tilt okay?

Imgur

Imgur

If you want to do a quick test, you need to put something between the backpack and the LCD PCB to lift up on the backpack to create a small amount of pressure on the pins.

When soldering it, you have to make sure nothing shorts out and try to keep the backpack level/parallel with the LCD PCB.
You will need to put something there temporarily to keep the backpack parallel with the PCB and to act as a spacer to keep the backpack from touching anything on the LCD PCB. Be careful of the metal tabs holding the LCD frame.
While isn't absolutely necessary to keep it level/parallel with the LCD PCB it looks better if you do.
The main thing is you don't want the backpack touching anything.
You do not want to solder it the way it is angled down in the photo as it looks like the backpack is touching either the metal tab or the LCD PCB itself.
That can create a short.

--- bill

On several of my LCDs, there is a gap to create a space between the backpack and the PCB and to shorten the amount of pin sticking out of the hole on the LCD PCB.
It can easily be about 3mm gap of metal showing between the LCD PCB and the black plastic on the header of the backpack.

On others, the chip on the backpack rests on the black blob on the LCD PCB which creates the needed spacing.

--- bill

the blob on my lcd is a bit short. the i2c cannot rest on it without creating an angle or touching a part of the lcd. what can you recommend as spacer? is paper okay?

I finish soldering my i2c to lcd. still it is not working

Imgur

I think i am making progress. thanks for the guidance

here is now my i2expDiag:


Serial Initialized

I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool

hd44780 lib version: 0.9.3

Reported Arduino Revision: 1.8.5
CPU ARCH: AVR - F_CPU: 16000000

A4: digital pin: 18
A5: digital pin: 19
SDA: digital pin: 18
SCL: digital pin: 19

Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES

Scanning i2c bus for devices..
i2c device found at address 0x27
Total I2C devices found: 1

Scanning i2c bus for all lcd displays
LCD at address: 0x27 | config: P01245673H | R/W control: Yes
Total LCD devices found: 1

LCD Display Memory Test
Display: 0
Walking 1s data test: PASSED
Address line test: PASSED

Each working display should have its backlight on
and be displaying its #, address, and config information
If display is blank, but backlight is on, try adjusting contrast pot
If backlight is off, wait for next test

Blinking backlight test: to verify BL level autodetection
If backlight is mostly off but
you briefly see "BL Off" on display with backlight on,
then the library autodetected incorrect BL level
and the library cannot autoconfigure the device

Displaying 'uptime' on all displays

the Walking 1s data test and Address line test is now PASSED
as opposed previously that it failed.

However, i tried to show text on display but no text appears.
What do i do next?

bperrybap, thank you so much. I very much appreciate your help. it is now working. the last thing I did was adjust the pot. This keeps me motivated to learn more about arduino.

Imgur

Yea! Congratulations. It looks like it is all working now.

--- bill

I could not understand what was the solution? For me the symptoms are the same, but I can't show text. Just the Backlight blinking, what is working properly.