Coded light refers to techniques whereby data is embedded in the visible light emitted by a light source such as an everyday luminaire. In the case of such a luminaire, the light thus comprises both a visible illumination contribution for illuminating a target environment such as room (typically the primary purpose of the light), and an embedded signal for providing information into the environment. To do this, the light is modulated at a certain modulation frequency or frequencies, preferably a high enough frequency so as to be beyond human perception and therefore not affecting the primary illumination function. It is also possible that data may be transmitted using a dedicated coded light source, in which case the modulation may or may not be beyond human perception.
Coded light can be used for a number of applications. For example, the data embedded in the light may comprise an identifier of the light source emitting that light. This identifier can then be used in a commissioning phase to identify the contribution from each luminaire, or during operation can be used to identify a luminaire in order to control it remotely (e.g. via an RF back channel). In another example, the identification can be used for navigation or other location-based functionality, by providing a mapping between the identifier and a known location of the light source, and/or other information associated with the location. In this case a mobile device such as a mobile phone or tablet receiving the light (e.g. through a built-in camera) can detect the embedded identifier and use it to look up the corresponding location and/or other information mapped to the identifier (e.g. in a location database accessed over a network such as the Internet). In yet further applications, other information can be directly encoded into the light (as opposed to being looked up based on an ID embedded in the light).
In order to operate, a light source is connected to a module called a driver, which is responsible for supplying power to the light source so as to generate a light output at the required level, and also for modulating the output so as to encode data into the light in the case of coded light. Typically the driver is incorporated into the same luminaire unit as the light source itself. For example in the case of an LED-based luminaire, LEDs placed on a printed circuit board may be connected as a load to an LED driver, and the LEDs thereby generate the required light level as well as transmit one or more coded light messages generated by the LED driver (e.g. based on a data signal generated by software run on a microcontroller).
An LED driver typically consists of one or more switch-mode converters, such as a buck converter. This (output) converter directly connected to the LED load is used to modulate LED current for coded light. There are different ways to modulate LED current, and therefore light intensity. Known techniques for modulating data into the light include pulse width modulation (PWM), and frequency modulation. PWM is performed at a fixed frequency, with discrete duty cycle levels corresponding to the logical levels in the coded light message. In frequency modulation on the other hand, discrete frequency levels correspond to the logical levels in the coded light messages. Another coded light modulation technique is amplitude modulation (AM), where the discrete amplitude levels correspond to the logical levels in the coded light messages.