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

fastled-support
gplus
(Franck Marcotte) #1

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

(Chris Parton) #2

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

(Franck Marcotte) #3

@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.

(Marc Miller) #4

@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?

(Franck Marcotte) #5

@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);

(Marc Miller) #6

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

(Franck Marcotte) #7

@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.