NeoPixel flackert

Ich verwende (in anderen Projekten) die WS2812FX Lib, bei der gibt es ein Beispiel für den ESP32 mit RMT Driver, das läuft bei mir rund…

https://github.com/kitesurfer1404/WS2812FX/tree/master/examples/ws2812fx_esp32

Leider ja. Ist über die Zeit immer mal besser und wieder schlechter geworden. Zeitweise hatte ja die Fastlib sogar für Abstürze des ESP32 gesorgt. Es wurde hier irgendwann mal eine andere Lib genannt, die wohl besser als Fastled sein sollte. Weiß nicht mehr, wie die hieß. Die aus dem Link war es nicht.

Ein Freund von mir hat demletzt in Micropython ein Pendel simuliert. Der hatte auf jeden Fall auch so ein Flackern. Letztlich ist es ja auch so, dass wir den Neopixel mit 3.3V außerhalb seiner Spec betreiben - der ist ja für 5 V gedacht.

Danke für Eure Rückmeldungen. Dann ist es immerhin kein Einzelschicksal.
Die andere Lib war evtl

hier Library Comparisons · Makuna/NeoPixelBus Wiki · GitHub

steht das beide (und die von mir genutze) Libs den RMT Teil vom ESP32 unterstützen, welche wird den hier genutzt? und wird der RMT Teil genutzt?

Sonst könnte noch

RMT timing currently is sensitive to high interrupt frequency due to issues in the Core.

die Probleme verursachen…

Ja ich denke die Lib von Makuna passt. Tatsächlich hatte ich auch in Erinnerung, dass die Steuerung via i2s läuft.

Eija, ich hab’s mal in meine ToDo-Liste geschrieben. Da muss halt schon bissl was umgeschrieben werden.

Damit ich das nicht vergesse poste ich dazu auch mal einen Link zu Tasks rein:

If you notice any flickering related to network activity and/or high CPU load you might want to look into ESP32 and RTOS tasks

Ich habe das Konstrukt aus Deinem Link mal - sehr unsauber - per copy & paste für FastLED ausprobiert. Das kann nicht so bleiben, aber ich habe damit kein Flackern mehr!

Jetzt muss man mal schauen, ob das Nebeneffekte hat…

1 „Gefällt mir“

Am ehesten würde ich da an den Upload per Webtransfer denken. Es wäre aber kein Showstopper, wenn es so wäre. Weil die Information, dass ein Upload gerade läuft, hat man ja problemlos - da kann man für diese Zeit die Prioritäten auch readjustieren.

Gibt Neuigkeiten in dieser Sache:

Hi , kann ich leider so nicht bestätigen.
Ich verwende in meinen bisherigen Boxen nur 1 einzelne LED, nicht weil ich den Neopixelring nicht mag, sondern einfach aus Platzgründen. Meine Boxen sind zu klein. Deshalb habe ich ein PCB für einen 24er Ring entworfen (Außendurchmesser ca. 58mm) in dessen Zentrum ein kleiner RFID-Reader sitzt.
Ich habe noch nicht bestückt und nochmals ausgiebig den gekauften Neopixelring ausprobiert. Leider empfinde ich das Flackern immer noch als sehr störend. Ich dachte es liegt an der 3,3V Versorgungsspannung. Laut Datenblatt ist der Spannungsbereich ab >3,5V definiert. Deswegen habe ich eine externe 5V-Spannungsquelle angeschlossen und die Datenleitung ohne und auch mit Levelshifter ausprobiert . Macht keinen Unterschied, es flackert weiterhin mit allen Varianten.
Mir ist dabei aufgefallen dass es bei Webradio immer irgendwo flackert, aber ansonsten bei der Fortschrittsanzeige erst wenn mehr als 12 LED´s angesteuert werden. Daraufhin habe ich die Anzahl der LED´s auf 12 reduziert und siehe da, es flackert nichts mehr , auch nicht bei Webradio. Seltsam oder? . Kann das ein Zeitproblem sein?
Mich würde interessieren ob das bei euch auch so ist.

@JHB hat eine andere Library benutzt , würde das auch hier funktionieren . Ich kann das leider nicht umsetzen.

Das sind auf jeden Fall interessante Erkenntnisse, dass man das Problem mit Levelshifter auch hat. Bei mir hat das damals leider nicht funktioniert und dann habe ich das nicht weiter verfolgt.

Also ja, ich kann bestätigen, dass es weiterhin flackert. Zwischenzeitlich ist es irgendwie wieder etwas mehr geworden. Bisher hatte ich aber noch keine Muße, auch wenn ich mir den Thread hier als Aktionspunkt mitgenommen habe, mich darum zu kümmern.

@compactflash
Hat dein PCB pro LED einen 100nF C? Hast du mal mit dem Serienwiderstand probiert?

Zweimal ja …

Meiner flackert auch sporadisch blau. Auftreten und Dichte schwanken sehr. Wirkt sehr zufällig, wenn da System hinter steckt, müsste es einen unregelmäßigen Einfluss irgendwo geben (normaler SD-Play Betrieb, kein Radio, WLAN-Upload oder so)

Man kann gut mit leben (Funktion ist ja trotz unbeabsichtigtem Strobo-Effekt gegeben), aber in meinem Hirn nagt sowas als offener Punkt. Mir fehlen leider Skills/Expertise, um sowas zu debuggen. Wenn ich mit testen etc. helfen kann, mach ich das natürlich gern.

Ich habe in den letzten Monaten immer wieder nebenbei ein paar Versuche gestartet an der Performance des LED-Task (und anderen Stellen) zu arbeiten.

Das Ding ist noch nicht perfekt, aber vielleicht kann es helfen das Problem mit dem Flackern einzugrenzen:

Bei mir ist es bisher zumindest nicht mehr aufgetreten!
Über Rückmeldungen dazu wäre ich sehr dankbar!

1 „Gefällt mir“

Als Non-Dev bin ich mir nicht sicher, was genau das Ding ist und wie ich es benutze - Ist das eine Alternative zur Standard-Firmware, oder wie binde ich das ein?

Das ist ein sog. Fork meiner Firmware. Davon gibt es derzeit auf GitHub 67 Stück. Da startet ein Entwickler also mit dem Code, den ich zur Verfügung stelle, macht Anpassungen und läd es wieder (in sein Repository) hoch.
Als Endbenutzer kannst du den Code gleichermaßen auschecken (runterladen) + kompilieren + flashen. Nur hängt der Support, sofern welcher gegeben wird, dann am Entwickler, der das geforkt hat. Aber kannst ja gerne mal testen.

1 „Gefällt mir“

OK, doch ein fork, war mir nicht sicher. Das laufende System lasse ich lieber erstmal in Ruhe, aber wenn ich Luft habe, stecke ich die Elektronik vom 2. System mal zusammen.

Passt die Konfiguration da auch? Wenn ich es richtig verstehe, ist die fertige Platine eine Hardware, die im Original eingestellt werden kann - d.h. der Fork funktioniert genauso, zerschnießen kam ich mir da nichts, richtig? Nur sicherheitshalber…

Ich für meinen Teil trage dafür Sorge, dass die Software auch zur Hardware passt, die ich hier vorstelle. Was der jeweilige Entwickler, der den Fork macht, in den Fork eingebracht hat, obliegt ganz ihm. In diesem Falle geht es allerdings tatsächlich nur um eine (größere) Neopixel-Anpassung. Also der Fork ist recht nah an meinem Master dran.

Hi
Ich bin gerade dabei die Box für meine Enkelin fertig zu machen , die erste die ich statt mit Single-Led mit meinem Neopixelring ausstatte. Da mich das Flackern extrem nervt und ich dazu schon mal meine „Forschungen“ geschildert habe, hatte ich heute die Idee die LED.cpp auf .Core 1 laufen zu lassen, ohne genau zu wissen was ich da mache. Ich schaue jetzt seit 20 Minuten auf den Ring , es flackert nix mehr. Zurückgeändert , es flackert sofort wieder. Wieder auf Core 1 , alles ok.
Das kann doch nicht so einfach gewesen sein. Ich weiß auch nicht ob das mit den anderen Tasks zusammenpasst , bisher habe ich kein Problem bemerkt.
Kann das bitte mal jemand testen.

1 „Gefällt mir“

Sieht tatsächlich erstmal gut aus :+1:.
Werde es mal ein bisschen testen.