Which software I2C multiple networks would be best?

Sorry to disappoint you:

  • The I2C bus is not supposed to go through a wire or cable to another board.
  • The I2C bus was not meant as a communication bus between processors.
  • The I2C bus is not a network.
  • The I2C bus is a multi-master bus, but don't try that with Arduino boards.

This is the list of hardware and software I2C libraries for Arduino: https://github.com/Testato/SoftwareWire/wiki/Arduino-I2C-libraries

What kind of Arduino boards are you going to use ?
Can you tell what kind of wires or cables that you have in mind for the I2C bus ?
How long are the wires ? and how many boards do you want to connect ? Are there pullup resistors ?

As soon as you add a device to your main I2C bus, you must be very careful at what voltage that device runs. For example adding a OLED will disturb a 5V I2C bus, because the OLED runs internally at 3.3V.

If the wires are short and are suitable for the main I2C bus, then that part might work. You have to do everything right for a reliable I2C bus. If you do everything wrong, the wires of 20 cm can already be too long. If you do everything right, then 2 meters might be possible. That is 2 meters total length. If you have ten Slaves, then they all can be at 20 cm distance from the Master for a total length of 2 meters.

You can create a software I2C bus for local devices. This is often no problem. You probably have to change its library to use the software I2C bus, instead of the hardware I2C bus.

Please don't use the word "network" when talking about the I2C bus, it makes my hairs stand up.