I've done master and slave in software on PIC. I think the master runs slower than most hardware driven masters, but who is counting cycles when you can do it all on 2 wires. The slave runs at a compatible speed to the master software. Our most complex I2C setup is: Master PIC with lots of logic, LCD, keypad, etc 0 Clock/alarm (via interrupt line) device for time keeping, 24 hou r wakeup alarms, etc. 2 8 kByte memory device 3 PIC with 6 line serial link to a PC. Non-I2C interrupt line to master when a message arrives The interrupt lines are needed to trigger the master to read from the device when an event occurs. Ed Todd