I2C device addressing

In your testing for your site, did you run any multiple master configurations? I'm very curious on what the Arduino I2C library does in that case.

One of my code samples had both ends acting as a master. It's quite possible as such, I2C doesn't really have a master, more like "I'm master right now".

I didn't try too hard to get collisions. It wouldn't have been ... fun.

The protocol itself is supposed to detect it, but of course you would want to randomize a retry a bit, or they would keep happening.

There was a guy here a while back who posted a whole lot of boards connected together to do different things (they weren't identical). He used I2C, but I think he had a "assign me an address" button to work around the problem you are describing.