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 <a.j.buxton@gmail.com>
This commit is contained in:
Alistair Buxton
2025-11-07 18:06:13 +00:00
committed by KevinOConnor
parent ecccd21f2a
commit 39ac48339a

View File

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