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

please also support the ESP32 #41

Closed
micropet opened this issue Sep 8, 2017 · 9 comments
Closed

please also support the ESP32 #41

micropet opened this issue Sep 8, 2017 · 9 comments

Comments

@micropet
Copy link

micropet commented Sep 8, 2017

The program runs error-free on an ESP8266.
On an ESP32 different Leds flicker, or stay on.
Test with ws2812 and ws2813.

@moose4lord
Copy link
Collaborator

I finally got my ESP32 and I see the same flickering. It's not a problem with WS2812FX, it's a timing issue with the ESP32. See https://forums.adafruit.com/viewtopic.php?f=47&t=117327, which mentions a workaround if your string of LEDs is short (less then 34 LEDs). If you are trying to control a longer string of LEDs, you'll probably have to wait for the Adafruit NeoPixel library to be updated to work properly with the ESP32.

@micropet
Copy link
Author

micropet commented Nov 2, 2017

Thank you.
So not easy to solve.

Greetings Peter

@Dema323
Copy link

Dema323 commented Apr 19, 2018

Has this been resolved ?

@micropet
Copy link
Author

micropet commented Apr 19, 2018

Yes. Thank you.
edit:

Sorry, I confused something.
The correct answer is: I do not know.

@moose4lord
Copy link
Collaborator

@micropet what makes you say this has been fixed? I have heard rumblings on the internet that the NeoPixelBus library has a solution that kind'a works, but as far as I know the Adafruit_Neopixel library is still broken.

@Dema323
Copy link

Dema323 commented Jun 3, 2018

I started using some guys neopixelbus lib and works fine now

@moose4lord
Copy link
Collaborator

OK, I dusted off my ESP32 and gave it a try. The version of NeoPixelBus released to the Arduino Library Manager (v2.2.9 which is quite old) still seems to have issues with the ESP32's interrupt processing, although I can get it to work by judiciously placing a delay(1) in my test sketch. The more up-to-date version of NeoPixelBus on GitHub works better, since it has the delay(1) trick built right into the bit bang code, as well as a call to taskENTER_CRITICAL() to disable task switching during the LED update.

WS2812FX behaves like the old version of NeoPixelBus. It updates the LEDs erratically, but I can get it to work by adding a delay(1) in my test sketch. I tried adding taskENTER_CRITICAL() to the WS2812FX bit bang code, but it did not help, so I'm not sure what's going on with the ESP32. Guess I'll be sticking with my trusty ESP8266 for a while longer. :)

@moose4lord
Copy link
Collaborator

Archiving this conversation for now. I'm sure it will pop up again as the ESP32 software matures.

@Yurik72
Copy link

Yurik72 commented Feb 25, 2019

Hi All,
Please have a look my idea
https://github.com/Yurik72/ESPHomeController/wiki/WS2812-driver-to-remove-flickering
to keep ws2812fx as a class and do not change to other library

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

4 participants