The whole thing is that these folks sell their stuff and rely on someone else to sort it out for them. The link in the LCD product page is not for my library (didn't check). But if it was, they could at least mention how they've mapped the I2c extender pins to the LCD to simplify the initialisation and use of what they sell!

They have even writen a sample sketch to go with it that is not correctly initialised as it uses 0x27 as its base address as opposed to 0x3F used by you LCD module. The sample sketch is called "sainlcdtest".

Yes...your Library you were trying to Direct me to was the same Andrew was......and the one sainsmart has you download is the same as well.

Here is what i was doign wrong all along! So In the beginning I had my I2C scanner running so I knew it was address 0x3F i was communicating with right?

Well when I had first downloaded that new LiquidCrystal Library...I discarded the other liquidCrystal library that is in 1.0.1 but what I was doing wrong: I didn't discard the LiquidCrystal_I2C library I had downloaded before...it kept wanting to use that one......because the LiquidCrystal_i2c.h and LCD.h is already in the new LiquidCrystal library.....Now I just have to tinker with the code to make it say what I want in the loop etc...

But you guys have been so great and patient...I REALLY APPRECIATE it.....

I was going to mention...about the sainsmart stuff....forget their 0x27 garbage! you need to verify the I2C address for the device you're communicating with via this I2C scanner code:

// i2c_scanner // // This program (or code that looks like it) // can be found in many places. // For example on the Arduino.cc forum. // The original author is not know. // // This sketch tests the standard 7-bit addresses // from 0 to 127. Devices with higher bit address // might not be seen properly. // // Adapted to be as simple as possible by Arduino.cc user Krodal // // June 2012 // Using Arduino 1.0.1 //

This whole thing of not publishing correct information about device addresses is a bit of a bother.

What I am pleased about is that they've linked the library in and respected the Open Source Creative Commons license! Cool.

Hey, Thanks for all your work and support on the library and being willing to support different devices. I have the SainSmart LCD 2004 also and was able to get mine working by following this thread. My device uses 0x27 as the address.

/*---When I asked the people at Sainsmart why their code didn't work, they sent me some other documentation etc that didn't work. I don't understand how they can sell products marketed specifically at the Arduino market and not have legitimate support. ---*/

Is there a way to have a 16x2 display with address 0x20 and a 20x4 with address 0x27 on the same I2C bus and be able to differentiate them in the code??? sending each different information etc.?