The DarkLight Rises: Visible Light Communication in the Dark
Tian, Wright, Zhou, ACM MobiCom ‘16
Motivation/Introduction
- Most VLC systems involve bright light, easily visible
- Goal: Low-rate, low-power, human imperceptible VLC
- Suitable for mobile devices’ limited battery capacity
- Avoids safety issues with IR, avoids illluminating environment with VLC if this is not desired
- Main Idea: Encode information into light pulses that are short (and probably faint) enough to be imperceptible to the human eye, yet long enough to communicate data reliably
- Human eye response time: 10 ms for cones (color, high light requirement), 100 ms for rods (B&W, low light requirement)
- Authors get credit for building a working system
- Transmitter side (LED)
- Need rise time less than pulse duration so that LED reaches peak intensity
- Figure 1(b): High-power LEDs have a rise time of about 1-2 \(\mu\)s, low power LEDs about 500-800 ns
- Receiver side (photodiode)
- Needs to respond in time to not miss the short pulse
- Figure 2(b): Shows two alternatives, they choose the SD5421 for data, which responds in about 200 ns but takes > 1.4 \(\mu\)s to reach peak response, and has a low gain (so short distance for communication)
- Missing out on full response to their short data pulses, perhaps? (Their pulse width, as we’ll see later, is 500 ns)
- The issue of ambient light interference
- Switching off/on other lights, sun, reflections etc. are the sources of interference
- Figure 3: Their short pulsed data appears as the short pulses atop the slower interference
- Don’t have phase information from photodiodes, so no spatial separation techniques
DarkLight Design (§3)
- Figure 4: They reduce the rise time (marginally) with amplified imput voltage
- They increase the photodiode receiver gain (significantly) using an amplifier (no numbers, though)
- Modulation (§3.2)
- Time divided into symbols, symbol time divided into \(2^M\) slots, each of length \(L\) seconds
- Overlapped Pulse Position Modulation (OPPM): encode bits as which slot the pulse starts in. The slots' durations overlap (so only rising edge position matters).
- Demodulation: Look for the rising edge, so take derivative
- Issue: Derivative amplifies noise
- Solution: Smooth the received signal first (Gaussian filter), then take derivative
- Issue: Need to acquire packet timing
- Solution: Preamble with three pulses in the first slot of each symbol
Ambient Light Adaptation (§3.3)
- Transmitter has another photodiode for sensing ambient light level, alongside the LED
- When ambient light is brighter, they use fewer slots per symbol
- Data rate is \(M/(2^M\cdot L)\) bits per second
- Duty cycle \(d=t_{ON}/(2^M\cdot L)\) and ambient light levels determine visibility
- So data rate is also equal to \(M\cdot d/t_{ON}\)
- In brighter ambient light, they decrease \(M\), increasing \(d\) and data rate (look at the first data rate equation above, and look ahead at Table 1)
DarkLight Networks (§4)
- Light is directional, but overlap will occur. Many DarkLight links operating at the same time and interfering within overlap?
- Goal: Receive multiple simultaenous streams
- Receiver-side ADC sampling drift causes variation in rise time offset around 100-200 ns (Figure 6)
- They remember the slot alignments for each data stream (light source) and allocate new streams when they see unaligned slots
- Misses “colliding” streams (slot collisions)
Prototype Implementation (§5)
- Parameters: \(t_{ON}=500\) ns, \(L=3.2\) \(\mu\)s, \(t_{symbol}=6.55\) ms, which implies \(M=11\), but that’s not shown in Table 11 (?)
- Hardware:
- Transmitter-side LED for data transmission: Cree CXA 2520
- Transmitter-side photodiode for ambient light adaptation: OPT101
- Receiver-side photodiode for data reception: SD5421
Experiments (§6)
User Perception Study (§6.1)
- Setup DarkLight LED on ceiling with a lampshade, measure human perception: ask people to look directly at the LED and indirectly at objects in the room (evidently people know LED is present)
- Indirect viewing: Indistinguishable in bright ambient light, distinguishable in low ambient light
- Directly looking at LED: More distinguishable, down to 65% in bright light
Single-link Performance (§6.2)
- Test link over a distance of 1.3 meters, varying \(L\) (timeslot length), results in up to 1.8 Kbit/second throughput (Figure 10a)
- Increasing pulse width allows the LED to hit max brightness (Figure 10b) – is this optimized fully, then?
- Viewing angle is about 15 degrees (Figure 10c)
- The adaptation loop takes 5 seconds to converge (Figure 11b)
- Power consumption
- Table 5: Transmitter side, FPGA dominates (can move to ASIC)
- Receiver side, amplifier dominates
- Appears that transmitter can be made quite low power, receiver perhaps not
Multi-link Performance (§6.3)
- Figure 13: To maximize throughput, need to increase the slot width from \(3.2\) \(\mu\)s to \(32\) \(\mu\)s – slowing down by an order of magnitude!
- When LEDs are synchronized, can space out the slots, otherwise they’ll collide
- Good match with their analytical model for collision frequency