Do you have the experience that you cannot connect to a wireless AP in a crowded place? Since the number of wireless devices keep increasing each year, the wireless congestion problem has become significant. In order to mitigate wireless traffic, visible light communication (VLC) is a promising RF-alternative. VLC transmit information using light, which is safe, efficient and secured. VLC also has advantages on the places where RF is not available, for example, hospital or aircraft.
We design EP-Light BoosterPad- a simple visible light communication (VLC) transceiver working on MSP430 Launchpad. We demonstrate that we can achieve 32 Kbps using EP-Light. EP-Light shows the concept of future indoor lighting infrastructure, which not only lights up the room but also transmits information.
How EP-Light Works:
EP-Light uses On-Off-Keying (OOK) to transmit the information. OOK uses "on" to represent symbol "1" and "off" for symbol "0". The following figure shows the concept of how OOK works.
However, the long stream of "1" and "0" produces flicker, which is not acceptable for lighting purposes. Instead of sending raw data by OOK, EP-Light encodes OOK with Manchester Encoding to achieve DC-balanced (50%).
OOK with Manchester encoding uses the position of pulse to encode information. This modulation is called variable pulse position modulation (VPPM). Using VPPM, EP-Light support communication under different brightness level by changing the duty cycle (DC).
EP-Light System Architecture:
EP-Light composed of two major subsystems - transmitter and receiver.
In the transmitter subsystem, MSP430 controls LED driver which provides high current and toggles the LED to transmit information. The commercial LED drivers are design for lighting purposes. The latency of turning on and off of a LED is around tens of us. Thus, commercial LED driver is not favorable to our application which needs high speed toggling a LED. To support high data rate, we design a simple LED driver which features voltage control current driver (VCCD). Instead of using fixed current driver, VCCD regulates LED current by different input voltages. Therefore, using VCCD, EP-Light could potentially support more complex VLC modulation, for example, OFDM.
As for receiver subsystem, receiver contains a photodiode (PD) which converts light into current and a transimpedance amplifier (TIA) converts current into voltage. Additional analog signal conditioning circuit filters out DC, and provides additional gain. The digital interface is composed of an ADC and a high speed comparator, For OOK+Manchester encoding, a configurable reference voltage is required for the comparator to restore the logic, which eases the decoding on MSP430.
Since the EP-Light can replace the indoor lighting system, EP-Light has to continues lights up even no data is been transmitted. Or, EP-Light cannot allow users to notice the data is currently transmitting. An idle pattern which has same duty cycle is required between data transmitting. In our implementation, a streaming "0" (symbol) is used for idle pattern which is being transmitted between data.
Since the LED is constantly toggling, receiver has to know when is the data start. We defined a simple frame format so that the receiver uses the information to train its timing information and identifying start and end of a packet.
Since transmitter and receiver sources clock from different crystals, stability of crystals and environment temperature results to mismatch of clocks. Thus, simply counting at receiver doesn't work. The receiver has to re-adjust its timing information at all edge.
EP-Light BoosterPack Photo:
In the demo setup, two computers are separated. Each computer connects to a MSP430 Launchpad with an EP-Light. One for transmitter and the other is receiver. Both computers listen to UART of MSP430. Keyboard input on transmitter will show up in the receiver's computer.
All the design files can be downloaded from github,
or TI forum directly
Note: (for those who want to manufacture this)
The symbol of D1 (photodiode) is wrong. The value of C8, R9 need to be changed. If you plan to use C8, R9 RC filter, I'll suggest you to add another resistor to VCC.
Other suggestions/questions? contact me.
In the beginning of main.c, two macros define the role of EP-Light. If the VLC_TX_MODE has been defined, the EP-Light will become a transmitter. Using any serial terminal program to open the virtual COM port should see all user input character. Any keyboard input triggers an interrupt handler to transmit data using EP-Light. If the VLC_MODE_TX is not defined, the EP-Light will become a receiver. Similarly, all received information will be displayed on the serial terminal.
The ARBI_DC macro allow receiver to support arbitrary duty cycle. However, if the ARBI_DC is defined, the compiler has to turn on optimization level 4 (-O4), otherwise the code would not fit into MSP430G2553.
What kind of filter did you use in the "Signal Conditioning" block?
First of all , thank you for sharing the project with us. I am in the middle of assembling the booster pack, but the code compilation seems to fail at line no. 68 of "main.c"
[ digital_pot_adj(my_pot, my_gain, 64); ]
The function definition of the above function is
[ void digital_pot_adj(DIGITAL_POT_ENUM_t, GAIN_DIR_t); ] as decribed in "digital_pot.h".
Apparently we are trying to pass 3 arguments to the function which accepts only 2. Kindly help in rectifying the problem.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.