Blog
ESP-IDF: SDK, Build, vs. Arduino
Was ist ESP32-IDF, wie installiert man es und wie stellt man ein erstes Projekt zusammen — ESP-IDF ist Espressifs offizielles C/C++-SDK, und es geht tiefer als der Arduino-Wrapper. Kurze Antworten auf die Fragen, die kommen, sobald der Boardverwalter nicht mehr reicht.
Was ist ESP32-IDF?
ESP-IDF (Espressif IoT Development Framework) ist das offizielle C/C++-SDK von Espressif — der Firma, die den Chip herstellt. Sie bekommen FreeRTOS, Hardware-Treiber und das idf.py-Buildsystem statt Arduinos freundlichem Wrapper. Es ist keine Sprache und keine IDE; es ist das Toolchain, mit dem die eigene Dokumentation des Chips spricht.
Wie installiere ich ESP32-IDF?
Unter Windows richtet die Espressif-IDE oder der esp-idf-Installer Python, Git und Toolchains in einem Durchlauf ein. Unter Linux: git clone –recursive des Repositories, dann install.sh und export.sh sourcen. Rechnen Sie mit 4–6 GB Festplatte und 10–20 Minuten; meine v5.3-Installation auf einem 2022er-Laptop dauerte 14 Minuten.
Wie bringe ich ein Projekt in ESP32-IDF?
Ein Projekt ist ein Ordner: ein main/-Verzeichnis mit Ihren C-Dateien plus eine CMakeLists.txt oben. Kopieren Sie eines der Beispiele in examples/get-started, führen Sie einmal idf.py set-target esp32s3 aus, dann idf.py build. Arduino-Stil-Code lässt sich nicht unverändert einwerfen — ESP-IDF will app_main(), nicht setup() und loop(). Das Einstiegs-FAQ behandelt den Arduino-Weg, falls Sie von dort kommen.
Wie führe ich boot.py auf dem ESP32 aus?
boot.py ist MicroPythons Startskript, kein ESP-IDF-Konzept. Flashen Sie zuerst MicroPython (esptool.py write_flash 0x1000 micropython.bin), dann laden Sie boot.py ins Dateisystem hoch, und es läuft bei jedem Boot. Erwarten Sie boot.py in ESP-IDF? Falsche Firmware für den Job.
ESP-IDF oder Arduino — was soll ich nehmen?
Beides funktioniert; die Antwort hängt von Ihrer Platine und Ihrer Geduld ab. Arduino ist ein Wrapper, der sdkconfig und das Buildsystem versteckt. ESP-IDF gibt Ihnen Kontrolle und passt zur offiziellen Doku — die gut ist, aber C-Erfahrung voraussetzt. Für alles mit Tiefschlaf plus WLAN oder für ein Produkt ist ESP-IDF die sicherere Wette; für einen Hobby-Prototyp kommt Arduino schneller ans Ziel.
Was ist app_main(), und warum will mein Build das?
Jedes ESP-IDF-Projekt definiert genau ein app_main() — den Einstiegspunkt, ohne setup()/loop()-Trennung. Erstellen Sie darin einen FreeRTOS-Task und halten Sie ihn am Leben. Endet Ihr Build mit „undefined reference to app_main“, ist genau diese Funktion das fehlende Stück.
Was ist sdkconfig, und soll ich sie bearbeiten?
sdkconfig ist die generierte Konfiguration Ihres Projekts, die bei jedem sauberen Build neu erzeugt wird. Nicht von Hand bearbeiten: idf.py menuconfig schreibt sie für Sie. sdkconfig.defaults ist die Datei, die Sie committen. Das Unter-der-Haube-FAQ erklärt, wie die Konfiguration in den Build einfließt.
Was bedeutet „fatal error: driver/gpio.h: No such file or directory“?
Eine fehlende Komponenten-Abhängigkeit. Der Header existiert im SDK — Ihre CMakeLists.txt deklariert ihn nur nicht in REQUIRES. Eine Zeile fixt es, und es ist der häufigste ESP-IDF-Kompilierfehler, den ich in Foren debuggen half. Ich bin selbst in meinem ersten Projekt um 2 Uhr nachts darauf gestoßen; die Lösung dauerte 20 Sekunden, nachdem ich aufgehört hatte zu paniken.
Wie stelle ich die Baudrate eines ESP32 mit ESP-IDF ein?
idf.py menuconfig → Serial flasher config → Default flash baud rate ausführen. Das ist die direkte Antwort auf „wie stelle ich die baudrate eines ESP32 mit ESP-IDF ein“: Es ist die Flash-Geschwindigkeit, nicht die UART-Geschwindigkeit Ihrer Anwendung. Ihre Anwendungs-Baudrate ist ein UART-Treiberparameter, den Sie separat im Code setzen.
Kann ich Arduino-Code in ESP-IDF ausführen?
Ja, neuere Kerne liefern Arduino als optionale Komponente — idf.py add-dependency espressif/arduino-esp32 zieht sie rein. Es funktioniert meistens, auch wenn das Mischen der Welten verwirrend wird: zwei Konfigurationssysteme, zwei Timer-APIs. Wählen Sie eins pro Projekt. Beim Debuggen eines gemischten Projekts zahlt sich das Debugging-FAQ aus.
Die Projekte zu diesem Thema laufen direkt im kostenlosen sensbench-Simulator: Schaltung verkabelt, Firmware inklusive – ohne Konto, ohne Installation.