Hey Leute,
ich versuche grad ein Web-update mit dem ESP8266 durchzuführen. Dabei
soll eine .bin Datei auf den ESP geladen und installiert werden! Dazu
muss ich sagen, das ich das ganze mit der Arduino IDE programmiere und
da unter Beispiele den Code "httpUpdater" gefunden habe.
Ich versuche ein kleines blink Programm rüber zu laden und bekomme
diesen Fehler hier ausgespuckt.
Fabian S. schrieb:> Es muss doch irgendeine Lösung dafür geben? Sonst hätten die das doch> auch nicht unter den Beispielen gelegt???
Wie groß ist denn der Flash deines ESP-Moduls? Da es da ja
unterschiedliche Bestückungen gibt kann es durchaus sein, dass das
Beispiel auf anderen Modulen problemlos läuft.
Hallo,
prinzipiell darf das Programm auf dem ESP nur weniger als die Hälfte des
Programm-Flashs belegen.
Bei einem alten Modul mit 4MBit Flash (512kB) geht OTA auch noch,
allerdings ist dann kaum Platz für sinnvolle andere Funktionen.
Bei den üblichen 8 oder 32 MBit Flashs sind 1MB Programmspeicher
verfügbar, da gibt es erstmal keine Probleme.
HTTP-Update bedingt natürlich, daß auf dem ESP auch die Software die
Funktionen enthält, also ist zumindest etwas schon belegt.
Es macht wenig Sinn, per OTA etwas zu flashen, was diese Funktionen im
Programm nicht dabei hat, es ist dann eine Einmal-Lösung.
Wenn Du damit z.B. das blink-Programm flashst geht danach natürlich kein
http-Update mmehr, wenn Du die Programmteile nicht in Deinen
blink-Sketch eingebaut hast.
Also das http-Update Beispiel nehmen und dann genau das zum Test per
http-Update raufflashen.
Dann eben Deine Funktionen in dieses Beispiel einbauen und per
http-Update flashen usw.
Um OTA oder httpUpdate sinnvoll zu nutzen sollte man schon halbwegs
sattelfest bei der ESP-Programmierung sein.
Gruß aus Berlin
Michael
Also ich hab das jetzt mit dem http updater so weit geschafft, das er
mir die oben genannte Fehlermedlung schon mal nicht mehr bringt. Hab die
Flash size einfach mal auf 1M (512k SPIFFS) gestellt.
Jetzt bringt der mir in der Ausgabe aber diesen Fehler:
> Meinst du das dadurch der physikalische Speicher einfach größer wird?
Nicht direkt. Ich denk mal man kann die Speichergröße nur in der
Software noch einmal einstellen... Aber sonst hätte der mir jetzt nicht
diesen Fehler ausgespuckt und wäre bei dem anderen Fehler geblieben.
Fabian S. schrieb:> Ich denk mal man kann die Speichergröße nur in der Software noch einmal> einstellen...
Da kannst du auch beliebige CPU-Taktfrequenzen einstellen. An der
Hardware ändert das nichts.
Fabian S. schrieb:> Also ich hab das jetzt mit dem http updater so weit geschafft, das er> mir die oben genannte Fehlermedlung schon mal nicht mehr bringt. Hab die> Flash size einfach mal auf 1M (512k SPIFFS) gestellt.
Keine Ahnung, ob es tatsächlich was bringt - aber da das ESP-12F-Modul
üblicherweise ja 4MB Flash hat (ich habe jedenfalls noch nie von
ESP-12F-Modulen mit weniger Flash-Speicher gehört), probiere doch
einfach mal kurz, die Flash-Grösse auf die vermeintlich richtige Grösse
von 4MB einzustellen, bei der SPIFFS-Grösse hingegen bei einem kleinen
Wert zu bleiben.
PopCorn schrieb:> Hello everbody,>> dieser Link kann helfen.> (How to upgrade your ESP8266 memory to 4MB)>> https://www.youtube.com/watch?v=7Q6ABad7U6o
Tolle Idee. Fabian hat ein ESP-12F mit Abschirmung und keinen ESP-01.
Besser einen neuen für 1,50 kaufen. Alles andere ist Zeitverschwendung.
Die Größe des Flashs kann man mit esptool.py auslesen:
1
esptool.py --port /dev/ttyUSB0 flash_id
2^[letzte beide Ziffern der ID] / 16 = Flashsize in k.
Also z.B.: ID 4014 -> 2^14/16 = 1024kB = 1MB.
Joachim S. schrieb:
> Keine Ahnung, ob es tatsächlich was bringt - aber da das ESP-12F-Modul> üblicherweise ja 4MB Flash hat (ich habe jedenfalls noch nie von> ESP-12F-Modulen mit weniger Flash-Speicher gehört), probiere doch> einfach mal kurz, die Flash-Grösse auf die vermeintlich richtige Grösse> von 4MB einzustellen, bei der SPIFFS-Grösse hingegen bei einem kleinen> Wert zu bleiben.
Super! Es funktioniert jetzt (Ohne einen Flash Chip einzulöten).
Vielen Dank!
Liebe Grüße
Fabian
Leute,
eine Frage hätte ich da noch...
Nach dem update, muss ich den ESP immer neustarten, in dem ich den zum
beispiel über den reset pin neustarte. Jetzt ist meine frage, ob ich den
ESP nach dem update auch automatisch neustarten kann?
LG
Fabian
Diese Funktion kann ich aber nicht ausführen, da nach dem update ein
"wtd reset" ausgeführt wird... Somit hat mein Code keinen Einfluss mehr
auf dem ESP, bis ich ihn wieder manuell neu gestartet habe.
Aber das muss doch möglich sein ?
Das kann doch nicht sein, das der ESP nach einem update nicht
automatisch neu startet?
Der (NodeMCU) hat ein Auto-Reset Funktion eingebaut ;)
Womit hast du es verglichen (Link)?
Fabian S. schrieb:> Muss ich noch irgendwas mit einbauen?
Ja, 2 Transistoren.
Was genau hast du vor?
Ich habe das mit dem ganz normalen ESP8266-12F Modul verglichen.
Ich möchte meinen ESP von der Ferne aus automatisch updaten können ohne
das ich irgendwie den manuell Neustarten muss...
Hättest du vielleicht eine genauere Erklärung mit den 2 Transistoren
(Schaltplan etc.) ?
Gibt es da kein Bauteil, das den Pull's dann einfach auslöst?
Wenn ich den NodeMCU nämlich extern mit einem Akku betreibe, wird dieser
Pull's nach dem Update auch ausgelöst und der ESP startet neu...?
Hey Leute,
gibt es vielleicht irgend ein Bauteil/ IC, das diesen Controller
ersetzt?
Um genauer zu sein, sollte nur der RTS und DTR Pin ersetzt werden.
http://de.rs-online.com/web/p/usb-controller/5268841/
LG
Fabi