Blog
esptool: Befehle, Flags, Fixes
esptool ist das Werkzeug, das jeder ESP32-Besitzer irgendwann von Hand ausführt — die Arduino IDE versteckt es, PlatformIO versteckt es, und dann schlägt eines Tages das Flashen fehl und Sie tippen Python in ein Terminal. Befehle, Flags und die Fehler, die keinen Sinn ergeben, bis Sie sie einmal gesehen haben.
Was ist esptool?
esptool ist Espressifs offizielles Kommandozeilen-Werkzeug, um mit ESP32-Chips über seriell zu sprechen — flashen, löschen, Speicher lesen, Identität abrufen. Jeder Flash-Weg führt hindurch: Die Arduino IDE bündelt es, PlatformIO bündelt es, Web-Installer führen es aus. Es zu kennen ist die Debugging-Stunde, die Sie nie wiederholen.
Wie prüfe ich, ob esptool installiert ist?
esptool.py version ausführen. Eine Versionsnummer (5.x, 4.7, was auch immer aktuell ist) heißt, Sie sind bereit. „Command not found“ heißt pip install esptool — Python 3.7+ ist die einzige Voraussetzung.
Was sind die nützlichsten esptool-Befehle?
Die Kern-esptool-Befehle sind fünf: chip_id identifiziert den Chip, flash_id liest den Flash, read_mac druckt die Werks-MAC, erase_flash wischt alles, und write_flash schreibt ein Binary an eine Adresse — 90 % des Alltags. merge_bin kombiniert mehrere Binaries zu einem Image, das man jemand anderem gibt.
Wie flashe ich Firmware mit esptool?
Eine Zeile reicht: esptool.py write_flash 0x0 firmware.bin, auf den meisten Rechnern mit --port COM3 ergänzt. Der Offset zählt mehr, als die Leute denken: 0x0 ist, wo ein Werks-Image beginnt, während ESP-IDF-Apps nach 0x10000 gehen. Falscher Offset geflasht, und die Platine bootet ins Nichts — so entpuppen sich viele „gebrickte“ Platinen als falsch geflashte. Das Flashing-FAQ behandelt Offsets und Partitionslayouts.
Wie lösche ich den ESP32-Flash?
esptool.py erase_flash wischt den ganzen Chip in Sekunden. Die Warnung, die jeder überspringt: Es entfernt auch den Bootloader, eine Platine, die mit Werks-Firmware lief, bootet also nicht, bis Sie etwas zurückflashen. Löschen fixt eine korrupte Partitionstabelle und Boot-Schleifen — behandeln Sie es als Reset, nicht als Reparatur.
Kann ich den Flash sichern, bevor ich daran herumspiele?
esptool.py read_flash 0x0 0x400000 backup.bin schreibt die ersten 4 MB in eine Datei — der Standardzug vor dem Upgrade; Wiederherstellen ist write_flash an derselben Adresse. Ein Haken: Ein simples Backup lässt sich nicht auf eine Platine mit aktivierter Flash-Verschlüsselung zurückspielen — das lernte ich letzten Frühling auf die harte Tour.
Was machen –port, –baud und die anderen Flags?
--port wählt den seriellen Port (COM3 unter Windows, /dev/ttyUSB0 unter Linux, /dev/cu.usbserial-XXXX unter macOS); --baud setzt die Geschwindigkeit — 460800 ist ein sicherer schneller Wert, und manche USB-Chips stottern über 921600, hängt also vom Brücken-Chip Ihrer Platine ab; --chip erzwingt das Ziel, wenn die Auto-Erkennung scheitert. Den Rest können Sie ignorieren, bis ein Fehler einen nennt.
Warum bekomme ich „Failed to Connect to ESP32: Timed Out Waiting for Packet Header“?
Der Chip ist nicht im Boot-Modus. esptool braucht den lauschenden ROM-Bootloader, und die klassischen Ursachen sind: eine nicht verdrahtete Auto-Reset-Schaltung (nackte Module), der falsche Port oder etwas anderes, das die serielle Leitung hält — ich habe genau diesen Fehler einmal eine Stunde gejagt, weil der Serielle Monitor noch offen war. BOOT halten, EN tippen, BOOT loslassen, erneut versuchen. Bei nackten Modulen GPIO0 beim Einschalten auf Masse legen. Das Debugging-FAQ hat mehr.
Warum hängt das Flashen bei 100 %?
Die Daten sind geschrieben, und die Platine startet still in die neue Firmware — normal, wenn die Firmware keine serielle Ausgabe hat. Eine Boot-Schleife stattdessen bedeutet, dass das Image auf die falsche Flash-Größe oder den falschen Chip zielt. Mit esptool.py chip_id bestätigen, flash_id prüfen, neu flashen.
Funktioniert esptool unter Windows, Linux und Mac gleich?
Ja — dieselben Befehle, Flags und Offsets, weil es auf jeder Plattform ein Python-Skript ist. Nur Port-Namen und Treiber unterscheiden sich; unsere Wissensdatenbank hat die Treiberhinweise für jedes OS.
Die Projekte zu diesem Thema laufen direkt im kostenlosen sensbench-Simulator: Schaltung verkabelt, Firmware inklusive – ohne Konto, ohne Installation.