Frust über Resets und instabilen Programmversionen

Hallo,

ich muss hier mal meinen Frust loswerden.
Letzte Woche habe ich an meiner inzwischen ziemlich komplexen Wetterstation/ Bewässerungssteuerung auf Basis eines Wemos D1 mini eine kleine Änderung an der html-Ausgabe vorgenommen.
Daraufhin resetete der Wemos im Sekundentakt :frowning:
Installation einer Vorgängerversion -> keine Verbesserung
Installation einer Vorgängerversion ohne <LCDMenuLib2.h> und <LiquidCrystal_I2C.h> -> Programm startet zumindest
Programmbeispiel mit <LCDMenuLib2.h> und <LiquidCrystal_I2C.h> -> funktioniert auch
Installation der alten IDE 1.85 -> keine Verbesserung
Installation von alten Versionen aller eingebundenen Bibliotheken -> keine Verbesserung
Installation von alten ESP8266 Boardversionen -> Problem gelöst

Ich bin zwar froh, das erstmal alles wieder läuft, aber das Ganze hat mich einige Stunden grübeln und probieren gekostet und nun habe ich eine Mischung veralteter Versionen hier installiert und weiß nicht, was ich aktualisieren kann und was nicht.

Hat jemand ähnliche Erfahrungen gemacht?

Du hast mein volles Mitgefühl.

Das erinnert mich an Probleme mit anderen Entwicklungsumgebungen. Seitdem packe ich wichtige Programme (Aufträge...) in je eine virtuelle Machine, die nicht mehr upgedatet wird. Bei mir werkelte da hauptsächlich W2K, und dafür sind ja wirklich keine Updates mehr zu erwarten. Heutzutage könnte W7 eine zuverlässige Basis sein.

Den Entwicklungsumgebungen selbst sollte man auch Updates abschalten, oder zumindest einen Snapshot erstellen bevor man ein Update installiert.

Das mit den ESP (und nicht nur) Versionen ist schon ärgerlich, hat mich auch erwischt.
Seit dem wird eine Portable IDE gebaut alles kommt da rein, in neuen Ordner verpackt und ab in Datengrab.
Das zweite Problem ist das so mansche neue Lib für ESP 8266 und 32 wollen nicht sauber, oder gar nicht in älteren IDE kompilieren.

bin mir nicht sicher. Aber dein Fehlerumgang ist aus meiner Sicht nicht optimal.
Dieses "Alte Versionen erhalten" kann ich nicht nachvollziehen. Irgendwann kommt der Punkt an dem man eben ein Update machen muss, und dann hat man einen Rückstauf vieler alter Software-Komponenten ebenso. Dann wird das unwartbar. Die Situation wird dadurch nur schlimmer.

Irgendwas ist an deinem Code falsch das eben im Zusammenhang mit einem neuen Core oder einer sonstigen neuen Library nicht mehr funktioniert bzw. der Fehler nun offensichtlich wurde. Aus meiner Sicht solltest du debuggen und den Grund in Erfahrung bringen, warum es zum Absturz kommt. Wenn du den Grund weist, kannst du ihn beheben.

Ich habe aus Deinem Text eigentlich nix mitnehmen können, ausser das Du offensichtlich mit einem ESP-Core ein Problem hast.

DAS ist für mich frustrierend. Denn irgendwie passen die Aussagen nicht zusammen. Insbesondere dieser Teil hier:

ist für mich vollkommen unverständlich.
Da scheint noch mehr passiert zu sein. Aber dazu fehlen eben Angaben....

Hallo,

naja, meine erste Frage wäre hier: Änderungen und dann mit der gleichen Arduino/IDE/Lib-Versionen compiliert wie zuvor?
Bei mir bleiben Projekte immer in einer portable-IDE mit genau dem Stand, der oft seit Monaten stabil läuft. Kleine Änderungen/Ergänzungen werden auch nur dort erledigt.
Irgendwann gibt es eben eine aktuelle IDE mit aktuellem Core als portable. Da wird das Projekt und die zugehörigen Libs reinkopiert, compiliert und getestet. Libs werden aktualisiert und getestet usw. Das mache ich eher wenn ich Zeit und Lust dazu habe. Wenn das am Ende stbil läuft ist alles ok. Gibt es ungereimtheiten wird eben die ursprüngliche Version wieder geflasht, das dauert ja nur ein paar Minuten, und ich teste bei Gelegenheit weiter.
Es gibt Projekte, die sich völlig problemlos z.B. von IDE 1.8.9/ESP 2.4.2 auf 1.8.19/ ESP 3.0.2 umziehen ließen und einige wenige Sachen, die wohö noch lange in einer alten portable liegen werden...

Gruß aus Berlin
Michael

@my_xy_projekt und amithlon:
Diese Wetterstation lief seit 2 Jahren zuverlässig und ohne Änderungen. In dieser Zeit habe ich IDE, Bibliotheken und Boards aktualisiert, so dass nun allein das neu kompilieren und übertragen gereicht hat, dass diese ausfällt. Da von diesen Sensordaten unter anderem die Lüftersteuerung in der Wohnung und die LED-stripe-Temperaturanzeige abhängt, ist das sehr ärgerlich.

@noiasca:
ok, ich habe noch nie debuggt. Dazu habe ich in der IDE 2.0.3 eine Funktion gefunden, aber ich komme mit der launch.json nicht zurecht. Was muss man dort angeben?
In der IDE 2.0.3 kann ich nun auch nicht mehr kompilieren. Fehlermeldung:

Compilation error: Error resolving FQBN: getting build properties for board esp8266:esp8266:d1_mini: invalid option 'stacksmash'

Je nach Cursorstellung lautet das letzte Wort auch 'non32xfer', 'ssl', 'mmu', 'lvl', 'vt' oder 'xtal'.
Wo ist da der Fehler?
Vielleicht ist auch durch die 2 Installationen einiges durcheinander gekommen.

Der erste Treffer

Und ein Kompile-Error lässt Dich den Code schon nicht auf das Board spielen.

Wenn Du natürlich vorher schon gefummelt hast und versuchst in ein Produktivsystem etwas zu implementieren ohne zu wissen, ob es funktioniert, dann hält sich mein Mitleid sehr in Grenzen.

Ich wollte Dir nur klar machen, das DU mit Deinem Frustgeschreibsel nicht dazu beigetragen hast, das man Dir helfen kann.
Das sorgt zwar bei mir nicht für Frust, aber Dir ist damit auch nicht geholfen.

Guten Morgen my_xy_projekt,

ich kann dir leider nicht folgen.
In welchem "Produktivsystem" habe ich was implementiert?
Ist es jetzt falsch, die IDE und andere Programmteile mit Updates auf dem neusten Stand zu halten?
Oder meinst du, nachdem mein "altes Programm" nicht mehr lief, auf die letzte funktionierende Version zu wechseln. Da ich nicht weiß, ob es an der IDE, den Bibliotheken oder den Board liegt, ist es natürlich ein "probieren".

Und was sagt mir der erste Treffer?
Habe ich ein missing FQBN? Das Board Wemos D1 R2 & mini wird angezeigt und ich habe es ausgewählt.

Oh. Das ist schade.
Aber ich hab das doch gar nicht so schwer erklärt.

Ja.
Auch.
Aber wenn ich ein Produktivsystem habe, von dem ich abhängig bin, dann fummel ich nicht daran rum ohne vorher wenigstens einen Test gemacht zu haben.

Du bekommst eine Fehlermeldung.
Die hast Du bisher verheimlicht.
Diese Fehlermeldung deutet darauf hin, das es gar nicht zu einer Übertragung auf ein Board kommt.
Also nix mit reboot m Sekundentakt.

Das weiß ich nicht!
Es ist Deine verstümmelte Meldung.
Bist Du nach der Anleitung vorgegangen?

Vollkommen unbekannt ist noch immer, was da vorher passiert ist.
Und den ESP-Core haben sicher noch einige Leser, aber die können auch nix ausrichten, da Dein Code so geheim ist wie die Meldungen auch.

Sorry, aber Dein Gejammer ist mir echt zu hoch.

Schade, dass du das als Gejammer abtust. Aber hier im Forum wird schnell jemand als unverbesserlich, ahnungslos oder noch schlechteres betitelt.

Ich bin frustriert, dass als stabil veröffentlichte Versionen dann nicht mit Sketchs kompatibel sind, die man vorher geschrieben hat. Um das wieder hinzubiegen, sitzt man stundenlang da. Jemand, der totaler Anfänger ist, verliert da schnell die Lust am programmieren.
Dabei ging es nicht um meinen speziellen code, darum habe ich ihn nicht veröffentlicht. Das hat nun nichts mit Geheimnistuerei zu tun.

Ich erkläre dir gern noch einmal den bereits oben beschriebenen Fehler mit dem reboot im Sekundentakt:

  • ein ca. 2 Jahre alter Sketch funktionierte nicht mehr auf einer inzwischen auf Version 2.0.3 aktualisierten IDE --> das Board rebootete fortlaufend
  • mit der daraufhin zusätzlich installierten IDE 1.8.5 und älteren Boardversionen und Bibliotheken funktionierte alles wie gewünscht
  • danach gab es wahrscheinlich durch die älteren Boardversionen Probleme mit der IDE 2.0.3, kompilieren nicht mehr möglich

Inzwischen habe ich die IDE 1.8.5 deinstalliert und alles wieder auf den aktuellen Stand gebracht. Nun kompiliert auch die IDE 2.0.3 wieder.
Das Problem mit meinem "alten" Sketch versuche ich nun mit dem debuggen zu lösen. Da gibt es allerdings in einer neu erzeugten launch.json ein Auswahlmenü, wo ich nicht weiss, was ich angeben soll.
Falls ich das nicht hin bekomme, folge ich dem Rat von amithlon aus #7 und nutze zusätzlich portable-IDE mit dem Versionsstand, wo es stabil läuft.

Es steht jedem Library Ersteller frei Abwärtskompatibilität zu reduzieren. Oft macht es einfach Sinn, alte Sachen auszubauen. Was aus meiner Sicht wenig Sinn macht ist sich mit einer alten Toolchain, alten Cores und alten Libraries wieder so hinzutricksen dass der alte Sketch wieder läuft. Damit baut man sich seine Mauer nur höher und ein späterer Umstieg wird nicht einfacher.

Die Zeit würde in ein Update des Sketches investieren sodass er mit aktuellen Cores und Libraries funktioniert.

Aber jeder wie er mag.

Da nicht von mir, zieh ich mir die Jacke nicht an.

Hm..
Programm kompiliert nicht fehlerfrei
Ich habe mich gefragt, wie man den gleichen Fehler 2x machen kann.
Und Nein, ich will darauf eigentlich keine Antwort.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.