Visible light communication (VLC) is the term given to an optical wireless communication system that conveys information by modulating light that is visible to the human eye. Communication is achieved by switching LED lights on and off at a speed higher than what is perceptible to the human eye. Eyes can detect changes in light brightness and power, but they cannot perceive light that is switched on and off rapidly. A photodiode, on the other hand, can easily recognize the rapid on-off modulation. A photodiode is a photodetector that produces an electrical current that is proportional to the optical power that is incident on the photodetector surface. This simple principle makes possible visible-light communication technology that supports both illumination and wireless communication using an LED. Unlike RF wireless communication, where specialized tools are needed to find a service area, the presence of a VLC service area will be easily detected. The visible spectrum is the portion of the electromagnetic spectrum having wavelengths from about 380 nm to 780 nm and in terms of frequency; this corresponds to a band of 385 - 789 THz  .
1.1. VLC Principle
In Figure 1, the VLC radio transmitter and receiver modules based on intensity modulation/direct detection is shown, which consists of digital to analog convertor, transconductance amplifier, low pass filters and high speed LEDs in the transmitter section and photodiode, transimpedance amplifier, analog to digital convertor in the receiver section.
The LED converts an electrical signal to optical energy that provides illumination as well as communication. Information is line-encoded and modulated by the DAC, and then conveyed on the optical signal by modulating the amplitude or some other feature of the LED light. At the receiver, the Photodiode converts the received optical power to an electrical signal, which is then amplified, demodulated and decoded by the TIA Amp, LPF and ADC to recover the user message bits  .
1.2. VLC vs Li-Fi System
VLC has been conceived as a point-to-point data communication technique― essentially as a cable replacement. This has led to early VLC standardisation activities as part of IEEE 802.15.7  . This standard, however, is currently being revised to include Li-Fi. Li-Fi in contrast describes a complete wireless networking system. This includes bi-directional multiuser communication, i.e. point-to- multipoint and multipoint-to-point communication. Li-Fi also involves multiple access points forming a wireless network of very small optical attocells with seamless handover. This means that Li-Fi enables full user mobility, and therefore forms a new layer within the existing heterogeneous wireless networks. The
Figure 1. Block diagram of a VLC system  .
fact that LEDs are natural beamformers enables local containment of Li-Fi signals, and because of the blockage of the signals by opaque walls, Co-channel Interference can effectively be managed and physical layer security can be enhanced. Figure 2 illustrates the principal techniques that are needed to create optical attocell Li-Fi networks  .
1.3. Difference between Li-Fi and Wi-Fi
Li-Fi uses light for data transmission while Wi-Fi uses electro-magnetic waves at radio frequencies for data transmission. Due to less interference incurred by light compare to radio frequency waves, it is used in more dense environments. In Figure 3 the basic differences between Li-Fi and Wi-Fi technologies are explained.
1.4. Paper Organization
This research paper is organized into the following sections―Section 1 gives the introduction of visible light communication and Li-Fi technology and compares commonly used RF technology Wi-Fi with indoor VLC technology Li-Fi. Section 2 describes about the working and components used in the Li-Fi system. In Section 3 the design and schematics of Li-Fi transceiver developed has been explained. Section 4 discusses the result of the hardware and its performance is shown on interface coded using JAVA. Finally Section 5 gives the conclusion of the paper, followed by Acknowledgment and References.
2. Working Principle of a Li-Fi System
In this section, the block diagram of Li-Fi system is described. In Figure 4 there
Figure 2. The key elements of Li-Fi and its application areas  .
Figure 3. Comparison between Li-Fi and Wi-Fi  .
Figure 3. Comparison between Li-Fi and Wi-Fi  .
Figure 4. Basic block diagram of Li-Fi system  .
are two sections: transmitter and receiver. In the transmitter side, the data is first converted to binary through an ADC and then fed into a LED driver circuit which is controlled by a signal processor. The LED driver works on the On-Off Keying modulation  . After this the high illumination LED blinks at high speed and transmits the data as optical pulses through the wireless channel. On the receiver side, these optical pulses are interpreted by a photodetector into an electrical signal which is amplified by a transimpedance amplifier and then converted back to binary data using a comparator. The LED lights will be networked, so multiple users can access data using a single LED light or move from one LED light to another without affecting their access.
2.1. Components Used in the Prototype Li-Fi System
The key components are an Arduino Uno board, wavelength specific LED and photodiode. Besides the component responsible of generating and capturing the light signals, additional hardware is needed to filter and interpret these signals. For example, a suitable band pass filter can be used to filter out incoming signals with frequencies other than those desired; an optical filter can be a good way to filter out light of other wavelengths; a lens to focus incoming light can be suitable if the light intensity is low. In the case of digital data transmissions, a digital signal processor at both ends of the system is required to process incoming and outgoing data  .
2.2. Light Emitting Diode
LED is a semiconductor that produces light. When electrons enter the semiconductor they bond with holes in the substrate and energy is released in the form of photons. There are several variables that need to be considered when choosing an LED and these variables have to be weighed against each other. The maximum intensity of the LED affects the rise time. A low intensity makes it possible to have a short rise time and increasing the intensity increases the rise time. The more intensity a LED generates, the more power it needs, and the more heat it produces. The Arduino  has a maximum voltage output of 5 V, maximum current output of 1 A and can send a square wave with the maximum frequency of 50 kHz. To meet these criteria the OSRAM  LED was chosen.
The photodiode is a semiconductor converting light into an electrical current. Most of the photodiodes in the market are produced for the purpose of fibre optics. In applications concerning fibre optics, the radiant sensitive area of the photodiode is small and the rise/fall time is short. With increased radiant sensitive area, the response time will be slower. Without fibre optics a larger radiant sensitive area allows for more light to be captured by the receiver. Therefore, the choice of photodiode is limited. The requirements of the photodiode are quick response time, spectral sensitivity in the visible spectrum and large radiant sensitive area. The size of the radiant sensitive area is crucial and therefore the photodiode used is VISHAY BPW21R  . It has suitable wavelength peak sensitivity at 565 nm. The spectral bandwidth is from 420 nm to 675 nm and gives a perfect range for the intended application. It has a linear light intensity to current ratio and the radiant sensitive area is 7.5 mm2, which was larger than most photodiodes found. It has a rise and fall time of 3 μs each, which provides a switching frequency of 166 kHz.
3. Design of a Li-Fi System
Main objective is to build a prototype using off the shelf electronic devices, establish a successful link for the transmission of digital data and provide a working Li-Fi system. To achieve this goal, open source Arduino development board is used, as shown in Figure 5. Arduino is a small microcontroller board with a USB plug to connect to your computer and a number of connection sockets that can be wired up to external electronics, such as motors, relays, light sensors, laser diodes, loudspeakers, microphones, etc. They can either be powered through the USB connection from the computer or from a 9 V battery. Arduino can be controlled by the computer or programmed to work independently.
3.1. Encoding Style (On-Off Keying)
This section describes the most commonly used encoding method that was used during this project. On-off keying (OOK) is the simplest method to represent data. The logic value zero corresponds to LOW and the logic value one to HIGH. In the VLC case, this means the LED is turned off to transmit a zero and turned on to transmit a one.
Let PeS and PeM are the error probability of a high bit being received as a low bit and a low bit being received as a high bit, respectively, then for a coherent receiver we have   .
Figure 5. Arduino Uno development board  .
where is the energy-to-noise spectral density ratio and erfc (.) is the complementary error function.
3.2. Transmitter Hardware Design
The task of transmitter is to convert digital data into visible light. An LED was a suitable component because of its relatively linear relation between current and light intensity  . The general idea is to modulate the light intensity of the LED i.e., the intensity of the light corresponds to the symbol transmitted. The Arduino ports are not capable of delivering the right amount of current to make the light intensity strong and fast enough. To get around this problem a transistor is used as a switch, which made it possible to switch a larger current faster. In Figure 6, schematic is shown to give an overview of the transmitter. The PCB for transmitter is designed using the following steps:
1) The transmitter PCB design was done by converting the circuit’s schematic diagram into a PCB layout. The software used for PCB layout is Cadsoft Eagle.
2) After designing the PCB layout, the printout of circuit board is taken out on glossy paper.
3) Then the copper plate is cut for the circuit board. Also the top oxide layer is rubbed away.
4) After this, the PCB print is transferred onto the copper plate.
5) Next the circuit from the paper is ironed onto the PCB plate.
6) Next step is to etch the plate.
Figure 6. Schematics of Li-Fi transmitter.
7) Then the etching solution is carefully disposed off and the board is cleaned properly.
3.3. Receiver Hardware Design
The receiver converts the incoming light into current using a photodiode. For a digital signal, the Arduino cannot receive a voltage above 5 V. Therefore, the electrical circuit between the photodiode and the Arduino needs to process the electrical signal so it can be interpreted correctly. The receiver’s electronics need to convert the current to voltage in order to amplify and compare it. Distance between the transmitter and the receiver can be varied, but in order to avoid too small or too high signal, an automatic gain controller (AGC) can be designed, instead a variable resistor is used here. This component amplifies or reduces the input voltage to a selected output voltage. To make sure the signal is digital and stable before the Arduino, an Op-Amp comparator is used here. The schematics are shown in Figure 8 and receiver PCB layout is shown in Figure 9 with soldered components shown in Figure 10.
Figure 7. (a) PCB layout; (b) Components soldered.
Figure 8. Schematics of Li-Fi receiver.
Figure 9. Receiver PCB layout.
Figure 10. Components soldered on receiver PCB.
The software implementation of the project consists of the following separate parts:
1) Data packaging;
2) Hardware control;
3) Transmission synchronization;
4) Transmission encoding and decoding;
5) Error handling.
Whenever a user wants to send data to another user, the following steps will take place by using JAVA codes:
1) The application used by the user will notify the Operating System (OS) that it wants to send data, what the data is, and where it should be sent.
2) The kernel will take the data and hand it to the network module.
3) The network module will buffer it and start transmitting it over the channel.
4) The network module on the receiving computer will collect the packet from the channel, and hand it to the kernel of the receiving computer.
5) If the data is intended for an application, such as a web browser, the data will be handed to that application.
3.5. Design Verification
Tests were conducted to verify the design and see if the right properties were achieved. These tests were mainly done using Java and MATLAB. The prototype is calibrated by sending text as a test signal so as to adjust the proper resistance values for amplification. The final design verification was done using the complete system; transmitter, receiver and software, and the results are shown in Section 4.
In this section, a summary of the design choices made during the research work and the achieved results are described.
The transmitter and receiver results of Arduino based Li-Fi system is described in the sections below. Figure 11 displays the signal from the Arduino when it is propagated through the transmitter and receiver. The resulting propagated signal is nearly identical to the transmitted signal. There is small phase difference and difference in duty cycle between the received and the transmitted signal. This is due to noise in wireless channel and capacitive effects. The transmission efficiency of the prototype designed in the research work can be measured in terms of power. The transmitted power is 0.5 W and received power is 0.01 W at the photodiode. Hence efficiency is the ratio of received power to the input power. Hence the transmission efficiency is 0.02% or 2%.
Figure 11. Example of a signal propagated from the transmitter to the receiver.
The transmitter receives a signal from the PC using USB Cable then from GPIO pins on the Arduino, this signal controls the transistor which open and close the power supply to the LED. The LED voltage levels are shown in Figure 12, here it can be noted that both 12 v and 5 v supply can be used in the transmitter for powering the LED but for simplicity 5 v supply is preferred for low power operation.
The receiver converts the incoming light into an electrical signal and feeds it into the microcontroller. The receiver filters and amplifies the signal. After amplification, the signal is in analog form; hence ADC operation is performed, before providing it to the Arduino. Figure 13 shows the measured signal at the output of the amplifier. The current which is generated by the photodiode is of very low value; hence a high value resistor is used to convert it to voltage. Now this voltage is further amplified for the comparator to give proper transmitted bits. Amplitude of amplified voltage which is the output of the 741 op-amp is shown in Figure 13. The signal value can be further increased by using higher DC voltage.
4.4. Proposed Prototype of Li-Fi Transceiver
Figure 12. Signal measured over the LED.
Figure 13. Signal measured at the output of the amplifier.
Figure 14. Schematics of transceiver using Proteus design tool.
Figure 15. BER vs SNR plot for OOK encoding.
shows the BER plot of OOK encoding which is simulated using MATLAB. Figure 16 shows the digital data which is transmitted using one of the USB ports and Figure 17 shows the received data displayed using serial port monitor software.
Figure 16. Data string which is transmitted from the pc on serial ports.
Figure 17. Received data string shown on to other pc.
In Figure 15 the bit error rate compared with signal to noise ratio (dB). The x axis range from 0 to 12 dB and the BER starts from close to 100 and begins to decrease as the SNR values start increasing. At 2 dB the value of BER falls to 10−1 and keeps falling as the SNR values increase further. At about 12 dB the BER falls down below 10−4. So there is stringent improvement in bit error rate as the value of signal to noise ratio increases for the on-off keying encoding. The parameters used for MATLAB simulation are as follows:
1) Charge of electron (q) = 1.6 × 10−6 C;
2) Background current noise and interference-2.02 × 10−4 A;
3) Noise Spectral Density (NO)-6.46 × 10−23 W/Hz;
4) Photodetector Responsivity (R) = 1;
5) Bit Rate (Rb) = 106;
6) Number of bits-105;
7) Samples per symbols-10;
8) Eb/NO = 1/12.
In Figure 16 and Figure 17, it is shown that the data string of “hi” is transmitted from “COM port 6” at 115,200 bps and received onto “COM port 100” at 115,200 bps. The program used is serial port monitor; it is an open source software for visualizing serial data communication.
Figure 18 depicts the transmitted video and received frames are shown in Figure 19. This interface has been designed in JAVA applet. This video transmission will work smoothly only when the light from LED is interpreted properly by photodiode. In case of any inconsistency in video transmission, the frames can be synchronized by using a buffer.
Figure 18. Transmitted video from pc to the Li-Fi transmitter  .
Figure 19. Received frames from the transmitted video files as displayed using JAVA applet.
In this paper the working model of Li-Fi is successfully completed. The Li-Fi transceiver using Arduino is designed that is able to transmit digital data. The PCB layout and schematics are sketched using Eagle CAD (version 7.1.0) tool and Proteus design tool (version 8). The software used is MATLAB, Java (version 8), and serial port monitor. The results show the transmission of data string on the serial port monitor. After ensuring the successful transmission of data string, video frames were transmitted and received successfully. This video transmission was seen on JAVA interface. Therefore a Li-Fi prototype has been designed which demonstrates the basic principle and also supports the claim of the advantages of Li-Fi over Wi-Fi. The research work presented in this work has some limitations also. The Li-Fi prototype designed does not support multi user access. The speed achieved with this prototype is 115,200 bps only. It is not of high order of Gbps. Also this prototype is not bidirectional. Hence it is only used for broadcast purposes. The limitations of this work can be removed by using higher end devices.
Special thanks to Dr. Manoj K. Shukla and faculty members of HBTU Kanpur for their guidance and support.
 Jovicic, A., Li, J. and Richardson, T. (2013) Visible Light Communication: Opportunities, Challenges and the Path to Market. IEEE Communications Magazine, 51, 26-32.
 Tsonev, D., Chun, H., Rajbhandari, S., McKendry, J., Videv, S., Gu, E., Haji, M., Watson, S., Kelly, A., Faulkner, G., Dawson, M., Haas, H. and O’Brien, D. (2014) A 3-Gb/s Single-LED OFDM-Based Wireless VLC Link Using a Gallium Nitride μLED. IEEE Photonics Technology Letters, 26, 637-640.
 Badamasi, Y.A. (2014) The Working Principle of an Arduino. 2014 11th International Conference on Electronics, Computer and Computation (ICECCO), Abuja, 29 September-1 October 2014.
 VISHAY (2011) Vishay BPW21R Photodiode Technical Datasheet.
 Tang, Q., Gupta, S.K.S. and Schwiebert, L. (2005) BER Performance Analysis of an On-Off Keying Based Minimum Energy Coding for Energy Constrained Wireless Sensor Applications. IEEE International Conference on Communications, 4, 2734-2738.