I2C Arduino limit

Hello I am interested in the I2C protocol and would like to have one master Arduino with up to 64 slave Arduinos. I read online that I2C's can have up to 128 slaves but an Arduino is limited to 8 slaves. Is this true? Also are there any other wired protocols I could use to communicate to the slaves? Some requirements are that the slaves should be able to respond to the master with a message and the master should be able to know which Arduino it is communicating with. Thank you.

I read online that I2C's can have up to 128 slaves but an Arduino is limited to 8 slaves.

I never read about such a limit, please provide a link to your source!

I assume that 64 slave Arduinos on one I2C bus is quite difficult because the choice of correct pull-ups will be quite heavy work. The problem is the capacitance you get with all the Arduinos and it's also quite difficult to connect 64 Arduinos to a single I2C within the max. bus length of approx. 1m.

I'd suggest to use an RS-485 bus to connect the Arduinos. A standard RS-485 bus can only have 32 devices but if you use a MAX487 as the bus driver you can have up to 127 slave devices. The baud rate can be up to 250kbaud, so it's quite a bit faster than the I2C bus.

Thank you for the quick reply. Here is the source LINK. Could i get more info on Max487 protocol.

Thank you for the link. The article says that the chips often support only 8 addresses, many of them even support only a single address (if the chip usually is used only once in a bus). It says nothing about a limitation of the I2C bus in general.

The MAX487 is a bus driver chip, it's responsible to fulfill the physical bus standard. RS-485 is not a protocol but the hardware definition for the bus (as I2C is). There are quite a few protocols that use this hardware basis to build on, open ones (p.e. ModBus, MIDI, DMX) and proprietary ones (p.e. Profibus). You can use one of those or build your own one if you have additional requirements.

I2C bus uses pull-up resistors, they must be able to pull the voltage up fast enough, so that data bits are clear. That limit depends on how many chips there are on bus and how long wires the bus has. Lower resistance pull-ups are faster, but there are limits with I2C chips how small resistors you can use.

Besides, it is difficult to know before you test, does the bus work or not. Because you'd have to measure the total capacitance.