[Project] NeopixelBusFX - WS2812 Effekt-Plugin für ESPEasy

Begonnen von djcysmic, 05 Juli 2017, 21:19:46

Vorheriges Thema - Nächstes Thema

ComputerZOO

Moin,
das hört sich aber nach einem Hardwareproblem an, wieviele Pixel (und welchen Typ) betreibst du, und was für ein Netzteil wird eingesetzt?
Vielleicht könntest du hier mal nen Link der Bauteile hinzufügen und auch nen paar Bilder von dem Aufbau mit einfügen.

djcysmic

@ mizu
Sobald meine RGBW-Stripes da sind, werde ich versuchen, diese Funktion zu implementieren.

@ Dominic
Das Flackerproblem hört sich, wie Max schon schrieb, nach einem Hardwareproblem an.
Ein ähnliches Fehlerbild hatte ich, als ich ich ein 12V-WS2811-Stripe mit einem ESP und 3,3V angesteuert habe - nachdem ich jetzt einen Levelshifter dazwischen habe, läuft er ohne Probleme.

Siehe dazu auch das Datasheet vom WS2811 (Steuerspannung min. 0,7 x Eingangsspannung für Hi-Level - macht bei 5V = 3,5V)
Allerdings laufen die meisten 5V-Stripes direkt am ESP mit den 3,3V
Nach dem ersten Pixel spielt es auch keine Rolle mehr, da dieser das Steuersignal auf das geforderte Level anhebt, sofern er alles korrekt erkennt ;)

Hier wird beispielsweise ein Pixel als Levelshifter "missbraucht": https://hackaday.com/2017/01/20/cheating-at-5v-ws2812-control-to-use-a-3-3v-data-line/
Ein normaler MOSFET mit relativ kleinen Widerständen tut's allerdings auch...

Torchwood

Hallo zusammen,

ich habe auch gerade das Projekt auf einer NodeMCU am Laufen und bin begeistert. Gibt es für die Attribute eine Dokumentation? Ich habe verschiedene Stripes und da sind teilweise die Farben getauscht (rot/grün). Kann man das per Attribut korrigieren oder ist das nur per Neukompilation möglich?

Grüße
Volker

djcysmic

Zitat von: Torchwood am 17 November 2017, 17:30:58
Gibt es für die Attribute eine Dokumentation? Ich habe verschiedene Stripes und da sind teilweise die Farben getauscht (rot/grün). Kann man das per Attribut korrigieren oder ist das nur per Neukompilation möglich?

Hallo Volker,

momentan ist es leider nur per Neukompilierung möglich - ich bin noch auf der Suche, wie ich das mit einem Attribut umsetzen kann.
Den erforderlichen Parameter findest du aktuell in Zeile 94:

#define FEATURE NeoGrbFeature //NeoBrgFeature //Color order

Mögliche Werte sind u.a.:

NeoGrbFeature - grün, rot blau (Standard - SK6812(grb), WS2811, WS2812)
NeoRgbFeature - rot, grün, blau (einige ältere LEDs)
NeoBrgFeature - blau, rot, grün

Alle Werte findest du unter https://github.com/Makuna/NeoPixelBus/wiki/NeoPixelBus-object

Viele Grüße
Nico

Dominic

Zitat von: ComputerZOO am 12 November 2017, 10:08:45
Moin,
das hört sich aber nach einem Hardwareproblem an, wieviele Pixel (und welchen Typ) betreibst du, und was für ein Netzteil wird eingesetzt?
Vielleicht könntest du hier mal nen Link der Bauteile hinzufügen und auch nen paar Bilder von dem Aufbau mit einfügen.

Hi, Sorry das ich jetzt erst antworte... Ich habe ein Labornetzteil verwendet, wo ich Spannung und Strom einstellen kann. Die Anzahl der Pixel sind 90 und welchen Type, kann ich leider nicht genau sagen...Ich werde mal schauen, ob ich da noch mehr in Erfahrung bringen kann. Danke für die Antwort.

bloodybeginner

#125
Moin!

ich habe massive Probleme das Plugin zu kompilieren.
Sowohl mit IDE 1.8.2 wie auch mit der 1.8.5. Das von mir verwendete ESPEASY ist die Version Release v2.0.0-dev12

Der Linker meldet:
Archiving built core (caching) in: C:\Users\Rolf\AppData\Local\Temp\arduino_cache_583921\core\core_esp8266_esp8266_d1_mini_CpuFrequency_80,UploadSpeed_921600,FlashSize_4M3M_53f8bc4fb9abafcd14fae87f89645622.a
g:/arduino ide portabels/arduino 1.8.5 espeasy/arduino-1.8.5/portable/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\Rolf\AppData\Local\Temp\arduino_build_737871/ESPEasy.ino.elf section `.text' will not fit in region `iram1_0_seg'

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board WeMos D1 R2 & mini.


Ursächlich ist wirklich das Plugin. Nehme ich das Plugin raus und include "aus Spaß" die Bibiliotheken
#include <NeoPixelBrightnessBus.h>
#include <FastLED.h> //for math operations in FireFX
#include <faketv.h> //color pattern for FakeTV

in einem anderen Plugin, läuft der Linker durch.


Hat jemand eine Idee für mich?

Edith: Rabiates Löschen überzähliger Plugins, setzen der FlashSize auf 4m (1M SPIFFS) und
//build all the normal stable plugins
//#define PLUGIN_BUILD_NORMAL

//build all plugins that are in test stadium
//#define PLUGIN_BUILD_TESTING

//build all plugins that still are being developed and are broken or incomplete
//#define PLUGIN_BUILD_DEV

minimal Plugins brachte die Lösung

//bb

djcysmic

Das sieht mir stark nach einem Speicherplatz-Problem aus.

Wähle bitte als Flash Size: 4M (1M SPIFFS) aus.
Wenn das nicht ausreichen sollte, kannst du noch nicht benötigte Plugins entfernen - dann sollte es eigentlich laufen ;)

clumsy

Zitat von: djcysmic am 22 Oktober 2017, 17:35:08
Ich bin jederzeit gerne bereit, sinnvolle Erweiterungen ins Plugin einzubauen bzw. zu übernehmen und bin da auch für jede Hilfe dankbar.
Im Moment komme ich leider zeitlich bedingt nur sehr wenig dazu.
Das ist doch der Grundgedanke von OpenSource, oder? ;)
Hallo

Wie angedroht hab ich ein paar kleine Änderungen, plus mal eine erste neue Funktion (simpleclock) eingebaut. Die wesentlichen Änderungen sind, dass bei den Kommandos bei denen Start- und Endpixel angegeben werden nun auch über das Ende hinaus funktionieren. D.h. wenn ich bei 60 Pixeln als Start 40 und Ende 10 angebe, dann werden die 40-59 und 0-10 angesteuert... Praktisch wenn die Pixel kreisförmig angeordnet sind...

Die simpleclock nimmt bis zu 5 Argumente (farben), ist im Header Teil beschireben...

Schaus dir mal an wenn du Lust und Zeit hast, falls es passt kannsts ja übernehmen...

lg aus der Schweiz...

STefan


djcysmic

#128
Hallo Stefan,

vielen Dank für deine Mühe - habe es gerade getestet und soeben eingecheckt. Saubere Arbeit :)

@all
Ich bin gerade noch dran, die RGBW-Funktionalität zu implementieren. Standalone läuft schon alles richtig gut, solange ich bei RGBW bleibe.
Wenn ich allerdings auf einen reinen RGB-Stripe zurück gehe, kann er mit dem W-Kanal nichts mehr anfangen und spuckt mir beim Compilieren haufenweise Fehlermeldungen aus.
Sobald ich das auf die Reihe bekommen habe, gibt's das nächste Update ;)

Update:
Habe soeben das Plugin mit RGBW-Funktionalität eingecheckt. Den RGB-Typ könnt ihr jetzt in den Zeilen 99-104 auswählen, indem ihr die Slashes davor entfernt (im Beispiel ist GRB ausgewählt):

#define GRB //should be standard - SK6812(grb), WS2811, and WS2812
//#define GRBW //This is used for SK6812rgbw pixels that have the separate white led in them.
//#define RGB //some older pixels
//#define RGBW //A four element color in the order of Red, Green, Blue, and then White. A common four element format.
//#define BRG //A three element color in the order of Blue, Red, and then Green.
//#define RBG //A three element color in the order of Red, Blue, and then Green.


Bei der Farbauswahl für die einzelnen Effekte werden damit auch 8-stellige akzeptiert: RRGGBBWW
6-stellige Werte werden als RRGGBB mit W = 0 interpretiert.

gadget

Hallo,

zunächst einmal Danke für die tolle Arbeit ! Ich bin heute auf diesen Thread gestossen, weil ich noch ein China-LED-Kette (https://www.amazon.de/gp/product/B00MXW054Y) rumliegen habe und die evtl. zur Weihnachtsbeleuchtung umfunktionieren will. Ein ESP Development Board hatte ich auch noch übrig. Das fhem ESPEasy-Modul habe ich eh schon für sonoff im Einsatz. Perfekte Voraussetzungen also. Ich habe es bislang nicht auf die Reihe bekommen das .bin selbst zu bauen, aber das firmware4096.bin von https://github.com/djcysmic/NeopixelBusFX scheint ja aktuell zu sein und funktioniert bei mir soweit prima. Jetzt habe ich nur das Problem, dass bei meiner Kette die Farben vertauscht sind und um das zu ändern müsste ich ja die defines ändern und neu übersetzen  >:(
Könnte man das nicht bei den Device settings im ESP-Webinterface einstellbar machen (genau so wie die Anzahl LEDs) ? Über fhem bräuchte ich das nicht, es reicht ja wenn man das einmal richtig einstellt und fertig.

Grüße, gadget


djcysmic

Zitat von: gadget am 26 November 2017, 18:46:05
Jetzt habe ich nur das Problem, dass bei meiner Kette die Farben vertauscht sind und um das zu ändern müsste ich ja die defines ändern und neu übersetzen  >:(
Könnte man das nicht bei den Device settings im ESP-Webinterface einstellbar machen (genau so wie die Anzahl LEDs) ? Über fhem bräuchte ich das nicht, es reicht ja wenn man das einmal richtig einstellt und fertig.

Hallo gadget,

die Parametrierung über das Webinterface wäre mir auch am liebsten, allerdings habe ich bis jetzt leider noch keinen Weg gefunden, das auch umzusetzen.
Der Compiler erwartet eine feste Vorgabe, so dass eine (spätere) dynamische Auswahl nicht möglich ist.

Ich hatte auch schon die Idee, alle Varianten mitzucompilieren oder die Farben für jedes Pixel über einen auswählbaren Parameter im Programmablauf auszutauschen, aber aus Ressourcen- und Performancegründen widerstrebt mir das...

Welche Farben sind denn bei dir vertauscht, dann compiliere ich dir das eben schnell. ;)

gadget

Hallo Nico,


Zitat von: djcysmic am 27 November 2017, 10:10:08
Welche Farben sind denn bei dir vertauscht, dann compiliere ich dir das eben schnell. ;)

Das wär natürlich super !

Bei meiner Kette ergibt


set ESPEasy_espled_kette50 nfx all ff0000  -> grün
set ESPEasy_espled_kette50 nfx all 00ff00  -> rot
set ESPEasy_espled_kette50 nfx all 0000ff  -> blau


Grüße, gadget

djcysmic

Zitat von: gadget am 27 November 2017, 18:25:25

set ESPEasy_espled_kette50 nfx all ff0000  -> grün
set ESPEasy_espled_kette50 nfx all 00ff00  -> rot
set ESPEasy_espled_kette50 nfx all 0000ff  -> blau


Das angehängte Image sollte jetzt die richtige Reihenfolge haben ;)
Wäre schön, wenn du eine kurze Rückmeldung gibst, ob's funktioniert hat.

gadget

Zitat von: djcysmic am 27 November 2017, 18:48:10
Das angehängte Image sollte jetzt die richtige Reihenfolge haben ;)
Wäre schön, wenn du eine kurze Rückmeldung gibst, ob's funktioniert hat.

perfekt ! Danke Dir !

Grüße, gadget

kmxak

#134
Moin,

kann mir wer sagen warum die oberen Werte nicht aktualisiert werden?

Readings
Color
f0000
2017-12-01 14:52:50
Dimvalue
172
2017-12-01 14:52:50
Fadedelay
0
2017-12-01 14:52:50
Fadetime
1000
2017-12-01 14:52:50
Last Mode
Kitt
2017-12-01 14:52:50
Mode
Rainbow
2017-12-01 14:52:50
dim
46
2017-12-01 15:04:35
fadedelay
20
2017-12-01 15:04:35
fadetime
1000
2017-12-01 15:04:35
lastmode
off
2017-12-01 15:04:35
mode
kitt
2017-12-01 15:04:35
pixelcount
300
2017-12-01 15:04:35
presence
present
2017-12-01 15:02:59
rgb
ff00000
2017-12-01 15:04:35
state
opened
2017-12-01 14:48:18


Hab es wie folgt eingebunden
defmod ESPEasy_NeoPixel ESPEasy IP 80 ESP_Bridge NeoPixel
attr ESPEasy_NeoPixel Interval 300
attr ESPEasy_NeoPixel colorpicker HSVp
attr ESPEasy_NeoPixel colorpickerCTcw 6000
attr ESPEasy_NeoPixel colorpickerCTww 2000
attr ESPEasy_NeoPixel mapLightCmds nfx
attr ESPEasy_NeoPixel presenceCheck 1
attr ESPEasy_NeoPixel readingSwitchText 1
attr ESPEasy_NeoPixel setState 0
attr ESPEasy_NeoPixel parseCmdResponse nfx


EDIT!:
Kann es sein das die alten Werte von einer alten FW Version kommen? Hatte in der Uhrzeit die FW aktualisiert.
Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.