I2C in a slightly different way

In Arduino IDE there is Wire library available, supporting I2C protocol (you can read about it on Arduino pages, in irreplaceable Playground section).

I2C - Boarduino and BlinkM joined together via I2C. CC by http://www.flickr.com/photos/ladyada/

Todd Kurt wrote on his blog that he will make the code of a new library for I2C – SoftI2CMaster accesible through various projects related to BlinkM.

How it differs from Wire?

First, it’s software implementation. It doesn’t utilize internal I2C module. As a result – it works only in Master mode (it can only transmit), but it’s not tied to pins A4 and A5, as is the case with the internal module. SoftI2CMaster can use any of the digital inputs/outputs. Moreover, the library is written so as to cope better with interferences and noises on the line. Thanks to that, it can work at greater distances.

For sure there will be good application for it in your projects :)