Quote Originally Posted by RuudNL View Post
TRISB=0 sets the outputs to a solid low level, but the I2C commands are still not working.
Don't do that.
I2C requires the pins to be in INPUT mode when not transfering data.
The pins are never driven high, only low, which is why you need the pull-up resistors.

Since it's a 14K50, you're probably running at 48Mhz.
So you may want to add ...

DEFINE I2C_SLOW 1

Depending on if the device you're talking to is a 100Khz I2C part.
If it's a 400Khz part, you won't need it.