Our TSL2561 digital light sensor has always been a popular breakout. Part of what makes this board so useful is actually the Adafruit driver, and that extra bit of effort that went into providing useful values like ‘lux’ instead of 0..1023 etc. It’s easy to get raw data out of any sensor, but that’s not always very useful if you want to do something useful with these sensors. Raw data needs to be converted to real world values, but this often takes more work than everything else in the driver put together, at least if you care about accuracy.
Using the Lux Equation from Taos gives a good overview of what’s involved in taking that raw sensor data and making it useful, taking into account easy to overlook values like the glass attenuation factor, etc. If you’re interested in things like color correction, Calculating Color Temperature and Illuminance also has some good details on accurately converting RGB sensor data to color temperature.
Part of the motivation behind the new Adafruit Unified Sensor system is to make it easier to give people real world values without having to do all kinds of matrix multiplication yourself … but sometimes it’s useful to see what goes on behinds the scenes, and know how to calculate some of this stuff yourself as well. All the real magic is in the fine print and the details!