Hello,

I have a problem:

Our controller V3 works great (maybe 3000 parts in the market) with our display V3. They communicate via I2C (16F876 - 16F872). The producer has soldert a lot of 2,7k pullups and at last 4,7k pullups (poland...).
They work great!

Now, we have our display V4 (+PWM for LCD +RGB-backlight) and it works great with controller V3.
Our controller V4 (18F4585) works great with both displays.

The software is nearly the same...

Yesterday we have a problem:
The I2C-communication is bad. A display V4 works on controller V3 but not really on a controller V4. (MSSP receives no bytes)
Sometimes I put my hand over the display - it works, or I touch the display - it works - or not...

Yesterday night i checked out the software. I set down the speed of the I2C to maybe 60kHz - it works. Back to 100kHz - it works. Up to 300kHz - it works. ???

Today I checked again...
A few days ago we have changed the pullups from 4,7k to 3,3k - that may be the problem. But all people tell, the lower the pullups, the better the signal. (signal form is ok). Inserting 10k pullups - it works. And why does the 2,7k pullup worked so well ?

Where is my problem ?
Pullups to low ?