Hi guys , I’m wondering if there is an article within this group about color palettes you use in your projects. I’ve been playing with some of the palettes from cpt-city and realized that there is a huge difference between what you see on the monitor and on leds. Also animation and diffusing methods make big difference with the same palette. I welcome you to share your custom palettes or may be 3rd party software for creating your own. For example there is a lot of videos showing Fire example by Mark in the web but try use it with that specific palette instead of heat_gp : http://soliton.vm.bytemark.co.uk/pub/cpt-city/gps/tn/GPS-Fire-Life-Span.png.index.html . Later I could post and video for it.
I don’t recall a discussion about that, and yes, there will probably always be a difference between monitor and LEDs because they work differently and because of the other things as you mentioned.
One thing you could experiment with is adding a color correction to your strips. On the addLeds line you can do this by adding .setCorrection on the end. There are a few preset adjustments:
FastLED.addLeds<LED_TYPE, DATA_PIN, CLOCK_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
Or
FastLED.addLeds<LED_TYPE, DATA_PIN, CLOCK_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalPixelString);
Or you can manually color correct things like so:
FastLED.addLeds<LED_TYPE, DATA_PIN, CLOCK_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(255,128,192);
This example would reduce the green by 50%, and blue by 25%.
When you run some basic gamma correction the led results come closer to the monitor output. A cheap, quick & dirty way to do so is this one:
for (uint16_t i = 0; i < NUM_LEDS; i++)
{
leds[i].r = dim8_video(leds[i].r);
leds[i].g = dim8_video(leds[i].g);
leds[i].b = dim8_video(leds[i].b);
}
What @marmil described is basically about the white balance and color temperature which is important as well.
Thanks both of you for the comments. My general observation is that red channel is lighted first at very “near to black” color values for.ex RGB 3,3,3 is displayed redish but in higher values blue prevails. Is there actually real difference in strips? I have experience only with Ws2811/12B. The Stefan’s approach look more convenient fir me as it coukd follow some logic about range in colors and apply different gamma based on it.
@Nikolay_Hristov You want to use both - the color correction for an equal brightness of r, g & b AND the gamma correction for well distributed brightness values within one basic color. And yes red and green are always brighter than blue. This will be solved with the .setCorrection( TypicalSMD5050). Most uncorrected led strips show redish results.
General hint for 24 bit leds: Avoid the brightness values 0 and 1 to get rid of the visible steps at the lowest end. If the smallest values are 2 you loose a bit of contrast but the animation in general appears more fluid.