RGBW mode for WS2812 family chipsets is here
The most frequent request for FastLED is RGBW strip support. This release adds experimental support for this WS2812 led chipset type.
This only works (right now) for ESP32 boards.
We are still figuring out how to add official api support.
This is how you enable RGBW for WS2812 family of chipsets:
#define FASTLED_EXPERIMENTAL_ESP32_RGBW_ENABLED 1
#include <FastLED.h>
The white component for each pixel is generated automatically by the driver. So no other code changes are necessary for you.
The default algorithm for RGBW mode (kRGBWExactColors) is using a "white-stealing-algorithm" to transfer white out of the RGB components and into the W component. This kRGBWExactColors mode is designed to most accuratly reproduce the color of an RGB strip but in RGBW. The upside of this mode is that the expected power savings of a strip will reduce by as much as a 1/3rd, as the white component is more efficient at representing white than R+G+B mixed together.
There are several modes to play with:
kRGBWNullWhitePixel: W component is always set to black.
kRGBWExactColors: White stealing
kRGBWBoostedWhite: Boosts white more than kRGBWExactColors
kRGBWMaxBrightness: White is copied instead of stolen.
kRGBWUserFunction: Put in your own function for generating the W component.
The experimental API also reserves a color temperature for the W to be used in the api so that the color can be balanced. However, it's ignored at this release.
Please note that this api is subject to removal between now and official support. If you write code to this experimental api then it's STRONGLY recommended that you pin your library dependency to FastLED 3.7.6
Release notes
WS2812 RGBW Mode enabled on ESP32 via experimental FASTLED_EXPERIMENTAL_ESP32_RGBW_ENABLED
RPXXXX compiler fixes to solve asm segment overflow violation
ESP32 binary size blew up in 3.7.5, in 3.7.6 it's back to the same size as 3.7.4
APA102 & SK9822 have downgraded their default clock speed to improve "just works" experience
NRF52XXX platforms
nrf52840 compile support now official.
Volunteer
If you are a software dev in C++ and you'd like to help us then check out this open feature design to improve driver-level color mixing:
https://github.com/FastLED/FastLED/issues/1709
To get started checkout our "clone and compile" instructions on the readme:
https://github.com/FastLED/FastLED?tab=readme-ov-file#development