Opinion: Best way to have 2 arduinos communicate

What would you suggest on how to have 2 Arduinos, (ATMega 328 running at 16Mhz to be specific) Placed in close proximity, within 2 inches of each other, communicate with each other?

Software Serial, ISP, I2C ??

SPI will be the fastest, serial the easiest, and I2C somewhere in between in ease and about the same as serial in speed.

What are the criteria? Fast or easy? Two or one way?


Rob

For starters, I would suggest Serial if speed is not a priority in your application.

Thanks guys,

Speed isn't really an issue as long as I can keep timing down to with a second or two (timing as in when events happen or get triggered). and I would probably want to keep it Simple and it would be two way communications.

So if I go with Serial to communicate with the 2 MPU's I can still use one for I2C for things like ADC's or Temp sensing?

That is why the question arose to begin with. If I am going to be using I2C anyways, why not communicate with each other as well, but - Only one Arduino will be need the I2C. So I guess now the question becomes is it harder to use both Serial for the MPU's to communicate and one of them I2C or just do all I2C?

So if I go with Serial to communicate with the 2 MPU's I can still use one for I2C for things like ADC's or Temp sensing?

Yes.

So I guess now the question becomes is it harder to use both Serial for the MPU's to communicate and one of them I2C or just do all I2C?

That may depend on how good the Arduino I2C library is at being a slave. I have no experience with it so can't say.

If that works I'd say use I2C for everything, and that frees your serial port for talking to a PC or for programming.


Rob

Makes sense Graynomad, thanks

Personally I prefer I2C as it requires less pins and the programming is fairly simple. I have not tried SPI, theoretically it is faster but for your purposes I think I2C should be quick enough.

I2C is fast, simple n requires less wiring. But in my experience, I've seen a few components which are not compatible with the wire library and u might then require 2 different libraries for using I2C(1 for the board nd 1 for sensor) and this makes things more complex. So I'd suggest that u check the compatibility of your sensors.
If they are well compatible then I2C is the simplest.