34#ifdef FASTLED_LED_OVERCLOCK
35#warning "FASTLED_LED_OVERCLOCK has been changed to FASTLED_OVERCLOCK. Please update your code."
36#define FASTLED_OVERCLOCK FASTLED_LED_OVERCLOCK
39#ifndef FASTLED_OVERCLOCK
40#define FASTLED_OVERCLOCK 1.0
42#ifndef FASTLED_OVERCLOCK_SUPPRESS_WARNING
43#warning "FASTLED_OVERCLOCK is now active, #define FASTLED_OVERCLOCK_SUPPRESS_WARNING to disable this warning"
50#ifndef FASTLED_OVERCLOCK_WS2812
51#define FASTLED_OVERCLOCK_WS2812 FASTLED_OVERCLOCK
54#ifndef FASTLED_OVERCLOCK_WS2811
55#define FASTLED_OVERCLOCK_WS2811 FASTLED_OVERCLOCK
58#ifndef FASTLED_OVERCLOCK_WS2813
59#define FASTLED_OVERCLOCK_WS2813 FASTLED_OVERCLOCK
62#ifndef FASTLED_OVERCLOCK_WS2815
63#define FASTLED_OVERCLOCK_WS2815 FASTLED_OVERCLOCK
66#ifndef FASTLED_OVERCLOCK_SK6822
67#define FASTLED_OVERCLOCK_SK6822 FASTLED_OVERCLOCK
70#ifndef FASTLED_OVERCLOCK_SK6812
71#define FASTLED_OVERCLOCK_SK6812 FASTLED_OVERCLOCK
111#ifndef FASTLED_WS2812_T1
112#define FASTLED_WS2812_T1 250
115#ifndef FASTLED_WS2812_T2
116#define FASTLED_WS2812_T2 625
119#ifndef FASTLED_WS2812_T3
120#define FASTLED_WS2812_T3 375
141#ifndef FASTLED_WS2812B_V5_T1
142#define FASTLED_WS2812B_V5_T1 225
145#ifndef FASTLED_WS2812B_V5_T2
146#define FASTLED_WS2812B_V5_T2 355
149#ifndef FASTLED_WS2812B_V5_T3
150#define FASTLED_WS2812B_V5_T3 645
520template <
typename TIMING>
522 return {TIMING::T1, TIMING::T2, TIMING::T3, TIMING::RESET,
"timing"};
529 return timing.T1 + timing.T2 + timing.T3;
Encoding pipeline selector for clockless LED chipsets.
#define FASTLED_WS2812B_V5_T1
#define FASTLED_WS2812_T3
#define FASTLED_WS2812B_V5_T2
#define FASTLED_WS2812_T1
#define FASTLED_WS2812B_V5_T3
#define FASTLED_WS2812_T2
ClocklessEncoder
Identifies which encoder to use for clockless chipsets in the Channel API.
@ CLOCKLESS_ENCODER_UCS7604_8BIT
UCS7604 8-bit 800KHz.
@ CLOCKLESS_ENCODER_UCS7604_16BIT
UCS7604 16-bit 800KHz.
@ CLOCKLESS_ENCODER_UCS7604_16BIT_1600
UCS7604 16-bit 1600KHz.
constexpr ChipsetTiming to_runtime_timing() FL_NOEXCEPT
Convert enum-based timing type to runtime ChipsetTiming struct.
const ChipsetTiming * get_timing_by_name(const char *name) FL_NOEXCEPT
Get timing by name (for dynamic lookup if needed)
constexpr u32 get_bit_period_ns(const ChipsetTiming &timing) FL_NOEXCEPT
Get total bit period (T1 + T2 + T3) in nanoseconds.
constexpr u32 get_timing_t2(const ChipsetTiming &timing) FL_NOEXCEPT
Extract T2 (additional high time for bit 1) from timing constant.
constexpr u32 get_timing_t3(const ChipsetTiming &timing) FL_NOEXCEPT
Extract T3 (low tail duration) from timing constant.
constexpr u32 get_timing_t1(const ChipsetTiming &timing) FL_NOEXCEPT
Extract T1 (high time for bit 0) from timing constant.
TIMING_WS2812B_MINI_V3 TIMING_WS2812B_V5
Convenience alias - WS2812B-V5 uses identical timing to Mini-V3.
TIMING_WS2812_800KHZ WS2812ChipsetTiming
Convenience alias for WS2812 timing (commonly used name)
Base definition for an LED controller.
u32 RESET
Reset/latch time (microseconds)
const char * name
Human-readable chipset name.
u32 T2
Additional high time for bit 1 (nanoseconds)
u32 T3
Low tail duration (nanoseconds)
u32 T1
High time for bit 0 (nanoseconds)
Generic chipset timing entry Provides T1, T2, T3 timing parameters in nanoseconds for any LED protoco...
DP1903 controller @ 400 kHz Four-phase: TH0=800ns, TH1=2400ns, TL0=2400ns, TL1=800ns.
DP1903 controller @ 800 kHz Four-phase: TH0=400ns, TH1=1400ns, TL0=1400ns, TL1=400ns.
GE8822 RGB controller @ 800 kHz Four-phase: TH0=350ns, TH1=1010ns, TL0=1010ns, TL1=350ns.
GW6205 controller @ 400 kHz Four-phase: TH0=800ns, TH1=1600ns, TL0=1600ns, TL1=800ns.
GW6205 controller @ 800 kHz (fast variant) Four-phase: TH0=400ns, TH1=800ns, TL0=800ns,...
LPD1886 RGB controller @ 1250 kHz Four-phase: TH0=200ns, TH1=600ns, TL0=600ns, TL1=200ns.
PL9823 RGB controller @ 800 kHz Four-phase: TH0=350ns, TH1=1360ns, TL0=1360ns, TL1=350ns.
SK6812 RGBW controller @ 800 kHz Four-phase: TH0=300ns, TH1=900ns, TL0=900ns, TL1=300ns.
SK6822 RGB controller @ 800 kHz Four-phase: TH0=375ns, TH1=1375ns, TL0=1375ns, TL1=375ns.
SM16703 RGB controller @ 800 kHz Four-phase: TH0=300ns, TH1=900ns, TL0=900ns, TL1=300ns.
SM16824E RGB controller (high-speed variant) Four-phase: TH0=300ns, TH1=1200ns, TL0=1000ns,...
TM1803 controller @ 400 kHz Four-phase: TH0=700ns, TH1=1800ns, TL0=1800ns, TL1=700ns.
TM1809 RGB controller @ 800 kHz Four-phase: TH0=350ns, TH1=700ns, TL0=800ns, TL1=450ns.
TM1814 RGBW controller @ 800 kHz Four-phase: TH0=360ns, TH1=960ns, TL0=940ns, TL1=340ns.
TM1829 RGB controller @ 1600 kHz (high-speed variant) Four-phase: TH0=100ns, TH1=400ns,...
TM1829 RGB controller @ 800 kHz Four-phase: TH0=340ns, TH1=680ns, TL0=890ns, TL1=550ns.
UCS1903 controller @ 400 kHz Four-phase: TH0=500ns, TH1=2000ns, TL0=2000ns, TL1=500ns.
UCS1903B controller @ 800 kHz Four-phase: TH0=400ns, TH1=850ns, TL0=900ns, TL1=450ns.
UCS1904 controller @ 800 kHz Four-phase: TH0=400ns, TH1=800ns, TL0=850ns, TL1=450ns.
UCS1912 controller @ 800 kHz Four-phase: TH0=250ns, TH1=1250ns, TL0=1350ns, TL1=350ns.
UCS2903 controller @ 800 kHz Four-phase: TH0=250ns, TH1=1000ns, TL0=1000ns, TL1=250ns.
static constexpr ClocklessEncoder ENCODER
UCS7604 RGBW controller @ 1600 kHz (16-bit color depth, high-speed) Four-phase: TH0=200ns,...
static constexpr ClocklessEncoder ENCODER
UCS7604 RGBW controller @ 800 kHz (16-bit color depth) Four-phase: TH0=400ns, TH1=800ns,...
static constexpr ClocklessEncoder ENCODER
UCS7604 RGBW controller @ 800 kHz (8-bit color depth) Same wire timing as 16-bit 800KHz,...
WS2811 @ 400kHz (standard mode, datasheet specification)
WS2811 @ 800kHz (fast mode, half the timing of 400kHz mode)
WS2812 RGB controller @ 800 kHz legacy variant Four-phase: TH0=320ns, TH1=640ns, TL0=960ns,...
static constexpr const char * name() FL_NOEXCEPT
WS2812 RGB controller @ 800 kHz (most common, overclockable) Four-phase: TH0=250ns,...
WS2812B-Mini-V3 / WS2812B-V5 RGB controller @ 800 kHz Four-phase: TH0=225ns, TH1=580ns,...
WS2813 RGB controller (same timing as WS2812) Four-phase: TH0=320ns, TH1=640ns, TL0=960ns,...
WS2815 RGB controller @ 400 kHz Four-phase: TH0=250ns, TH1=1340ns, TL0=1640ns, TL1=550ns.