Hack a LED to become a wireless data transceiver

Ciao experimenters! :slight_smile:
I have developed a communication data-link able to use a single visible light or infrared LED to communicate data bidirectionally with a range of 6 meters in ideal conditions, this means you don't need a TSOP sensor or a photodiode to get bidirectional half-duplex communication, LEDs are already photodiodes and can be used as both emitters and receivers (because they produce electricity when hit by light like solar panels, and voltage can be detected by simple analog readings) . It is incredible to see the system working at 1528 B/s!!! I use the ADC prescaler to 8 (lower than ATMEL reccomends, but works :o )

https://github.com/gioblu/PJON/tree/master/strategies/AnalogSampling

Here a video showing how it works:

You might be interested in this 2003 paper: "Very Low-Cost Sensing and Communication Using Bidirectional LEDs", which uses only an LED and a resistor on either end, to form a bidirectional communications link.

citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.1570&rep=rep1&type=pdf

Yes I have studied with care years ago that paper, that is a masterpiece!
The innovation is added by the system I propose is the circuit that results in a much faster and usable sampling rate, and the data-link protocol that enables multi-master half-duplex bidirectional communication.

If you have ever tried the LEDsensor example provided by the Arduino team, you for sure have noticed the time necessary for the LED to discharge after being reverse biased. The approach AnalogSampling uses is simply to sample with analog reading the voltage produced by the LED in forward bias.

Having an analog reference of 1.1v and the ADC prescaler set to 8 in ATmega let you have a sampling rate supporting 1528 B/s. A faster microprocessor with a faster and with higher resolution ADC could do much better.

Quoting the paper " The underlying protocol transmits data at a rate of approximately 250 bits/sec in each direction." that is more than 6 times slower.

Quoting the paper "Data transfer is robust up to a range of approximately three centimeters"
AnalogSampling works at maximum 5 meters range in ideal conditions, thats 166 times more range