What contributes to the overall I2C Bus length?

Is an I2C Bus length calculated from the total length of cabling attached to the Bus, or the distance from Master to furthest Slave?

In my proposed project I will have many nodes (~20) that attach to the Bus, and then route the bus to another 5 connections within the node, so inside each node there may be as much as 60cm of bus cabling. The nodes will more or less directly connect to one of the open connections on another node.

So therefore if I have six nodes connected in a straight line, the cable distance from master to slave will be about around 60cm, but the total cabling on the bus would be 360cm.

If the I2C Bus length is calculated from the total length of cabling attached to the Bus, I would need to use I2C extenders. Would they then be used as in the attached diagram?

Looks complex! You can change I2C clock speeds you know. I would be trying a simpler arrangement with just connecting devices together, and drop the clock rate until I got reliable operation. This page has a table of some typical values you can use for changing the clock speed:

You could do a test with different cable lengths to see if that works. Also play with different values of pull-up resistors. More aggressive pull-ups might help with longer cable runs.

Overall capacitance of the sytem, including the nodes. Each device has it's own capacitance, not only the cable.

As Nick already stated it is imortant to dimension the pull-up resistors correctly. the higher the bus speed (Clock Frequency) the more critical these things get.

here's a very nice articlke on the importance of the Pull-up resistors:

Also, you can certainly experiment a lot, however, if you encounter problems, without an oscilloscope you won't really know what your problem is.

Search the forum for "I2C lenght" or "I2C distance". There's some good stuff posted.