I have to admit I find I2C quite convenient. Yes, it helps to keep distances (very) short, use appropriately sized pullups and don't try to use it to transmit vast amounts of data. But other than that, I personally find it one of the easiest ways to interface two microcontrollers. Easier than Serial, and much easier than OneWire (although that works quite nicely over longer distances).
1 Like