Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for these possibly proprietary WS2805 lights #865

Open
Slyke opened this issue Dec 4, 2024 · 1 comment
Open

Add support for these possibly proprietary WS2805 lights #865

Slyke opened this issue Dec 4, 2024 · 1 comment

Comments

@Slyke
Copy link

Slyke commented Dec 4, 2024

Is your feature request related to a problem? Please describe.
Purchased some garden flex lights and almost have them working correctly with WLED. They just never show the color blue.

Describe the solution you'd like
Support for these WS2805 lights.

Describe alternatives you've considered
Compiling NeoPixels and WLED with modified timings.

Additional context

Diagnosing the issues with my oscilloscope, it appears that there's a quiet zone of 2 bits after each byte of the between each of the 4 bytes for each pixel. The quiet zone also exists in WLED, but is significantly shorter. The symptom is that the lights never show the color blue, as the byte phases are misaligned at some point during the green byte, and instead blue appears to be some variant of white.

These are the lights in question:
image

Here are some screenshots taken from my oscilloscope from the proprietary controller. Note the step differences between 5 and 20us:
Blue:
blue_ctrl_1
blue_ctrl_2

Green:
green_ctrl_2
green_ctrl_1

Red:
red_ctrl_2
red_ctrl_1

White:
white_ctrl_2
white_ctrl_1

WLED (Uses NeoPixels):
Blue:
blue_wled

Green:
green_wled

Red:
red_wled

White:
white_wled

WLED Settings:
image

@Slyke Slyke changed the title Add support for possibly proprietary lights Add support for these possibly proprietary lights Dec 4, 2024
@Slyke Slyke changed the title Add support for these possibly proprietary lights Add support for these possibly proprietary WS2805 lights Dec 4, 2024
@Makuna
Copy link
Owner

Makuna commented Dec 4, 2024

The WS2805 chip is a little particular about its speed; it is directly supported by my library, but I am unsure how WLED exposes and if they do yet as it was just added earlier this year. It does not require and spacing between bits/bytes/words/pixels.

From your captures it looks like the pause is between 16 bits (2 bytes) not 4 bytes.

Capture and display the actual pulse width of a single pulse for both a 0 (short positive pulse) and a 1 (long positive pulse). Also capture the start and end of a pulse train, they are separated by a long silent (reset) time of at least 100us in size.

Also, capture what your WLED output is, zoom in so the pulse form can be reviewed.

Often the inter-byte or inter-pixel delays that are seen are not a LED requirement, but a side effect of the controller and how they implement the output. In your case, its inter-word (16 bits). It is not easy to support this with the hardware peripheral use required by ESP chips to keep a consistent output. The bit-bang method supports adding a inter-pixel delay; a previous investigation into these sorts of spacings. But it was found out the true issue was improper signal level shifting and that these spacings are an artifact of the controller and a requirement of the LEDs. The ESP is 3.3v and the LEDs really needed a minimum of 3.7v (optimum 5v or even greater); getting this right with voltage level and pulse form (some round off the edges of the pulse and add noise/spikes at the leading edge).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants