Peter_n:
Using no pullups (just the internal) and 3k9 is a big difference. But I can not guarantee it will work.
If you give links to your modules, I can try to see if there are pullup resistors. Most modules have them.
Can you try other values, like 10k ? or 22k ? If that already makes it work, then 3k9 will be good.The pullup resistors should be placed at the Arduino side. There is no science behind that, it is common use that the I2C Master has the pullup resistors.
When all your modules are 5V modules, and they have a 5V I2C bus, you can connect the pullup to 5V.
When one of the modules is a 3.3V module, you might fry it when the SDA and SCL are pulled to 5V. In that case you need to pullup to 3.3V. But if you have 5V I2C mixed with 3.3V I2C and longer wires, you better use a level shifter to get it right.You don't have to calculate the exact pullup resistor. You could have used 2k2 or 4k7. Some I2C devices allow a pullup of 1k (the total parallel pullup resistor), while other devices start grumbling with 2k2. So the rule of thumb is to use 4k7. The maximum value is about 10k, higher values makes the I2C bus vulnerable for electric noise, even if the I2C stays on a pcb board.
Here are links to my 2 I2C modules:
RTC from SparkFun, they provide a schematic and I don't see any pull up resistors. Looking at the physical board I also don't see any pull up resistors:
Device: SparkFun Real Time Clock Module - BOB-12708 - SparkFun Electronics
Schematic: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/BreakoutBoards/RTC-Module-v13.pdf
This one is a little more of a guess, StainSmart LCD with I2C interface:
Where I bought it: http://www.amazon.com/gp/product/B0080DYTZQ/ref=oh_details_o07_s00_i02?ie=UTF8&psc=1
Stain Smart's Page: http://www.sainsmart.com/sainsmart-iic-i2c-twi-serial-2004-20x4-lcd-module-shield-for-arduino-uno-mega-r3.html
They do have a download there that has specs on it, as well as a PDF of the traces on the I2C Board, I don't see any resistors, and the board itself I can only look at one side because it's soldered to the display but I don't see resistors there either. I'm not impressed with the level of information provided, or the fact that the wrong I2C address was provided but if I can get it to work this will save me from having to redesign everything to go to a Mega.
Both Modules take 5V power BTW, and so far the circuit is working great!
Thank you so much for all your help Peter!
Whiskey