Darkboss99,
I suggest you ignore GolamMostafa.
He has offered similar unhelpful advice to others in a few other threads.
The advice he has offered you is not helpful and is just wasting your time.
There is no need to run any other sort of i2c scanner as that capability is built into the I2CexpDIag tool.
I2CexpDiag did a full address scan and reported a single i2c slave at 0x3f and that the i2c address is of the backpack is 0x3f
There is also no need to run any other i2c LCD library as hd44780 and the I2CexpDiag tool is all you need to help diagnose these types of issues.
The hd44780 library version you are using is very old. I'm curious where you got it.
Did you install it back in 2016?
First thing, I would like you to do is update to the latest hd44780 library
Use the IDE library manager and select hd44780 library version 0.9.3 from the list and update it.
(Just click on the update button to update library)
You want the newer version of hd44780 as there have been many fixes and updates since 0.7.1
You will likely see the same issues from I2CexpDiag, but there are several important fixes that you need so make sure to update the library to the latest version.
In terms of your issue, while it could be a bad LCD or a bad PCF8574 chip , those issues are very rare.
It appears that there is connectivity issues between PCF8574 chip and the LCD.
That is what causes the compare issues during the memory tests.
These types of errors are almost always caused by two things.
- The PCF8574 chips is not properly soldered to the backpack PCB (this is not very common)
- The backpack is not properly soldered to the LCD module PCB.
Given you are seeing issues with nearly all bits of the data,
I would suspect that the LCD backpack is not soldered to the LCD module.
Have you soldered the LCD backpack to the LCD module?
If not, that is your issue.
If you have, please post some photos of your LCD backpack and include some photos of the solder connections to the LCD module so we can inspect the solder joints for any issues.
--- bill