One of the challenges in Visible Light Communications (VLC) is the flickering, which may appear when the source of light is modulated. Especially, for low data-rate VLC communications, such as for wake-up communication or camera communication, where low carrier frequency is used, this challenge requires careful analysis. Hence, we first investigate the flickering characteristics of the developed system, and propose solutions for its mitigation. Then, we perform operational range evaluations considering different configurations of the system.
4.1. Flickering Characterization
When a light source is modulated, flicker may appear. Flickering is the fluctuation in the brightness of light and can become an annoying effect, and develop negative physiological changes in humans [
3]. In [
15], the Maximum Flickering Time Period (MFTP) is defined to be the maximum time period over which the light intensity can change without being perceived by the human eye. An optimal flickering frequency does not exist, however a frequency greater than 200 Hz (
i.e., MFTP < 5 ms) is considered to be safe.
In IEEE 802.15.7 VLC standard, which specifically focuses on high data rate VLC communication, flickering is classified as intra-frame flickering and inter-frame flickering. Intra-frame flickering is the fluctuation in the brightness within a data frame. Mitigation of intra-frame flickering is accomplished by the use of length limiting coding or modulation scheme, e.g., Manchester encoding or Variable Pulse Position Modulation (VPPM) [
16,
17,
18]. On the other hand, inter-frame flickering is the brightness fluctuation between the data frame transmissions. Inter-frame flickering mitigation is accomplished by transmitting an idle pattern between data frames whose average brightness is equal to that of the data frames [
16]. In order to mitigate flickering, light dimming can be used [
3]. Light dimming consists in the control of the brightness of the light source in order to satisfy a constant brightness.
In order to characterize the flickering the following tests were performed: (i) the first test evaluates the kind of signal generated by the Zolertia Z1 and how it induces flickering; (ii) a second test analyzes how dimming affects the range of the system; (iii) a third test helps us to measure the light brightness generated by each part of the frame; and (iv) finally a fourth test was performed in order to control inter-frame flickering.
The first test was carried out using the Zolertia Z1 for the generation of a constant signal of 21 kHz of frequency, which is the carrier frequency chosen. The signal was fed to a LM3409 LED driver module (Texas Instruments, city, state abbrev if USA, country). A flickering appears in the LED, even accomplishing the rule of the use of an MFTP lower than 5 ms (for a signal of 21 kHz of frequency, the period is 0.0047 ms). The test then was repeated generating the signal with a Function Generator with a frequency of 21 kHz. In this second case, no flickering appears in the LED.
In the case of Z1, the flickering is found to be due to the “gaps” introduced by the Z1 into the signal. We conclude that the gaps introduced are due to the fact that Contiki kernel employed in the Z1 does not provide a real-time multi-processing, instead, an event-driven programming is implemented and the processes run in cooperative context, whereas the interrupts and real-time timers run in the preemptive context. In cooperative context the kernel wait for the finalization of the task but in preemptive context the kernel temporarily interrupt the task being carried out in order to execute another task of higher priority level. The interrupted task is resumed at a later time [
19]. As the conclusion of this first test, we infer that in order to avoid flickering, a node with an MCU and operating system supporting real-time multi-processing is necessary. One of the future works, hence, will be to investigate such a solution.
One of the methods for flickering mitigation is dimming the LED light. In the second test we generated the same signal with three different levels of dimming with the format of the signal required by the AS3933 (
Figure 7). For dimming the signal, we use a simple voltage divider after the output of the Zolertia Z1 pins. The levels of dimming chosen were limited by the characteristics of the Z1. This test was performed using the configuration option 1 of the receiver
Figure 8. In the no dimming case, transmitted signal Vpp is 2 V. In the case that the signal was dimmed to have a Vpp of around 1 V, we observe that the flickering decreases slightly, yet, this results in a wake-up range shorter than the one without dimming (detailed operational wake-up range tests are presented in
Section 4.2). Finally, with the signal that has a Vpp of approximately 0.6 V, few flickering is perceived in the LED; however no wakeups are triggered at any distance. From this second test, we conclude that even if the flickering is considerably reduced, in order to reach longer distances, the amount of dimming should be limited.
In the third test, we quantify the light intensity levels generated by different frame components of the format shown in
Figure 7, using a light meter. The signals tested are one with a frequency of 21 kHz (
Figure 12a), one with OOK modulation with bit duration defined in this study (
Figure 12b) and a frequency of 2.625 kHz which corresponds to the bit rate (
Figure 12c). As point of reference the intensity of light was measured when the signal is not modulated, which is achieved by feeding the LED with a constant DC signal (
Figure 12d). The measurements are done at a distance of 1 m and with no interference from other sources of light.
As seen in
Figure 12, different modulations yield different light intensities, which might result in flickering. The OOK modulated signal according to the bit duration of the system is the one with the highest illuminance level among the modulated signals. This can be explained by the fact that in the OOK modulated signal, half of the time the light remains in the higher level of intensity, as we choose to keep the LED on for the data corresponding to the logical zero. The reason is that the use of high voltage level for logical zero allows the lights to be on during most of time, reducing flickering and increasing the intensity level of the light, and as a result an increased operational range. Note that the carrier burst of the frame corresponding to the signal in
Figure 12a provides a different intensity level than the signal used for the preamble and pattern shown in
Figure 12b.
As stated before, the flickering can be categorized as intra-frame flickering and inter-frame flickering. For intra-frame flickering, splitting the frame in sub-frames and add some “compensation bits” between them is recommended [
3]. The compensation bits will help to maintain the same brightness during the transmission of the frame. In the case of our implementation, it is not possible to add compensation bits inside the frame, since the requirements of the frame format of AS3933 cannot be changed. Instead, in our implementation, we propose to dim the signal in certain points, helping to maintain the level of brightness in the LED. In
Figure 13, the signal using the two formats is shown:
Figure 13a shows the signal without dimming and
Figure 13b presents our dimming solution applying a compensation by adjusting the signal level of the logic zero data bits. Also the use of Manchester encoding is recommended for intra-frame flickering mitigation [
3], and implemented in the proposed frame shown in
Figure 13.
For inter-frame flickering compensation, it is necessary to introduce an idle pattern between frames. It is important to choose an idle pattern with a similar level of brightness with the frame. As a trivial solution, the idle pattern is defined to use the same format with the data frame. That is, the idle pattern is also composed of a carrier burst, separation bit, preamble bits and pattern bits (or wake-up code), using a special wake-up code in the pattern. The full stream is then built following the format shown in
Figure 14, where the wake-up frames are included between the streams of 50 idle patterns.
As the fourth test, measurements of the amount of light intensity generated by this frame stream are performed. For the generation of the frame we used: (i) a data stream using frames without dimming (
Figure 14a) and (ii) a data stream using frames with dimming in the logic zero bits (
Figure 14b). The results are shown in
Table 2. Again a distance of 1 m between the LED and the light intensity meter was established and no interference by external sources of light exist.
As can be observed in the results presented in
Table 2, in the case (ii) the variation in illuminance is 7 lux less than the one in case (i). Also, in the case (i), the illuminance range varies between the values reached by a signal of 21 kHz (
Figure 13a) and a signal modulated using OOK with bit duration of the system (
Figure 13b). In case (ii) the intensity levels are closer to the ones reached by the carrier burst signal of 21 kHz, which provides a more stable signal in terms of light intensity.
It is important to mention that different inter-frame,
i.e., idle patterns were also tested (
i.e., Manchester symbols, frequency of 21 kHz, frequency of 2.65 kHz among others, all with different levels of dimming). However, none of them mitigates flickering as much as the approach presented in
Figure 13b. Based on the results of this test we decided to dim the signal in zero logic bits, use Manchester coding for intra-frame flickering mitigation, and use the idle pattern described for inter-frame flickering mitigation in
Figure 13b. The dimming in the signal is applied to the wake-up frame and also to the idle pattern.
After this set of tests, the format of the wake-up signal derived is shown in
Figure 15. For the generation of the signal, three ports (P4.0, P4.2 and P4.7) of the Zolertia Z1 are used. The objective of using three ports is the possibility of creating a signal of three levels of intensity of brightness. Note that with the Zolertia Z1 ports it is possible to generate only rectangular signals putting the pins in high or low level.
In
Figure 15, both the AMS proposal for the signal and our proposal are depicted. We propose a change in the way the signal is sent: as we are working with light, the default state (or zero logic bits) of the signal should have a “higher level” than the one proposed by AMS. With this small change the lights are in “on” state for longer, which brings several advantages such as the reduction of flickering, having more light to be harvested by the indoor solar panel without any change in the AS3933 behavior.
4.2. Wake-Up Range Evaluations
For a wake-up communication system, the wake-up range determines the applications that can be supported by the developed system. In this section, we depict the wake-up range evaluations of the base system configuration, then propose and evaluate alternative settings to the base system configuration to improve the system performance.
In the first set of tests, we use the signal format proposed in
Figure 15 to evaluate the wake-up probabilities per distance in presence of interference from other light sources (office fluorescent lights used in this test as interference). The main evaluation environment used is an office/laboratory with a size of 10 × 4 × 2.4 m (L × W ×H) that includes desks, bookshelves and electronic equipment. The WuTx is fixed on a desk and the WuRx is displaced within the evaluation environment for the range evaluations. For the calculation of the wake-up probability, for each evaluated distance, we send the signal 50 times and we count the number of times the wake-up signal was triggered. The range evaluations are done with bit duration of 381.264 μs which is the value finally chosen for this implementation; however the range evaluations with bit duration of 755.786 μs are also presented for comparison. Different bit durations are assessed for two important issues: With shorter bit duration the flickering of the light source is lower, and with shorter bit duration it is possible to reach a higher transmission bit rate. The configuration used for the receiver is the one shown in
Figure 8 and the frame structure and the signal formats are the ones in
Figure 14 and
Figure 15, respectively. In this case a full signal (carrier burst + separation bit + preamble + pattern) was sent, in other words, we set the internal correlator setting of AS3933 to ON to wake up only one targeted device. The results are depicted in
Figure 16.
With the short bit duration a maximum distance of 0.6 m was reached and with the longer bit duration the maximum distance is found to be 3.1 m. The further distance reached with the longer bit duration is due to the fact that each bit has a longer exposure and consequently a higher brightness in the source of light, increasing the probability of successful demodulation. Note that the wake-up probabilities fall down sharply once the operational distance limits are reached. The negative impact of interference on the performance can be explained by the solar panel’s capacitive behavior resulting in slow responses to fast signal level changes caused by interference.
The number of signal level changes are also increased further with the short bit duration setting, resulting in a limited wake-up distance performance. Given the increased flickering caused by longer bit durations due to the higher intra-frame brightness differences, we choose the shorter bit duration and focus to improve the system range for this setting.
The next set of tests are performed to observe the effect of the solar panel size on the wake-up probabilities, evaluating the distances reached by large and small solar panels. The results are shown in
Figure 17, where we observe that the maximum distance reached with fluorescent light interference is 2.5 m for the larger panel and 3 m for the small panel. The reason for this behavior is that large solar panel maintains a more stable signal level in the output, not relaying the fast variations of light signal amplitude values to the output, as also illustrated in
Figure 6.
The third set of tests are done to evaluate the wake-up distances for the case of no interference and using the two possible configurations for the transmitted signal. Note that this setup corresponds to an operational indoor environment, where the interference can be controlled, such as when the lighting system consists of coordinated LEDs. In the first configuration a signal with carrier burst, separation bit, preamble and pattern is sent (correlator ON), using the two different bit durations considered. We identify the probability of the successful wake-up of the signal
versus the distance from transmitter to receiver. In a similar way, in the second configuration only a carrier burst with frequency of 21 kHz was sent,
i.e., with the correlator OFF. A very large seminar room is used for this set of evaluations to allow the experimentation of a wide range of distances. The results are shown in
Figure 18. With the correlator ON, we reach a distance of 14 m for the case of long bit duration, and 7 m for the case of short bit duration; and with the correlator OFF and using a burst carrier with duration of 300 carrier frequency periods, the maximum distance achieved was 15.5 m. As it was expected, the distance reached with the correlator OFF is longer because the AS3933 only has to identify the presence of a carrier frequency of 21 kHz and is not affected by the bit duration or the format of the frame. Again we observe that the wake-up probability falls down quickly once the limited distance is reached.
The flickering in the LED is lower for the case of short bit duration than for the case of long bit duration. In the case of short bit duration, the perception of flickering is mainly noticed near the LED. In both cases, using the solar panel to power AS3933 versus using the USB for the same purpose, the distances achieved were the same.
A further test with the correlator setting OFF and with fluorescent light interference in the office environment is also performed. In this case, a high number of false wake-ups is observed due to the optical noise of the test environment. This shows how important it is to use the correlator in order to avoid any undesirable behavior of the system.
A final test was developed using the WuRx design options 1 and 2, presented in
Figure 8. The test was done in the office environment without light interference. In the case of receiver design option 1, once the capacitor is charged the maximum distance reached is also 7 m. Using the receiver design option 2, a maximum distance of 60 cm was reached; however using the same configuration with the receiver being fed with USB as power source, a distance of 7 m was reached.
Figure 19 shows the result of this test.
The short distance reached with the receiver design option 2 is easily explained by the fact that with the indoor solar panel it is not possible to harvest enough power for the operation of the AS3933 from the amount of light emitted by this single LED at longer distances. Hence, using a capacitor and storing the energy (WuRx option 1) is necessary for the battery-less execution of the proposed VLC-based wake-up system. Based on these test results, it is clear that the distances achieved by the proposed system are enough for many indoor applications, such as asset control, tracking of devices, security systems, and others.