-
-
Notifications
You must be signed in to change notification settings - Fork 288
WS2816B non-functional on ESP32 with default 3-step I2S cadence #912
Copy link
Copy link
Open
Labels
documentationThis issue is tracking a change in documentation and not in codeThis issue is tracking a change in documentation and not in codefuture considerationThis issue is tracking a feature for consideration in any future major work.This issue is tracking a feature for consideration in any future major work.
Description
Activity
Metadata
Metadata
Assignees
Labels
documentationThis issue is tracking a change in documentation and not in codeThis issue is tracking a change in documentation and not in codefuture considerationThis issue is tracking a feature for consideration in any future major work.This issue is tracking a feature for consideration in any future major work.
Describe the bug
WS2816B LEDs do not work out of the box with the default 3-step I2S cadence.
Defining
NPB_CONF_4STEP_CADENCEbefore importing theNeoPixelBus.horNeoPixelBusLg.hheader fixes the issue.To Reproduce
Steps to reproduce the behavior:
NeoGrbWs2816FeatureandNeoWs2816Method.Expected behavior
LED works correctly.
Development environment (please complete the following information):
Minimal Sketch that reproduced the problem:
Additional context
I took a look with an oscilloscope, and the output is incorrect without the
NPB_CONF_4STEP_CADENCEdefine. The signal looks mostly WS2816-like but the timing is sloppy and has some jitter. I found this define mentioned in #828 and presumably the 33/66 pulse duty timing is too loose for the WS2816B to accept.With
NPB_CONF_4STEP_CADENCEdefined the LED works as expected. In my opinion, documenting this requirement would be sufficient as a short-term fix.