Long story short: I have bought this Surenoo RGB I2C LCD and it works unreliable. It seems that after a period of time (10 minutes) the I2C bus hangs and the code freezes.
the short question is: does someone know this Sureeno display and has a working library to share with me?
Long: I have some experience with i2c LCDs, but this LCD drives me crazy.
The display has an AIP31068L (close to the HD44780, but timing parameters differ for shure), the RGB LEDs are driven by a PCA9633
The i2c scanner sees both adresses the display @ 0x3E , the RGB IC @ 0x60 (and the 0x03 - works as designed).
As far as I understand the datasheet, the display should be used in 8bit mode.
I have tested the - DF Robot Libray - Grove Library - The HD44780 from Perry with the constructor hd44780_I2Clcd lcd(i2c_addr)
I get these unstability with all 3 libraries. So I suspect the display is somehow more different than expected.
The i2cdiag reports the pullup resistors are existing if the display is connected. The behaviour doesn't change if I add two extra 10K resistors.
Therefore I modified the low lewel i2c send of DFF Robot to see, what' happening on the I2C Bus. learnings: - only the LCD i2c communication produces errors. - Error codes from Wire.endTransmission() are 2 and 3. If I get an error 4 - the sketch stops. - the errors occures during text mode (starting with 0x40) and command mode (starting with 0x80), - i never see communication errors when talking to the RGB chip
Datasheet of Display http://surenoo.tech/download/01_SLC/1602/SLC1602LO.pdf?spm=a2g0s.imconversation.0.0.751b3e5fbkQ0Q9&file=SLC1602LO.pdf Suggested Library from vendor https://wiki.dfrobot.com/Gravity__I2C_16x2_Arduino_LCD_with_RGB_Font_Display_SKU__DFR0554?spm=a2g0s.imconversation.0.0.751b3e5fbkQ0Q9
It's not so much about the wasted money (10USD), but basically the display is quite that what i would like to use - and integrated i2c LCD with RGB backlight.
My target is an UNO clone, the used dupont wires are around 10cm.
Are there any suggestions I can do to find out, what's wrong with my display?
Sorry for the long post - please don't kill me with your answers - I'm not a native speaker...
this is some serial debug information with additional comments,
15:43:44.557 -> +++++++++++++++++++++++++++++ 15:43:44.557 -> 15:43:44.557 -> red 15:43:44.557 -> r 15:43:44.604 -> L2 40 20 --> first occurance of Error 2 while writing a char 15:43:48.337 -> green 15:43:48.337 -> g 15:43:48.337 -> L2 40 67 15:43:48.337 -> L2 40 62 15:43:52.110 -> blue 15:43:52.110 -> b 15:43:52.110 -> L2 40 75 15:43:55.915 -> reg 15:43:55.915 -> r 15:43:55.915 -> L3 40 38 --> first occurance of Error 3 while writen a char 15:43:59.667 -> cmd 15:44:00.067 -> 15:44:00.067 -> L2 80 C0 --> sequence of lot of lcd.setCursor - some fail 15:44:00.307 -> L2 80 C0 15:44:00.547 -> L3 80 80 15:44:00.747 -> L3 80 80 15:44:00.947 -> L2 80 C0 15:44:01.027 -> L3 80 80 15:44:01.587 -> L3 80 80 15:44:02.350 -> L2 80 80 15:44:02.550 -> red 15:44:02.550 -> r 15:44:06.312 -> green 15:44:06.312 -> g 15:44:10.114 -> blue 15:44:10.114 -> b 15:44:13.874 -> reg 15:44:13.874 -> 15:44:13.874 -> L3 80 C0r 15:44:17.678 -> cmd 15:44:17.838 -> 15:44:17.838 -> L2 80 C0 15:44:17.918 -> L3 80 80 15:44:18.078 -> L2 80 80 15:44:18.238 -> L4 80 80 --> Error 4 at command 0x80 0x80 and caboom *!*
edit: solved with help of this forum: follow the first 5 pages or https://werner.rothschopf.net/202009_arduino_liquid_crystal_wire_en.htm