ESP RGBWW Wifi Led Controller - Firmware vbs

Begonnen von vbs, 18 April 2017, 09:26:13

Vorheriges Thema - Nächstes Thema

vbs

Ist zumindest einen Versuch wert. Aber deaktivieren kannst du das nicht einfach im Code. Du musst die entsprechenden Code-Stellen tatsächlich rausnehmen, so dass der Linker die nicht in die fertige Binary packt. Du kannst theoretisch auch ein Define in der Art ENABLE_MQTT usw. einbauen, so dass man das jederzeit später auch wieder so kompilieren kann. Wirst aber eh rausfinden müssen, wie viel Code du rausschmeißen musst, damit das passt.

Florian_GT

Zitat von: vbs am 09 August 2019, 21:01:47
Ist zumindest einen Versuch wert. Aber deaktivieren kannst du das nicht einfach im Code. Du musst die entsprechenden Code-Stellen tatsächlich rausnehmen, so dass der Linker die nicht in die fertige Binary packt. Du kannst theoretisch auch ein Define in der Art ENABLE_MQTT usw. einbauen, so dass man das jederzeit später auch wieder so kompilieren kann. Wirst aber eh rausfinden müssen, wie viel Code du rausschmeißen musst, damit das passt.

Wie groß ist die Firmware aktuell eigl.?
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

vbs

Du könntest versuchen, das SPIFFS kleiner zu machen. Das liegt irgendwie bei 750 kB. Da liegt die Weboberfläche und dann später zur Laufzeit die Config drin. Könnte mir denken, dass man da auch mit 400 kB hinkommt.
Sieht momentan so aus:
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFE8000|    3FFE8578|    1400
    rodata|           ReadOnly Data (RAM)|    3FFE8580|    3FFEA354|    7636
       bss|      Uninitialized Data (RAM)|    3FFEA358|    3FFF1698|   29504
      text|            Cached Code (IRAM)|    40100000|    401075F6|   30198
irom0_text|           Uncached Code (SPI)|    40202010|    4026787F|  415855
Total Used RAM : 38540
Free RAM : 43380
Free IRam : 2588
E2 out/firmware/rom0.bin
Checking for spiffs files
webapp directory exists. Creating out/firmware/spiff_rom.bin
Creating rom 'out/firmware/spiff_rom.bin' of size 0xc0000 (786432) bytes.
Adding files in directory 'webapp'.
Added 'index.html.gz' to spiffs (6532 bytes).
Added 'app.min.js.gz' to spiffs (187324 bytes).
Added 'app.min.css.gz' to spiffs (39107 bytes).
Added 'VERSION' to spiffs (13 bytes).
Added 'init.html.gz' to spiffs (2660 bytes).

tobi90

Hallo,
nochmal zu dem Problem dass nach einem
Zitatcontrol-general-buttons_config 2,9
in FHEM der Controller abstürzt und in einer Bootloop hängt..

Firmware ist die 4.2.0-rc1, ich habe bevor ich etwas geändert habe das erste Backup erstellt.

Wenn ich die Buttons (egal welche, habs auch schon mit einem oder drei probiert) mit FHEM in die Config des Controller schreibe und anschließend auf Get Config klicke, dann zeigt Fhem mir auch die gewünschten Buttons an (config-general-buttons_config  2,9). Hier habe ich jetzt das zweite mal die Settings exportiert (rgbwwsetting_Button).

Anschließend soll man den Controller ja neustarten, also einmal Spannung weg und nach kurzem warten wieder einschalten. Danach passiert dann wieder nichts mehr, die Blaue LED auf dem ESP blinkt nur noch ca alle 10s. Das selbe passiert auch auf dem zweiten Controller den ich hier habe.

Ein Brücken von GND mit G16 und anschließendes Reset drücken macht den Controller wieder erreichbar, allerdings sind dann alle Einstellungen gelöscht und es ist wieder die Firmware
vbs35 drauf (Settings File rgbwwsetting_NachReset).

Ich habe mir das hochladen der Settings gespart, da alle drei Dateien gleich waren. Falls es etwas bringt kann ich sie aber noch hochladen. Sie sehen alle so aus:

{
  "network": {
    "mqtt": {
      "enabled": false,
      "server": "mqtt.local",
      "port": 1883,
      "username": "",
      "password": "",
      "topic_base": "home/"
    }
  },
  "color": {
    "outputmode": 0,
    "startup_color": "last",
    "hsv": {
      "model": 0,
      "red": 0,
      "yellow": 0,
      "green": 0,
      "cyan": 0,
      "blue": 0,
      "magenta": 0
    },
    "brightness": {
      "red": 100,
      "green": 100,
      "blue": 100,
      "ww": 100,
      "cw": 100
    },
    "colortemp": {
      "ww": 2700,
      "cw": 6000
    }
  }
}


Gruß Tobi

vbs

#1054
Ich kann mir da erstmal keinen Reim drauf machen und ich kann es hier auch nicht reproduzieren. Aber meiner Meinung nach, ist deine Beschreibung nicht schlüssig (oder dein Problem wirklich sehr exotisch): erstens ist deine gepostete Config sehr lückenhaft. Da sind ja überhaupt nur zwei Blöcke drin (MQTT und Color). Der komplette Rest fehlt. Wenn das wirklich so sein sollte, dann ist das sehr komisch und ich würde mich wundern, dass bei dir überhaupt irgendwas funktioniert. Andererseits sagst du, dass FHEM aber die Button-Config korrekt anzeigt ("config-general-buttons_config  2,9"). Das spricht auch dafür, dass die Config eigentlich doch nicht so ist, wie gepostet, weil dann könnte FHEM die Werte ja auch nicht kennen.

Ich habe mir das hochladen der Settings gespart, da alle drei Dateien gleich waren. Falls es etwas bringt kann ich sie aber noch hochladen. Sie sehen alle so aus:

Mir ist hier nicht klar von welchen drei Dateien/Settings du sprichst. Falls bei dir auch schon die Config von vbs35 so aussieht wie gepostet, dann passt da schon etwas nicht. Liest du die Config im Browser über die /config-URL aus oder wie machst du das? Das wäre auf jeden Fall der beste Weg.

EDIT:
Ich glaub, ich kann es doch reproduzieren... Zumindest das mit den Reboots nach dem Setzen (nicht das mit deinem Config-Inhalt).

vbs

#1055
Das liegt mMn einfach an Pin 9. Es funktioniert mit nur Pin 2, aber wenn Pin 9 umkonfiguriert wird, dann führt das zu einem Reboot. Auch alleine Pin 9 geht nicht. Kann dir nicht genau sagen warum. Evtl. kann Peter was dazu sagen: ist Pin 9 evtl. speziell beschaltet?
Hast du es schon mal mit irgendeiner anderen Pinkombination (oder vielleicht sogar erstmal nur einem Pin) versucht?

EDIT:
Mit nur Pin 16 funktionierts auch... offenbar gehen einfach nicht mehrere Pins?


EDIT2:
Mann mann mann... bin irgendwann gedanklich auf diesen Pin 16 abgebogen. Keine Ahnung warum. Also Pin 9 ist der Punkt.

pjakobs

Pin 9? Wieso Pin 9? Der ist als Eingang doch garnicht verfügbar? 0,2 und 16 sind verfügbar. 9 ... muss ich nachsehen, aber ... hmm... GPIO9 ist doch auf einem ESP12 einer der Pins für den FLASH Chip, da wundert's mich nicht, wenn das Teil re-bootet, der kann dann auf seinen Code nicht mehr zugreifen.

Die Pins entlang der kurzen Kante des ESP12 sind auf der Platine aus gutem Grund nicht verbunden, "no user servicable parts inside"

pj

vbs

Zitat von: pjakobs am 11 August 2019, 13:11:59
Pin 9? Wieso Pin 9? Der ist als Eingang doch garnicht verfügbar? 0,2 und 16 sind verfügbar. 9 ... muss ich nachsehen, aber ... hmm... GPIO9 ist doch auf einem ESP12 einer der Pins für den FLASH Chip, da wundert's mich nicht, wenn das Teil re-bootet, der kann dann auf seinen Code nicht mehr zugreifen.
Pin 9 weil das eben einer der beiden Pins ist, auf dem der "Bug" gemeldet wurde über den wir seit ein par Wochen reden. Hatte dich irgendwie so verstanden, dass unklar ist, warum das nicht funktioniert und dass wir jetzt deswegen hier die Firmware-Seite analysieren.

Zitat von: pjakobs am 11 August 2019, 13:11:59
Die Pins entlang der kurzen Kante des ESP12 sind auf der Platine aus gutem Grund nicht verbunden, "no user servicable parts inside"
Du meinst deine letzte Variante der Platine, oder? Sind ja auch andere Hardwaren in Benutzung bzw. User basteln sich was zu recht. Sprich: ich kann nicht davon ausgehen, dass nur diese Platine in Benutzung ist und nur die beiden von dir vorgesehenen Pins verwendet werden. Daher kann man beliebige Pins konfigurieren und der Benutzer muss eben wissen, was er tut.

pjakobs

Zitat von: vbs am 11 August 2019, 13:32:31
Pin 9 weil das eben einer der beiden Pins ist, auf dem der "Bug" gemeldet wurde über den wir seit ein par Wochen reden. Hatte dich irgendwie so verstanden, dass unklar ist, warum das nicht funktioniert und dass wir jetzt deswegen hier die Firmware-Seite analysieren.
Du meinst deine letzte Variante der Platine, oder? Sind ja auch andere Hardwaren in Benutzung bzw. User basteln sich was zu recht. Sprich: ich kann nicht davon ausgehen, dass nur diese Platine in Benutzung ist und nur die beiden von dir vorgesehenen Pins verwendet werden. Daher kann man beliebige Pins konfigurieren und der Benutzer muss eben wissen, was er tut.
OK, aber GPIO9 und GPIO10 plus MISO, MOSI, CMD und CLK sind nie verfügbar, wenn der ESP im QIO Mode konfiguriert ist.
Das ist eine Einschränkung der ESP12 Hardware, nicht des Boards außen rum.

pj

Gesendet von meinem HTC U11 mit Tapatalk


pjakobs

Zitat von: pjakobs am 11 August 2019, 13:52:37
OK, aber GPIO9 und GPIO10 plus MISO, MOSI, CMD und CLK sind nie verfügbar, wenn der ESP im QIO Mode konfiguriert ist.
Das ist eine Einschränkung der ESP12 Hardware, nicht des Boards außen rum.

pj

Gesendet von meinem HTC U11 mit Tapatalk
Hier steht ein bisschen was dazu https://tech.scargill.net/esp8266-dio-mysteries-solved/

Gesendet von meinem HTC U11 mit Tapatalk


vbs

Zitat von: pjakobs am 11 August 2019, 13:52:37
OK, aber GPIO9 und GPIO10 plus MISO, MOSI, CMD und CLK sind nie verfügbar, wenn der ESP im QIO Mode konfiguriert ist.
Soweit ich weiß, ist das aber nicht immer der Fall und hängt von dem verbauten Flash ab. Ich lasse mich aber gern korrigieren.

pjakobs

Zitat von: vbs am 11 August 2019, 14:18:04
Soweit ich weiß, ist das aber nicht immer der Fall und hängt von dem verbauten Flash ab. Ich lasse mich aber gern korrigieren.
Ja, soweit ich weiß, werden die Pins bei QIO verwendet, und die guten ESP12 (also die von ai thinker oder espressif selbst) nutzen eben QIO.
Es gibt immer mal wieder billige Module, die meist schlechtere Flash Chips verwenden. Da geht dann meist auch nur DOUT. [emoji2369]

pj

Gesendet von meinem HTC U11 mit Tapatalk


tobi90

Hallo,

Ich habe über Settings -> Export Settings die Einstellungen exportiert, ich dachte das sei der richtige Weg..
Jetzt gehts bei mir auch, ich dachte dass GPIO9 beim RGBWW-Controller mit auf die Stiftleiste geführt ist, aber da habe ich mich verlesen / getäuscht   ???

Jetzt habe ich nur noch das Problem dass wenn ich die LEDs über einen Eingang ausschalten will und anschließend wieder einschalte, dann werden sie kurz hell und faden dann gleich wieder aus. Ich denke mal dass sich der Controller da den letzten wert gemerkt hat, dann muss ich eben eine feste Farbe als Startwert vorgeben.
Vielen Dank!  :)

Gruß Tobi

vbs

Guck an, stimmt die Export-Funktion gibt's da ja... hab ich noch nie benutzt. Das müsste man wohl nachpflegen @Shojo :)

Ich vermute dein Problem ist das Prellen. Versuch mal config-general-buttons_debounce_ms hochzudrehen (200 oder so).

tobi90

Top funktioniert!
100 ms fürs Entprellen war wohl doch noch zuwenig  :D
Danke :)