In diesem Beitrag zeige ich dir, wie du den ESP32-D0WDQ6 mithilfe des esptools flashen kannst.
Im Beitrag Programmieren mit MicroPython #1: Microcontroller und Entwicklungsumgebung habe ich dir gezeigt, wie du diesen Mikrocontroller für die Programmierung von MicroPython flashen musst, wenn du jedoch wieder auf dne Urzustand zurückmöchtest und diesen zbsp. in der Arduino IDE programmieren möchtest, dann musst du diesen erneut flashen.
Benötigte Ressourcen
Damit du deinen ESP32 flashen kannst, benötigst du:
- eine passende *.bin Datei,
- das esptool von Espressif,
esptool von Espressif
Das esptool von Espressif kannst du entweder mit einer GUI (einer grafischen Benutzeroberfläche) oder als Konsolenprogramm beziehen.
Im weiteren Verlauf verwende ich das Konsolenprogramm, da dieses recht einfach mit ein paar Parameter zu bedienen ist.
Alternativ kannst du das esptool auch als Python Skript beziehen, wie du dieses auf deinem Rechner installierst, ist auf der Seite Esptool.py Documentation von Espressif recht gut erläutert.
BIN Datei laden
Damit du deine passende *.bin Datei laden kannst, musst du zunächst genau wissen, welches Model du hast. Hier kannst du zunächst auf der Konsole den nachfolgenden Befehl ausführen.
esptool --port COM25 erase_flash
Dieses bewirkt, dass der Speicher des Mikrocontrollers geleert wird, aber zusätzlich werden dir ein paar nützliche Informationen zu diesem ausgegeben.
Serial port COM25
Connecting.....
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: b4:e6:2d:b1:b9:7d
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 8.6s
Hard resetting via RTS pin...
Auf der Seite Released Firmware von Espressif findest du die binaries für den hier verwendeten ESP32-D0WDQ6.
Der Server ist recht langsam und so dauert der Download einer 1 MB Datei stolze 6 Minuten. Also hier bitte etwas Zeit mitbringen 🙁
Flashen des ESP32 mit der BIN Datei
Wenn die ZIP-Datei mit dem binary geladen und entpackt wurde, dann wird diese in den Ordner kopiert, wo das esptool liegt. Natürlich könnte man auch als Parameter den gesamten Pfad zu diesem angeben, jedoch ist dieser Weg deutlich komplizierter.
esptool --port COM25 --baud 460800 write_flash -z 0x1000 esp-at.bin
Während der Installation wird dir der Fortschritt in Prozent angezeigt und bei Erfolg ein Reset ausgeführt.
Serial port COM25
Connecting....
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: b4:e6:2d:b1:b9:7d
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00150fff...
Compressed 1376080 bytes to 883852...
Wrote 1376080 bytes (883852 compressed) at 0x00001000 in 20.2 seconds (effective 545.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Validieren nach dem Abschluss des Flashens
Wenn der Vorgang des Flashens abgeschlossen ist, dann prüfen wir mit einem kleinen Programm, ob dieses erfolgreich war.
Hier kann man wieder ein einfaches “Hello World!” auf der seriellen Schnittstelle ausgeben.
void setup() { Serial.begin(115200); } void loop() { Serial.println("Hello World!"); delay(1500); }
Wenn du als Baudrate wie ich die 115200 baud verwendest, dann kannst du gleichzeitig prüfen, ob eventuell auch Debugausgaben vom ESP32 mit herausgeschrieben werden, welche auf einen eventuellen Fehler schließen lässt.
Als Einstellungen für den Upload des Programmes verwende ich:
Die Ausgabe ist dann wie erwartet die Zeile “Hello World!” im Intervall von 1,5 Sekunden.