ESP8266 Webupdater

OP #4770039
Lesenswert?

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.
1
To less space HTTP_UPDATE_FAILD Error (-100):

Kann mir da jemand weiter helfen?

Gruß
Fabian
#4771881
Lesenswert?

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
OP #4775132
Lesenswert?

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:
1
[SETUP] WAIT 4...
2
[SETUP] WAIT 3...
3
[SETUP] WAIT 2...
4
[SETUP] WAIT 1...
5

6
Exception (29):
7
epc1=0x4000e1c3 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000018 depc=0x00000000
8

9
ctx: cont 
10
sp: 3ffef540 end: 3ffef930 offset: 01a0
11

12
>>>stack>>>
13
3ffef6e0:  402302b5 00000017 60000200 40106fb4  
14
3ffef6f0:  40211541 4022cc36 00000001 4020a45a  
15
3ffef700:  117700fc 4020ca27 3fff102c 3fff0ad4  
16
3ffef710:  40211782 3fff102c 3fff0ad4 00000000  
17
3ffef720:  3ffee72c 3ffed390 3ffed30c 3fff0ad4  
18
3ffef730:  00000000 00000000 00000001 00000000  
19
3ffef740:  00000018 00000064 1b7fcf5e fffeffff  
20
3ffef750:  3ff20a00 0000ffff 3ffef778 4020d0ce  
21
3ffef760:  3ffed30c 3fff0ad4 3fff0ad4 00000000  
22
3ffef770:  1b7fcf5e 3fff50fe 00000000 00000000  
23
3ffef780:  00000000 00000000 00000000 00000000  
24
3ffef790:  00000000 00000000 00000000 00000000  
25
3ffef7a0:  00000000 00000000 00000000 4020e220  
26
3ffef7b0:  3fff0ad4 00000001 3fff0ad4 4020e268  
27
3ffef7c0:  00000000 3ffed390 3ffee118 00000000  
28
3ffef7d0:  4021dc29 00000003 00000003 000000fd  
29
3ffef7e0:  4021dd79 00000003 00000001 00000000  
30
3ffef7f0:  3fff028c 4021ddee 00000003 00000001  
31
3ffef800:  40202361 3ffee72c 00000001 00000000  
32
3ffef810:  40202398 feefeffe 3ffee72c 402023ba  
33
3ffef820:  4021dbc2 3ffee745 00000000 40202c56  
34
3ffef830:  4021ea0f 40106df8 3ffee840 00000008  
35
3ffef840:  00000000 4020293c 3ffef881 3ffee8fc  
36
3ffef850:  fffffffe 3ffee72c 00000006 402026ac  
37
3ffef860:  3ffee840 00000008 3ffef870 40204e60 <
38
3ffef870:  5445535b 205d5055 54494157 3ffee8fc  
39
3ffef880:  00000000 00000001 3ffee720 401004d8  
40
3ffef890:  0000001c 00000000 3ffee840 4020607c  
41
3ffef8a0:  feefeffe feefeffe 3fff0254 40202787  
42
3ffef8b0:  3ffef8e0 3ffee720 0000000f 401004d8  
43
3ffef8c0:  4010547c 001447d6 3ffee778 3ffee8fc  
44
3ffef8d0:  3ffe843c 3ffee720 3ffe8448 3ffee8fc  
45
3ffef8e0:  3fffdad0 00000000 3ffee8f4 402021cf  
46
3ffef8f0:  3fffdad0 00000000 3ffee840 40202870  
47
3ffef900:  3fffdad0 00000000 3ffee840 4020219a  
48
3ffef910:  feefeffe 00000000 3ffee8f4 40206294  
49
3ffef920:  feefeffe feefeffe 3ffee910 40100718  
50
<<<stack<<<
51

52
 ets Jan  8 2013,rst cause:2, boot mode:(1,6)
53

54

55
 ets Jan  8 2013,rst cause:4, boot mode:(1,6)
56

57
wdt reset
OP #4775193
Lesenswert?

> 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.
#4775612
Lesenswert?

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.
Gast #4775706
Lesenswert?

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.
OP #4776578
Lesenswert?

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
OP #4788417
Lesenswert?

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?
OP #4788427
Lesenswert?

Kleines Update:
Ich habe so eben einen "ESP8266 NodeMCU LUA WiFi Entwickler Board" 
getestet, das heute angekommen ist.

http://www.ebay.de/itm/NodeMcu-Lua-CH340G-ESP8266-Wireless-WIFI-Internet-Development-Module-TE437-/201566780411?hash=item2eee50fbfb:g:t04AAOSwLnBXVSi7

Bei dem funktioniert das httpUpdate ohne Probleme und startet auch von 
automatisch nach dem Update neu. Was ist da (Hadrware) anders als beim 
reinen Modul (ESP8266-12E/ 12F) ? Muss ich noch irgendwas mit einbauen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren