Forum: Mikrocontroller und Digitale Elektronik ESP8266 OTA funktioniert nicht


von Mimin I. (kahlenberg)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich habe ein ESP8266 Modul, ESP-03 mit 4M Flash (512KByte). Ich habe in 
der Arduino IDE ein Beispiel program per UART programmiert. Das Program 
funktioniert, also das Modul bekommt eine IP Adresse, webserver 
funktioniert wenn ich auf dem Browser die IP Adresse von ESP eingebe. 
Allerdings funktioniert die Update-Funktionalität nicht. Ich gehe auf 
update-Seite und wähle eine kompilierte bin Datei und drücke Update 
Knopf, bekomme ich nur "FAIL" im webbrowser. Im Serialkonsol bekomme ich 
keine Fehlermeldung.

Beispielkode Webupdater:
1
/*
2
  To upload through terminal you can use: curl -F "image=@firmware.bin" esp8266-webupdate.local/update
3
*/
4
5
#include <ESP8266WiFi.h>
6
#include <WiFiClient.h>
7
#include <ESP8266WebServer.h>
8
#include <ESP8266mDNS.h>
9
#include <ESP8266HTTPUpdateServer.h>
10
11
const char* host = "esp8266-webupdate";
12
const char* ssid = "Meine SSID"; // Echte SSID ist unterdrückt
13
const char* password = "Passwort"; // Echte PW ist unterdrückt
14
15
ESP8266WebServer httpServer(80);
16
ESP8266HTTPUpdateServer httpUpdater;
17
18
void setup(void){
19
20
  Serial.begin(115200);
21
  Serial.println();
22
  Serial.println("Booting Sketch...");
23
  WiFi.mode(WIFI_AP_STA);
24
  WiFi.begin(ssid, password);
25
26
  while(WiFi.waitForConnectResult() != WL_CONNECTED){
27
    WiFi.begin(ssid, password);
28
    Serial.println("WiFi failed, retrying.");
29
  }
30
31
  Serial.println("");
32
  Serial.print("Connected to ");
33
  Serial.println(ssid);
34
  Serial.print("IP address: ");
35
  Serial.println(WiFi.localIP());
36
37
  MDNS.begin(host);
38
39
  httpUpdater.setup(&httpServer);
40
  httpServer.begin();
41
42
  MDNS.addService("http", "tcp", 80);
43
  Serial.printf("HTTPUpdateServer ready! Open http://%s.local/update in your browser\n", host);
44
}
45
46
void loop(void){
47
  httpServer.handleClient();
48
  delay(1);
49
}

Serial Konsol:
1
 ets Jan  8 2013,rst cause:1, boot mode:(3,0)
2
3
load 0x4010f000, len 1264, room 16 
4
tail 0
5
chksum 0x0f
6
csum 0x0f
7
~ld
8
9
Booting Sketch...
10
11
Connected to [Mein wifi-ssid]
12
IP address: 192.168.0.227
13
HTTPUpdateServer ready! Open http://esp8266-webupdate.local/update in your browser

von Timmo H. (masterfx)


Lesenswert?

Welche ESP Arduino Core Version verwendest du?
Wie ist dein Flash Layout? Du musst mindestens das doppelte an 
Flash-Speicher dafür vorhalten. Das OTA legt sich temporär zwischen 
Firmware und SPIFFS. Bei 4 MB darfst du daher nicht 3M SPIFFS 
eingestellt haben

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

Mimin I. schrieb:
> ESP8266 Modul, ESP-03 mit 4M Flash (512KByte)

vergiß OTA. Selbst mit 1MByte (8MBit) muß man mit dem Code recht sparsam 
sein, er darf nicht mehr als kanpp die Hälfte des verfügbareb Flash 
belegen.

Gruß aus Berlin
Michael

von Timmo H. (masterfx)


Lesenswert?

Ups, hatte ich wohl überlesen dass der nur 512 KB hat. Da kann man OTA 
vergessen

von Mimin I. (kahlenberg)


Lesenswert?

Ok, schon vergessen :)
Am Bestern besorge ich ein Modul mit mehr Speicher.
Danke für die Antworten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.