>And I shouldn't be communicating using bsf/bcf on >the ports.. instead use the TRIS bits? This seems odd. What is even more odd is why you seem to be using a software bit bang of the I2C instead of using the internal MSSP I2C hardware. Your subject line says you are using an 877 which has this and it is real easy to use. And yes, you should be using pull up resistors on both the clock and data line as your PIC should have both lines as "open collector" types. This is done automatically by the MSSP hardware, but is why you need to use the TRIS registers to set the bits to a 0 state when doing a bit bang implementation. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.