SeedLight : Hardening LED-to-Camera Communication with Random Linear Coding
Abstract
With the increasing consumer demand for smart objects, LED-to-Camera communication appears as a low-cost alternative to radio to make any conventional device smart. Since LEDs are already on most electronics devices, that is achieved at the cost of negligible hardware modifications. However, as these LEDs are very different from the widely studied ceiling ones, several challenges need to be addressed to make this happen. Among these issues, we note the constrained physical layer data unit (PHY-SDU) length that complicates the use of coding strategies to cope with bits or packets erasure. To break this limitation, this paper presents SeedLight, a coding scheme designed to face the inherent packet losses and enhance line-of-sight LED-to-Camera communication goodput. SeedLight leverages random linear coding to provide an efficient redundancy mechanism that works even on PHY-SDU of tens of bits. The key idea of SeedLight is to reduce the code overhead by replacing the usual coding coefficients by a seed. Since this work addresses IoT devices with low computational resources, SeedLight encoding algorithm complexity remains low. We develop an implementation of SeedLight on a low-cost MCU and a smartphone to evaluate both the communication and algorithmic performances. Experimental results show that SeedLight introduces a negligible overhead and can be implemented even on the cheapest MCU, such as the ones used in many IoT devices. The achievable goodput can be up to 2.5kbps, while the gain compared to a trivial retransmissions scheme is up to 100{%}.