Question about setCorrection/setTemperature. I'm working with leds that heavily over-represent the reds.

Question about setCorrection/setTemperature.

I’m working with leds that heavily over-represent the reds. To get a decent white, I have to use CRGB(200,255,255).

I’ve been trying to get my normal CRGB::White to display that “corrected” color. However I can’t figure out how to use the proper controller functions to do it.

How do I setCorrection to “remove” only some red?

Thank you

If you look at http://fastled.io/docs/3.1/group___color_enums.html, you’ll see that the color correction constants are just integers representing an RGB value.

CRGBs can be converted to/from integers, so you can try setting a correction with a CRGB object that has less red, like so:

FastLED.addLeds<CHIPSET, DATA_PIN, RGB_ORDER>(leds, LED_COUNT).setCorrection(CRGB(200, 255, 255));
http://fastled.io/docs/3.1/group___color_enums.html

@Chris_Parton I tried exactly that but for some reason I don’t get the same white as when I show CRGB(200,255,255) without correction. I’m not sure why.

@Franck_Marcotte So it does make an adjustment, but it’s just doesn’t match?

Can you post the two addLeds lines you’re using, with and without your correction addition?
Also is this with brightness set to 255?

@marmil I can’t perceive an adjustment when I use setCorrection or setTemperature… I tried extreme values but it’s not having any effect. I will try to isolate my code to supply an example, but it’s pretty straightforward :

const CRGB Correction = CRGB(200,255,255);

FastLED.addLeds<APA102, Strip1Dat, Strip1Clk,BRG>(leds, Strip0Length, Strip1Length).setCorrection(Correction);

or

FastLED[1].setTemperature(Correction);

@Franck_Marcotte If you run this color temp demo can you see the changes?

@marmil I got around to testing this with multiple controllers. The example you provided works well. I realized in my main code I had #define NO_CORRECTION 1. I feel like an idiot but yeah correction is now working properly. Thanks for the support.