ESP-Flashtool - dietrich-kindermann.de

ESP-Flashtool


Neben der Möglichkeit neue Software über die Adruino-IDE auf die ESP-Systeme zu spielen, können bereits kompilierte Binärdateien auch mit Hilfe spezieller Flashprogramme übertragen werden. Die Herstellerfirma espressif verwendet dazu das esptool, ein in Python geschriebenes Flashwerkzeug.


1. esptool

Voraussetzung für die Verwendung deses Skripts ist, das Python auf dem PC  installiert ist.


Pythoninstallation
Pythoninstallation

Nach der Pythoninstallation werden mit dem Paketverwaltungsprogramm pip die erforderlichen Programmpakete zum esptool heruntergeladen und installiert. Dies erfolgt in der Windows-Shell. 

esptool installieren
esptool installieren

Nach erfolgreicher Installation kann das esptool ebenfalls auf Komandozeilenebene gestartet werden.

esptool aufrufen
esptool aufrufen

2. ESP8266-Flasher

Der ESP8266-Flasher ist ein Front-End für das esptool. Das Programm ist ebenfalls in Python geschrieben und verwendet wxPython für die grafische Oberfläche. Um das Programm ausführen zu können, muss zunächst wxPython installiert werden.

wxPython installieren
wxPython installieren

Um den ESP8266-Flasher auch unabhängig von einer bestehenden Python-Installation verwenden zu können, wird mit dem Programm PyInstaller ein eingeständiges Installationspaket erzeugt. Zuvor muss natürlich auch PyInstaller installiert werden.

PyInstaller installieren
PyInstaller installieren

Anschließend werden mit dem PyInstaller alle für die Ausführung des ESP8266-Flashers erforderlichen Dateien in eine ausführbare Windowsdatei geschrieben. Wird diese Datei gestartet, so werden die zuvor gepackten Dateien wieder entpackt und das eigentliche Programm in einem temporären Verzeichnis getartet. Der PyInstaller verwendet hierzu das Packprogramm UPX. Dieses muss ebenfalls auf dem System installiert sein. Dieser Vorgang wird jedoch von einigen Antivirenprogrammen als potentiell gefährlich angesehen.

Virus-Warnung
Virus-Warnung

Die Verwendung des UPX-Packers führt jedoch leider auch dazu, dass einige DLL-Dateien nicht korrekt entpackt werden. Es kommt zu folgender Fehlermeldung.

VCRUNTIME140.DLL-Error
VCRUNTIME140.DLL-Error

Im konkreten Fall werden die vcruntime140.dll und die msvcp140.dll nicht richtig entpackt. Durch eine Änderung in der Datei utils.py können die zuvor genannten DLL-Dateien von der Komprimierung ausgeschlossen werden. Danach kann der ESP8266-Flasher korrekt gestartet werden.

Modifzierte utils.py
Modifzierte utils.py

Ein weiterer Nachteil der o.g. Methode liegt darin, dass bei jedem Programmaufruf die zur Ausführung erforderlichen Dateien neu entpackt werden müssen. Eine Alternative besteht darin, einen Installer zu verwenden, der einmalig die erforderlichen Dateien auf dem System installiert. Hier wurde der NSIS-Installer verwendet.


ESP8266-Flasher
ESP8266-Flasher

Downloads

Software zum Flashen des ESP8266
ESP8266-Flasher
Software zum Flashen des ESP8266
Download