Drucken
Kategorie: ESP8266 - WIFI-Controler
Zugriffe: 58912

OTA - ESP8266 "Over the Air" flashen

 

Der ESP8266 macht extrem viel Spaß, zumal es mitlerweile mehrere Möglichkeiten gib, den kleinen Burschen über WIFI zu flashen.
Weil wireless, wird keine physische Verbindung mit dem ESP mehr benötigt, auch das Setzen des BootModes entfällt.

Grundvoraussetzung für diese Möglichkeit ist, dass alte Firmware und neue Firmware zusammen in den Flashspeicher passen.
Da zur Laufzeit des alten Sketches der neue Sketch in den Speicher kopiert werden muss. Erst nach dem Hochladen des gesamten neuen Sketches wird der alte überschieben.

 

Stabil läuft OTA ab Arduino V1.6.7 und esp8266 V2.1.0-rc2

Um die aktuelle "staging" - Version im Boardmanager zu finden ist folgende URL anzugeben.

http://arduino.esp8266.com/staging/package_esp8266com_index.json

 

Eine ausführliche Beschreibung der Funktionen ist hier zu finden:

https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md

 

Erste Schritte sind hier zu finden:

http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/110-hello-led-das-erste-lebenszeichen

 


 

Folgende Möglichkeiten können zum Flashen einer neuen Firmware "Over the Air" genutz werden.

  1. Arduino OTA
    Hier wird neben der Arduino IDE auch noch eine Python Installation in der Version 2.7 benötigt.
    Das Flashen erfolgt dann analog zum Flashen über die serielle Schnittstelle.

  2. WEB-Interface OTA
    Hier stellt die alte Software einen HTTP-Server zur Verfügung über den ein fertig kompilierter *.bin File hochgeladen werden kann.
    Besonders interessant weil keine zusätzliche Software (Arduino / Python) mehr benötigt wird.

  3. HTTP-Server OTA
    Hier erfolgt das Flashen der neuen Firmware aus dem laufenden Code heraus. Im Code wird der Pfad zum *.bin File hinterlegt, der ESP kann sich somit selber Flashen!
    Interessant ist diese Option für automatische Firmwareupdates. Tagsüber mal schnell was am Code geändert, diesen einmal zentral bereitgestellt und die Firmware Flasht sich nacht selber.

 


 

Arduino OTA

 

Vor der Nutzung muss noch die Python-Version V2.7 für die entsprechende Plattform (WIN, Linux, MAC) installiert werden.

https://www.python.org/downloads/

Wichtig ist es beim Installationspunkt "Customize Python 2.7.x" den Auswahlpunkt "Add python.exe to Path" mit anzugeben.
Sonst wird die Python.exe nicht von der Arduino IDE gefunden.

 

Beispielsketch: ArduinoOTS/BasicOTA laden und die Zugangsdaten (SSID/Passwort) ändern und wie gewohnt den ESP seriell flashen.

 

Nach dem Reboot besitzt der ESP einen "WIFI-Bootloader".
In der Arduino IDE kann jetzt unter Werkzeuge/Upload Using: von seriel auf OTA umgestellt werden.
Das wars! Bein nächsten Hochladen wird der Sketch über Python und WIFI auf den ESP geladen.

Ganz ohne das lästige Drücken der BootMode-Buttons und schneller geht es auch noch (als 115200).

 


 

WEB-Interface OTA

 

 Beispielsketch: ESP8266HTTPUpdateServer/WebUpdater laden und die Zugangsdaten (SSID/Passwort) ändern und wie gewohnt den ESP seriell flashen.

 

Nach dem Reboot besitzt der ESP einen "WEB-Interface-Bootloader".

Das WEB-Interface ist im Browser unter der IP des ESP zu erreichen.

192.168.1.43/update oder http://esp8266-webupdate.local/update

 

Der hochzuladende *.bin File ist nach dem kompilieren ein wenig tricky zu finden.

Standartmäßig liegen die kompilierten Files unter:

C:\Users\MyName\AppData\Local\Temp\build.........tmp\WebUpdater.ino.bin

Einfach mal auf das Datum des Verzeichnises schauen.

 

File auswählen und ab geht die wilde Fahrt.....

 


 

HTTP-Server OTA

 ToDo

 


 

Links

https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md
http://esp8266.github.io/Arduino/versions/2.1.0-rc2/doc/ota_updates/ota_updates.html

 

 

Kommentare (4)

Cancel or