This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Visible Light Communication

Other Parts Discussed in Thread: OPT101, TLC5916

We are doing a project on Visible Light Communication(VLC) using MSP430. Our project is about sending data from one laptop to another using VLC. 

At the transmitter end, msp430 is connected to TLC5916 which is a LED driver. This driver has 8 output LEDs. The serial data from MSP430 is converted to parallel in the LED driver and output is through LEDs. This data in LED is received by the photodiode OPT101 at the receiver.

The doubt that we have got is, can the photodiode detect the data as the data is coming from the 8 LEDs or can it detect data from only one LED at a time? Is it possible to send the data from the driver through only one LED? 

  • namratha hm said:
    The doubt that we have got is, can the photodiode detect the data as the data is coming from the 8 LEDs or can it detect data from only one LED at a time?

    Strange question actually. Photodiode detect light and cannot precisely discern (count) how many LEDs are glowing. The more LEDs are on, the more light you get, the more chances you get that photodiode detect change of the illumination. Obviously during "mark" (1) transmission you would want to switch __all__ eight LEDs on and during "space" (0) - switch all LEDs off.

    I would switch all LED drivers on initially (using serial interface) and modulate (on/off) all of them using OE input of the driver.

  • Ilmars said:

    The doubt that we have got is, can the photodiode detect the data as the data is coming from the 8 LEDs or can it detect data from only one LED at a time?

    Strange question actually. Photodiode detect light and cannot precisely discern (count) how many LEDs are glowing. The more LEDs are on, the more light you get, the more chances you get that photodiode detect change of the illumination. 

    [/quote]

    Yeah photodiode detects the change of illumination and converts to signals. The doubt is since the serial data is converted to parallel data will the photodiode detect the data properly since if it is a single LED it can detect the light.

    Actually we are confused about the LED driver TLC5916 working. If it is serial data sent to the driver from the ms430 how is the data represented at the output?

    And to connect the msp430 to the driver which pin from the msp430 is connected to clock of the led driver?

  • namratha hm said:
    The doubt is since the serial data is converted to parallel data will the photodiode detect the data properly since if it is a single LED it can detect the light.

    To be honest - I do not get what you are frustrated about. One is clear: you definitely shall NOT send your data bits into LED driver! What you shall do - send command that switches all drivers on when you want to get light out of (all) LEDs and command that switches ALL LEDs off when you don't want light. Having said that - if you want to send two bits, "10" then shift eight bits of '1' into driver, after that send eight bits of '0' into driver.

    Alternatively you can send eight 1 bits into driver just once at the beginning, then simultaneously switch all LEDs on/off using OE input of driver.

    namratha hm said:
    And to connect the msp430 to the driver which pin from the msp430 is connected to clock of the led driver?

    Connect clock input of the driver to clock output of USI or USCI peripheral configured in SPI mode.

  • namratha hm said:

    We are doing a project on Visible Light Communication(VLC) using MSP430. Our project is about sending data from one laptop to another using VLC. 

    At the transmitter end, msp430 is connected to TLC5916 which is a LED driver. This driver has 8 output LEDs. The serial data from MSP430 is converted to parallel in the LED driver and output is through LEDs. This data in LED is received by the photodiode OPT101 at the receiver.

    The doubt that we have got is, can the photodiode detect the data as the data is coming from the 8 LEDs or can it detect data from only one LED at a time? Is it possible to send the data from the driver through only one LED? 

    I think both the transmitter and the receiver you used are expensive and unsuitable for VLC. 43oh.com/Badge implemented a cheap "Rocket Badge" just for fun. They reportedly use VLC to download data from the web. I do not know the details, but I think it is a half-duplex simplex VLC (the Badge is receive only) of sort.

    -- OCY

    Edited by OCY

  • Well, I think the driver could be used (in theory) as intended.
    It just has to be  ensured that LED#7 is 128 times as bright as LED#0. Then the receiver can do an A/D conversion of the incoming light, subtract the ambient light offset (from a second sensor) and get the byte back that was written to the driver. Btu I doubt it can be done with reliable precision. :)

    A 3-to-8 encoding could be done too. Here the number of burning LEDs (of same brightness) determines a number from 0 to 7. Again an A/D conversion is done at the receiver side, but this time with a linear scale, which is way easier to handle.
    But I think, a simple serial (UART) communication with one focused LED could give at least the same if not better results.

    Well, another possibility is to have LEDs with 8 different colors, and use 8 separate sensors with color filters (or a spectral sensor). This would be a real 8 bit parallel transmission. And wery nice to watch.

    However, in parallel transmission, a clock signal is neede to determine whether it is one or multiple bytes of the same value (and to distinguish a zero value from an inactive connection).

    It has a reason why UART protocol is still used after all those years.

**Attention** This is a public forum