Single Line Communication Protocol (SLIC)

Single line(wire) Hardware Independent Half duplex Asynchronous Communication protocol

Similar projects worth following
SLIC is a communication protocol for Arduino IDE.Features: Single line/wire: The protocol uses just 1 GPIO port for both transmission and reception. Hardware independent : The protocol is purely software based. Therefore you only need a GPIO port. Half duplex: The same GPIO pin is used for transmission and reception. Multiple Nodes: The single wire can be used to interface multiple devices like the I2C. ( if current output is not satisfactory just use an external signal amplifier) The current library version doesn't have this as an inbuilt functionFollow the github link for more info.

Updates Comming Soon

  • A lite version of the library for low program memory systems.
  • A pro version of the library for faster transmission rates.

Reasons to build:

  • unavailability of single wire based communication for general microcontrollers.
  • unavailability of purely software based communication protocols. i.e, with just GPIO pins and no dedicated hardware.

Supported Hardware

  • The library is for Arduino IDE, hence any device which can be programed using the IDE is theoratically functional.
  • Arduino UNO(16MHZ) - Arduino UNO(16MHZ) Success
  • Arduino UNO(16MHZ) - Arduino NANO(16MHZ) Success

Possible Uses

  • Communication protocol for cheep microcontrollers with no hardware communication support.
  • Communication protocol for microcontrollers with limited number of available GPIO ports.
  • IOT based applications where many wired connections are required.

  • 1
    Basic Setup Instructions

    • Interconnect the configured pin from both the microcontrollers.
    • Use a PULLDOWN resister.
    • Use a common ground.
    • paste the SLIC folder in the library folder of arduino.

View all instructions

Enjoy this project?



fadi0albaghdadi wrote 01/18/2022 at 12:15 point

The same command can be used as the PLC protocol

  Are you sure? yes | no

Gabriel wrote 06/28/2018 at 03:59 point

i had a similar project a while back. Same concept, never used it after the day i coded it. Never had 2 micros in the same box and never tried it long range. Ive used 1-wire upto 100feet with cat 5 so with similar mosfet drivers it would have worked.

It was a cool experiment though.

  Are you sure? yes | no

Nikhil M Jeby wrote 06/28/2018 at 05:46 point

Hey Gabriel, Thanks for having interest in my project.

I just went through yours and I believe both the projects do work with single wire but are logic wise different.

Because, mine can interface any number of nodes using the same single wire like I2C.

and secondly, my project don't have any inbuilt master or slave. i.e, Every node is always in the listening mode and each node can broadcast at any time. But in order to reduce clashing between nodes it will be wise to program a virtual master/mediator , which I am currently working on.

and thirdly, I am using a pulldown resistor,.LOL... and this protocol just need any regular GPIO pin. i.e, no interupt or any other hardware functionalities are required.

  Are you sure? yes | no

Gabriel wrote 06/28/2018 at 12:16 point

Thats why i said "Similar"...both were intended for MCU to MCU Coms with a single wire using software uarts or as you say a single GPIO.

  Are you sure? yes | no

Nikhil M Jeby wrote 06/28/2018 at 14:44 point

Oh.. Ok .. anyway thanks man.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates