I am using a 20 x 4 LCD display connected via an I2C converter on an UNO R3. I am also connecting to the internet via a WS5100 Ethernet shield.
The problem I am having is that the LCD screen only seems to work intermittently. Some of the possible reasons I have identified but have not ruled out are
Length of connecting lead (15cm). I know I2C is only designed for short runs but should this be ok?
Pull up resisters on SDA / SCL lines? Are these required...I don't have any installed.
Size of code - I don't think this is an issue although I am at 88% program storage and 74% dynamic memory?
Does anybody have any thoughts or experience to point me in the correct direction?
15 cm should be fine. Your wires should either have soldered connections or properly crimped header pin connectors.
Yes, you should ALWAYS have pull-up resistors on the I2C bus.
Many of the backpacks have got pullups. Some do not.
I am using one of these "YwRobot Arduino LCM1602 IIC V1". There are no obvious pullup resistors on this interface board.
I am using the library from http://arduino-info.wikispaces.com/LCD-Blue-I2C
Even if there are no additional external hardware pull up resistors aren't the internal Arduino Uno pull ups activated (by the library would I expect)?
Invest $0.02 in two 4k7 resistors.
will dig some out of my Aladdin’s cave!
To close this one off and in case it helps someone else I dug out some 4K resistors and installed them as pull ups. Now instead of getting intermittent success with my LCD screen I have been able to install on a longer cable (about 1m) with no problems.