Multiple Arduino's accessing same I2C device?

I have a project that will run inside a vehicle that checks the temperature every minute and takes action based on it. The device will sleep for 5 minutes, wake up for a second, and go back to sleep, to maximize battery life. The settings will be stored in either a micro SD card or an EEPROM IC.

I wanted to make a separate "controller" Arduino that will have a Bluetooth interface that will only be powered when the vehicle is on, to make changes to the settings.

Is there any way to connect both Arduino's to the same EEPROM chip or SD card reader? I could hook up the two Arduino's together over Serial, but since the controller doesn't know when the primary board will be awake, it will constantly be sending an "update" command without knowing if it was received. It's like asynchronous information sharing, which is why I thought having a shared/common data storage would make the most sense if it was doable.

Any suggestions?

Thanks!

Is there any way to connect both Arduino's to the same EEPROM chip or SD card reader?

Yes this is known as a multi master system and the I2C library has a multi master capability. Never used it myself so can't tell how good the collision detection is.

Arduino hardware does not support multi master.

Collision resolution is not there

I learned it the hard way.

One can probably build it in software using extra pin for external interrupts but it will never be as good as hardware supported one.

Arduino hardware does not support multi master.

The respondents to these threads seem to disagree with you.

forum.arduino.cc/index.php?topic=92406.0 forum.arduino.cc/index.php?topic=13579.0

Reply #5 on that last thread said:-

To make a long story short, the Wire library supports multi master I2C buses without a problem

Thanks Mike!

Also, I don't think I'm going to have an issue with collisions since Arduino 1 is only going to read from the EEPROM; only Arduino 2 is going to write to the EEPROM, PLUS, in my circuit, Arduino 1 only reads from the EEPROM one time at startup; when Arduino 2 makes an update to the settings, it will reset Arduino 1 causing it to read the updated settings.

Grumpy_Mike: The respondents to these threads seem to disagree with you.

forum.arduino.cc/index.php?topic=92406.0 forum.arduino.cc/index.php?topic=13579.0

Reply #5 on that last thread said:-

Mike, I agree. I have had no problem with I2C in multi master configurations, You just have to monitor the returns from Wire.endTransmission(), and Wire.requestFrom(). Not hard.

Chuck.