Cheap Ebay LCD I2C Module with Particle Photon (Help Needed)

I picked up an inexpensive 16x2 I2C LCD Module from Ebay for use with a Photon project. I chose this particular module for the background color. I figured that the I2C communication would work on any LCD module, but I'm having problems getting it working. I'm not sure if I need some sort of custom library for this thing.

The seller is BuyDisplay.com, aka EastRising. The unit was $5.90 on EBay, shipped from China (nicely packaged) in about 2 weeks. They also have a website with lots of datasheets and info.

Despite this, I can't get it to display anything. The backlight works, but I have been unable to get the display to function.

Below is my wiring diagram and code, which I incorporated from this tutorial by Apptechie. I also included pull-up resistors, but I tried the setup both with and without them to no avail.

The vendor documentation shows the I2C HEX address of the LCD as:
Write_Address 0x7c/*slave addresses with write
Read_Address 0x7d/*slave addresses with read
I tried both 0x7c and 0x7D, but neither worked.

Is this the proper library and code to interface with this device? Or is it a wiring/hardware issue? I'm new to I2C, so any help you can offer would be appreciated.

Wiring Diagram:

Code:

// This #include statement was automatically added by the Particle IDE.
#include <LiquidCrystal_I2C_Spark.h>

LiquidCrystal_I2C *lcd;

void setup() {
    Serial.begin(9600);
    // Write_Address 0x7c/*slave addresses with write*/
    // Read_Address 0x7d/*slave addresses with read*/
    //also tried addresses 0x18, 0x20, 0x22
    lcd = new LiquidCrystal_I2C(0x7d, 16, 2);
    lcd->init();
    lcd->backlight();
    lcd->clear();
    Time.zone(+2.00); 
}

void loop() {
    if (Time.now(), "%H:%M:%S" == "00:00:00") {
        lcd->clear(); }
        lcd->setCursor(0 ,0 );
        lcd->print("Go_Eagles!");
    }

Thanks in advance for the help!

From the data sheet you linked to, you have to tie pin 9 high and pin 10 low to enable i2c mode.

Have you done that?

The addresses provided by the vendor are 8bit addresses (two individual addresses for read or write distinguished via the lowest bit) but the Wire object expects the 7bit address (one address for read and write access: 0x7C >> 1 -> 0x3E) try that.

But if you are not sure whether you really got the correct addres, try scanning the I2C bus for the actual address.

1 Like

I have not done anything with pin 9 and 10. I see that on the datasheet, but it was not clear to me that I needed to do anything with those pins. I’ll try it and report back. Thanks.

1 Like

Well, I tried connecting pins 9 and 10 to hi and low respectively, as suggested. No luck. I tried changing the address to 0x3E as suggested. No luck.

I installed the I2C bus scanner code. Mostly, I got “no I2C device found”, but if when I picked the LCD up, I could occasionally get it to report 0x3E as the address. Seems like a loose connection. I double and triple checked my connections. No luck.

I’m thinking you get what you pay for. I think this thing is just junk. I do not recommend units from BuyDisplay,com, especially for beginners.

Can anyone recommend a reasonably priced I2C, easy to use LCD for the Photon?

Hi @undergrounder996

A lot of times these displays assume you have soldered the connections. If you are just pushing pins into holes, that doesn’t really work. If you give a picture we might be able to help more.

I have several of the Adafruit serial LCDs and like them. They are not i2c but serial. You pay more but they stand behind their products.

1 Like