Hey guys, I build this library called SLIC for inter-micro controller communication over a single wire.
SLIC is a single line(/wire) hardware independent half duplex asynchronous communication protocol.
By hardware independent I meant, its purely software based and you could theoretically run this on any GPIO pin.
This basically solves 2 problems:
Now inter-micro controller communication is possible for all those cheep micro-controllers with no inbuilt dedicated hardware setup for communication.
It just uses a single wire and could interface multiple nodes with that wire..(like I2C)
I have only looked at the code very briefly - don't have more time now. I see delay()s all over the place. I don't like that. It means that the Arduino can do nothing else while your code is waiting for something.
In this communication method each device is always in the listening mode. And only when u use a send function the pin act as an output pin.
So, theoretically there is no master or slave, but should be programed outside. I am currently developing this as an internal feature to make one of the node a virtual master and the rest slaves with unique addresses so that an i2c like communication can be performed.
Robin2:
I have only looked at the code very briefly - don't have more time now. I see delay()s all over the place. I don't like that. It means that the Arduino can do nothing else while your code is waiting for something.
...R
Hey Robin,
The delays are used only in the transmission time. It is used to create the asynchronous modulation.The reason I didn't use interrupts in this communication, because, I wanted the protocol to work even with those micro controllers with no available interrupt function (either because they got none or because it is being used for something else). i.e with a single regular GPIO with no other functionality(required).