>Otherwise, use a couple of small NPN's (2n2222) in common emitter/open >collector mode - use resistor in base drive and invert the output >levels from 'standard' I2C, because the transistors will act as >inverters. I missed the original question describing the problem. Since a PIC can drive I2C buss lines directly (by writing a 0 to the port pin and controlling the appropriate TRIS bit to simulate an open collector (drain) output), I'm assuming that you want to use something like a printer port to drive I2C. This is easy: first use a couple of 4K7 resistors as pullups from the port pins to VCC to ensure that Vout HI goes all the way to 5V (early printer ports use TTL output drivers). To eliminate the forward drop of ordinary silicon diodes, use a hi gain sgnal transistor (2n2222, 2n4401, 2n3904, etc) and a 10K - 22K resistor connected as follows: one side of resistor to VCC, other side to base; emitter to Port o/p pin; collector to I2C buss line. Repeat for the other buss line. The basis for this is that the base resistor holds the transistor in saturation for about 0.1 to 0.2 Vdc drop. When the Port pin goes lo, so does the buss. When the Port pin is hi, the transistor base is at the same potential as the emitter and the transistor is turned off. Any other device pulling the buss lo does not affect the Port pin. BTW: you still need the 2 4K7 pullup resistors on the I2C buss lines. This avoids the problems of both diode drop and signal inversion. Dwayne