Summary
Flickering reported on SK6812 / RGBW strips driven by ParallelLedDriver. Two independent reports:
- @limpkin (maker of the SE16 and LightCrafter boards): flickering with RGBW strips, present even on wires under 5 cm.
- @ewowi: flickering reproduced on a LightCrafter 16, initially only on a long (400 cm) data wire.
The question this issue tracks: is this inherent to the hardware, or can the LED driver timings be adjusted to fix it?
Symptoms
- Worse on dense frames (many lit lights); much less visible, sometimes absent, on sparse frames.
- Corruption appears as wrong colors, notably white pixels in a frame containing no white, which means mis-decoded bits rather than a brightness or refresh artifact.
- Affects one lane at a time while other lanes of the same parallel driver render perfectly.
Setup under test
|
|
| Board |
LightCrafter 16 (ESP32-S3, esp32s3-n8r8) |
| Driver |
ParallelLedDriver, direct I80 path (pinExpander=false, peripheral=0) |
| Strips |
SK6812 RGBW, 144 lights per tube, whiteMode=1, preset GRBW |
| Timing |
T0H 375 ns / T1H 750 ns (pixel clock 2.67 MHz, 3 bus slots per bit) |
Why this is not obviously a timing problem
All lanes of the parallel driver are bits inside a single shared bus word: one encoder, one peripheral, one DMA transfer, one pixel clock. A timing or encoding fault would therefore corrupt every lane equally. A symptom that appears on one lane while its neighbors are clean cannot originate upstream of the GPIO pin.
That constraint is what the investigation in the comment below is built around.
Summary
Flickering reported on SK6812 / RGBW strips driven by
ParallelLedDriver. Two independent reports:The question this issue tracks: is this inherent to the hardware, or can the LED driver timings be adjusted to fix it?
Symptoms
Setup under test
esp32s3-n8r8)ParallelLedDriver, direct I80 path (pinExpander=false,peripheral=0)whiteMode=1, presetGRBWWhy this is not obviously a timing problem
All lanes of the parallel driver are bits inside a single shared bus word: one encoder, one peripheral, one DMA transfer, one pixel clock. A timing or encoding fault would therefore corrupt every lane equally. A symptom that appears on one lane while its neighbors are clean cannot originate upstream of the GPIO pin.
That constraint is what the investigation in the comment below is built around.