From 39ac48339aa77d3bce747f8f5980ed90a13daf79 Mon Sep 17 00:00:00 2001 From: Alistair Buxton Date: Fri, 7 Nov 2025 18:06:13 +0000 Subject: [PATCH] neopixel: Increase PULSE_LONG_TICKS to 800 for compatibility This timing is also known as T1H in various datasheets. Increasing it should improve compatibility with various revisions and clones of the WS2812 LED. The short version is that 800 is the timing used by Adafruit's popular NeoPixel Arduino library, and it has no problem driving my BTT RGBW kit LEDs, while Klipper cannot drive them properly without this patch. The real upper limit to this value is something like 5000ns so increasing it should not cause new compatibility problems for LEDs that currently work. Signed-off-by: Alistair Buxton --- src/neopixel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neopixel.c b/src/neopixel.c index fe3f724f9..d4121f057 100644 --- a/src/neopixel.c +++ b/src/neopixel.c @@ -75,7 +75,7 @@ neopixel_delay(neopixel_time_t start, neopixel_time_t ticks) #endif // Minimum amount of time for a '1 bit' to be reliably detected -#define PULSE_LONG_TICKS nsecs_to_ticks(650) +#define PULSE_LONG_TICKS nsecs_to_ticks(800) // Minimum amount of time for any level change to be reliably detected #define EDGE_MIN_TICKS nsecs_to_ticks(200) // Minimum average time needed to transmit each bit (two level changes)