In the prior setup all three light sensors were kept on a makeshift shelf in direct view of the target lamps. This was done to address features of the ambient lighting sensor, where having a fixed distance from the source could allow for precise light output calculations, and the well-documented spectroscopy sensor, which had a limited field of view.
However, moving around the sensors while performing some additional testing recently provided a significant improvement in the ability of the RGB sensor to provide lighting color temperature numbers which correlate very strongly to manufacturer rated values. Without any additional calibration or adjustment to the color temperature calculation formula, positioning the RGB sensor out of direct line of sight with the lamps has produced color temperature numbers within 1% of manufacturer rated numbers - an order of magnitude improvement(!).
|Lamp||Labeled Color Temp (K)||Direct Position|
Calc. Color Temp (K)
Calc. Color Temp (K)
|EcoSmart Soft White||2700K||2387K||2738K|
This was an interesting development and has been part of the learning process with the selected RGB sensor. Clearly being in direct line of sight of the lamps was impacting the readings. This actually recommends a design we'd considered but not implemented in our first prototype in which a white card is kept at a 45 degree angle to the sensor board to encourage the measurement of the color temperature of indirect room light.
Ultimately the model of RGB sensor we chose doesn't seem to have been as popular as other sensors in the community (such as the ISL29125 or TCS34725), nor is it as well documented by the manufacturer given that it was part of an intentionally limited-run product line (Sparkfun's SparkX experimental product line). We've had reasonably good results, but there's definitely been some trial and error along the way that could've been eliminated by simply selecting a more common option within the Arduino community (or at least one with a more substantial amount of manufacturer documentation).
We're still having some fun with this prototype so look forward to some more posts (midterm exams kept the team away for the last couple of weeks - but everyone survived and is looking forward to some additional refinements!).