I want to make a bunch of arduino devices that are connected to each other by I2C. Each block would have a connector for the I2C lines and power (probably 12V so it can propogate over a longer distance and then each board can drop it down to 5V).
My question is how far a chain (in length/m) can I run an I2C bus? Do I need pullups to make it longer? Does each arduino act as a buffer?
My goal would be chains of 25m max. If I2C is not suitable for this application, what would be better?
The whole idea is to making building blocks that can be arranged in different configurations so I want a network protocol that makes it easy to chain devices together.
The maximum number of nodes is limited by the address space, and also by the total bus capacitance of 400 pF, which restricts practical communication distances to a few meters.
so looks like I2C will not be suitable for my application. What would be better? UDP?
UDP using one of the low cost ethernet shields would work, or you could see if there is a low cost rs485 option that can be easily connected to the arduino
The price would have to beat a $17 xbee. I think a wireless mesh network will work great in this situation unless there is a significantly lower cost method.