Extending I2C over one wire... (or three wires to be exact)

Hello, hope someone can help

I have a proof of concept project on the go at the moment where I have two arduino nanos communicating bidirectionally over I2C. This is all working great. However, in an ideal world, the final project will have the two nanos some distance away from each other (ideally about 15-20m) and be connected by a cable consisting of a single twisted pair and ground. The final design will have multiple remote nanos all individually addressed and powered via the cable. (ie no local power supply).

Originally I was thinking of an I2C - one wire - I2C system but I can't seem to find any documentation of this happening. It all seems to be one end of the other and I can't seem to find out if you can just connect the two systems together. In this case I would have ground, power and 1 wire. The other option would be to try and extend the I2C bus directly and superimpose the power on one of the data lines.

Anyone have any experience of this, or can point me in the direction of any links.... or have any other ideas. I was just reading a post on here about doing it over serial but switching the Rx and Tx lines onto the same wire but I don't know how that would work with addressing the remote units. I guess I could just get them all to read all the data stream and extract the information they need individually but the I2C addressing method is so easy.

Thanks

I2C is meant for short distances, like on a circuit board.

TTL serial ("RS232") works over 15-20m distances, although you might have to use 9600 Baud or lower.

rkettridge:
The final design will have multiple remote nanos all individually addressed and powered via the cable. (ie no local power supply).

jremington:
I2C is meant for short distances, like on a circuit board.

TTL serial ("RS232") works over 15-20m distances, although you might have to use 9600 Baud or lower.

I2C Protocol is a Bus, and it supports parallel operation of many I2C devices/sensors. RS232 Protocol is a Port, and it works one-to-one basis.

The following multiplexer could be tried to implement the RS232 Protocol to drive multiple NANOs over a long distance of 15-20m.

RS232 Protocol is a Port, and it works one-to-one basis.

Neither is correct. Multiple-drop serial connections on one line are routinely implemented.

jremington:
Neither is correct. Multiple-drop serial connections on one line are routinely implemented.

That does not make the RS232 Protocol a Bus?

rkettridge:
Hello, hope someone can help

I have a proof of concept project on the go at the moment where I have two arduino nanos communicating bidirectionally over I2C. This is all working great. However, in an ideal world, the final project will have the two nanos some distance away from each other (ideally about 15-20m) and be connected by a cable consisting of a single twisted pair and ground. The final design will have multiple remote nanos all individually addressed and powered via the cable. (ie no local power supply).

Where did the 3 wire requirement come from? The ubiquitous CAT5 cable that connects a large part of the world together has 8 wires which gives you plenty of scope for data and power. Have you decided on 3 conductors for cost reasons, or do you only have 3 unused conductors left in an existing cable?

Twisted-pair and "bus" makes me think of RS485. That will work over very long distances and the bus access can be controlled very easily with a protocol like MODBUS.

i2c extenders are available for that kind of distance but I don't trust them at the max distance.

RS232 is possible if you use transceivers that allow the slaves to release the transmit line when not transmitting. (Also using MODBUS.) But RS242 can't use twisted-pair.

CANBUS might be an option.