One Channel Digital Communication

communicationdigital-communications

I want to setup two-way digital communication between 2 Arduinos, but I'm only allowed one wire between them. One may be "master". Are there any well known methods for synchronizing communications, etc.? I don't want to reinvent the wheel.

I've been teasing the idea of analog signaling allowing for multiple channels on the same wire, but that seems to involve some more complicated electronics.

Best Answer

The ATtiny4/5/9/10 uses a single pin for both data input and output during programming. It drives the output only for the first 1 bit in a run of 1s; for the rest of them it switches the pin to an input with a pullup (thereby holding the line high), and then checks the input for a 0 in order to attempt to detect collisions.

Combining this with a normal bit-banged UART should allow you to create a one-wire channel between devices.

But don't forget that both devices need a common ground regardless.

Related Topic