Why does color of addressable RGB LED strip change when dimming?
I suspect the main issue is because &quot;255&quot; in 8 bit PWM is not perceived by humans as &quot;double&quot; the brightness of &quot;127&quot; in 8 bit PWM.
So 255,70,0 would not directly convert to 25,7,0.
Added to that, there's the issue that at higher currents the voltage on the strip will drop more, shifting the colors of the strip.
And then on top of that, &quot;255,255,255&quot; would not be &quot;white&quot; because the efficiency of the LEDs will be different (i.e. blue will be brighter so it will be a cold-ish white, and so on).
In essence a bunch of non-linearities combined. Not ideal to try to get decent colors on addressable LED strips.
Adafruit has a nice article with suggested fixes for the perceived non linearities of the LEDs.