Background:-So I have a TCS3472 board (
Adafruit link) which is basically 4 photodiodes. There are coloured filters (red, green, blue) infront of 3 of the photodiodes.
I am shining a lime LED at the TCS3472. The LED is phospher coated and outputs a pretty wide spectrum of wavelengths.
The TCS3472 is set up to use a 1x gain and 614ms integration time.
I am getting really weird behaviour/readings when the TCS3472 is held up close to the LED.
Expected results:-I have experimented with placing the TCS3472 around 5cm away from the LED, and then I PWM the LED up for 1/255 to 255/255 and get this logical progression of TCS3472 results:

When I hold the TCS3472 very close to the LED I expect to get roughly the same results, but of course on a much higher vertical axis.
Actual results:-When I hold the TCS3472 very close to the LED I get this progression of readings as I ramp up the intensity of the LED from 1/255 to 255/255:

This doesn't make any sense to me. Why do all of the channels seems to clip on a linearly-increasing value? Have I broken physics? Am I going to get a nobel prize?
Excluding the 'obvious' issues:-At face value it seems like this could be caused by 2 issues, but I don't think that either of them could actually cause this issue:
- Maxing out ADC value: My first thought was that I'm hitting the maximum ADC value at the end of the integration time, but this doesn't make sense. At an intensity of 161/255 the channels are capped at around 11,750.... but at an intensity of 251/255 the channels are capped at 14,200.
- Maxing out photodiode current: Again, this doesn't make sense because if the photodiode currents were maxxed out then there'd be a single value they all reach at the end of the 640ms integration time.
Any thoughts?