{"id":6629,"date":"2020-11-30T17:52:11","date_gmt":"2020-11-30T17:52:11","guid":{"rendered":"https:\/\/www.fambach.net\/?p=6629"},"modified":"2020-12-25T08:26:59","modified_gmt":"2020-12-25T08:26:59","slug":"espressif-idf-fuer-esp32-s2-installieren","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/espressif-idf-fuer-esp32-s2-installieren\/","title":{"rendered":"Install Espressif IDF for ESP32-S2"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Fakten\" title=\"Fakten\">Fakten<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Allgemeines\" title=\"Allgemeines\">Allgemeines<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Oled_Display\" title=\"Oled Display\">Oled Display<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Pinout\" title=\"Pinout\">Pinout<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Anwendungsbereiche\" title=\"Anwendungsbereiche\">Anwendungsbereiche<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Ansichten\" title=\"Ansichten\">Ansichten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Analyse\" title=\"Analyse\">Analyse<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Angeschlossen\" title=\"Angeschlossen\">Angeschlossen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Genauer_hin_geschaut\" title=\"Genauer hin geschaut\">Genauer hin geschaut<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Programmierung\" title=\"Programmierung\">Programmierung<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Arduino_GUI\" title=\"Arduino GUI\">Arduino GUI<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Bibliotheken\" title=\"Bibliotheken\">Bibliotheken<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Testprogramm\" title=\"Testprogramm\">Testprogramm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Probleme\" title=\"Probleme\">Probleme<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Espressif_IDF\" title=\"Espressif IDF\">Espressif IDF<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Bibliotheken-2\" title=\"Bibliotheken\">Bibliotheken<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Testprogramm-2\" title=\"Testprogramm\">Testprogramm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Probleme-2\" title=\"Probleme\">Probleme<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Undeutbare_Kompilierfehler\" title=\"Undeutbare Kompilierfehler\">Undeutbare Kompilierfehler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Kompiliert_nicht_-_SPI_Fehler\" title=\"Kompiliert nicht - SPI Fehler\">Kompiliert nicht - SPI Fehler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Kein_Bild_auf_dem_Oled\" title=\"Kein Bild auf dem Oled\">Kein Bild auf dem Oled<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Nur_jede_zweite_Zeile_wir_ausgegeben\" title=\"Nur jede zweite Zeile wir ausgegeben\">Nur jede zweite Zeile wir ausgegeben<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Sonstiges\" title=\"Sonstiges\">Sonstiges<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Gehause\" title=\"Geh\u00e4use\">Geh\u00e4use<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Fazit\" title=\"Fazit\">Fazit<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Verwandte_Beitrage\" title=\"Verwandte Beitr\u00e4ge\">Verwandte Beitr\u00e4ge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Quellen\" title=\"Quellen\">Quellen<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>Mein neuestes Board besitzt einen ESP32-S2 Chip. Dieser kann, zum Zeitpunkt der Erstellung dieses Beitrags, nur \u00fcber die Espressif IDF programmiert werden. Nach vielen Anl\u00e4ufen habe ich es geschafft diese unter Windows zu installieren. Die Installation und die dabei entstandenen Probleme m\u00f6chte ich hier kurz beschreiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Fakten\"><\/span>Fakten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Wir ben\u00f6tigen:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/gitforwindows.org\/\">Git f\u00fcr Windows<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" data-type=\"URL\" data-id=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\">ESP-IDF Tool Installer<\/a><\/li><li>Zeit<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Anwendungsbereiche\"><\/span>Anwendungsbereiche<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul><li>Programmierung aller ESP einschliesslich ESP32-S2.<\/li><li>Programmierframework des Herstellers als erstes f\u00fcr neue Prozessoren verf\u00fcgbar.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Git <\/h3>\n\n\n\n<p>Git wird ben\u00f6tigt um sp\u00e4ter das Espressif IDF von Github herunter zu laden. Die letzter Version kann \u00fcber die folgende Webseite herunterladen werden:<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/gitforwindows.org\/\" target=\"_blank\">gitforwindows.org<\/a><\/p>\n\n\n\n<p>Auf\u00fchren und installieren. Am Ende noch den Pfad zu Git in die Windows Umgebungsvariblen eintragen. (WindowsTaste + R zum \u00f6ffnen [Enter] -&gt; Reiter Erweitert -&gt; Knopf Umgebungsvariablen-&gt;Pfad w\u00e4hlen -&gt; Neu)<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"501\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-15_55_41.jpg\" alt=\"\" class=\"wp-image-6631\"\/><figcaption>Windows Umgebungsvariablen &#8211; Git Verzeichnis einstragen<\/figcaption><\/figure>\n\n\n\n<p>Das wars auch schon mit Git. Weiter gehts mit dem IDF.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Espressif_IDF\"><\/span>Espressif IDF<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Das IDF kann auf der <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/get-started\/windows-setup.html#get-started-windows-tools-installer\" target=\"_blank\">Herstellerseite<\/a> oder \u00fcber folgenden Direktlink herunter geladen werden. Ich verwende die Version 2.3.<\/p>\n\n\n\n<p>  <a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\">ESP-IDF Tool Installer<\/a> <\/p>\n\n\n\n<p>Datei ausf\u00fchren und den Dialogen folgen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_19_13.jpg\" alt=\"\" class=\"wp-image-6545\"\/><figcaption><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\">ESP-IDF Tool Installer<\/a> &#8211; Lizenzvereinbarungen best\u00e4tigen<\/figcaption><\/figure>\n\n\n\n<p>Python Version ausw\u00e4hlen. Ich verwende die 3.9er, da ich ein paar Runden gedreht haben war diese bei mir schon installiert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_20_33.jpg\" alt=\"\" class=\"wp-image-6546\"\/><figcaption><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\">ESP-IDF Tool Installer<\/a> &#8211; Wah der Python Version<\/figcaption><\/figure>\n\n\n\n<p>Wahl der installierten Git Version, diese sollte vom Installationsprogramm erkannt werden. (Es ist an dieser Stelle auch m\u00f6glich Git neu zu  installieren) .<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_22_51.jpg\" alt=\"\" class=\"wp-image-6547\"\/><figcaption><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\">ESP-IDF Tool Installer<\/a> &#8211; Git ausw\u00e4hlen oder installieren<\/figcaption><\/figure>\n\n\n\n<p>Ich habe ein paar Versionen ausprobiert und bin fast verzweifelt weil jede andere Fehler erzeugte. Kurz vor der Resignation habe ich den aktuellen Build ausprobiert. Dieser hat bei mir dann endlich funktioniert. <\/p>\n\n\n\n<p>Die IDF wird nach &#8222;&lt;Benutzer Profil&gt;\/esp&#8220; herunter geladen (Also landet sie bei Windows auf dem Desktop). Solltet ihr, wie ich, ein anderes Verzeichnis w\u00fcnschen, gebt das unten an. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_12_19.jpg\" alt=\"\" class=\"wp-image-6632\"\/><figcaption><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\">ESP-IDF Tool Installer<\/a> &#8211; Automatischer oder manueller Download.<\/figcaption><\/figure>\n\n\n\n<p>Ziel W\u00e4hlen f\u00fcr die Espressif Tools w\u00e4hlen. (die Zweiteilung verstehe ich immer noch nicht aber egal. )<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_48_50.jpg\" alt=\"\" class=\"wp-image-6552\"\/><\/figure>\n\n\n\n<p>Im n\u00e4chsten Dialog habe ich mal full Service &#8222;Wachen, Unterbodenschutz und Polieren gew\u00e4hlt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_17.jpg\" alt=\"\" class=\"wp-image-6553\"\/><\/figure>\n\n\n\n<p>Zusammenfassung noch best\u00e4tigen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_36.jpg\" alt=\"\" class=\"wp-image-6554\"\/><\/figure>\n\n\n\n<p>&#8230; und dem Balken folgen &#8230;. schon mal je nach Tageszeit einen Kaffee oder ein Bier holen &#8230; <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_43.jpg\" alt=\"\" class=\"wp-image-6555\"\/><\/figure>\n\n\n\n<p>&#8230; ESP-IDF wird herunter geladen<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"464\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_50_14.jpg\" alt=\"\" class=\"wp-image-6556\"\/><\/figure>\n\n\n\n<p>Evtl. Noch die Management Console best\u00e4tigen. Am Ende fragt er ob die Konsole starten m\u00f6chten soll, dies habe ich best\u00e4tigt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"512\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_58_53.jpg\" alt=\"\" class=\"wp-image-6558\"\/><figcaption>Setzen der Umgebungsvariablen<\/figcaption><\/figure>\n\n\n\n<p>Nun sollte die IDF in dieser Konsole funktionieren. Nur in dieser weil hier ein Batch Skript ausge\u00fchrt wurde. W\u00fcrde man die cmd. exe so \u00f6ffenen funktioniert die Umgebung nicht weil die Umgebungsvariablen nicht gesetzt sind. Es gibt jedoch einen Link im Startemen\u00fc um die &#8222;ESP Konsole&#8220; erneut starten zu k\u00f6nnen. Wie es auch anders geht beschreibe unter Sonstiges, erstmal testen wir die Umgebung.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"640\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_25_32.jpg\" alt=\"\" class=\"wp-image-6633\"\/><figcaption>Windows 10 Startemen\u00fc &#8211; Link zur Konsole<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Programmierung\"><\/span>Programmierung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Im Windows-Explorer findet ihr im esp-idf Verzeichnis, unter Examples, einige Beispielprogramme. Diese sind f\u00fcr einen ersten Test perfekt. Kopiert eines der Beispiele in ein Arbeitsverzeichnis. Bei mir liegt das Arbeitsverzeichnis direkt im Benutzerordner und heisst esp. Ich verwende das Hello World Projekt im Unterverzeichnis &#8222;get-started&#8220; &#8211; zum Start erstmal mit einem einfachen Programm anfangen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"665\" height=\"183\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_10_26.jpg\" alt=\"\" class=\"wp-image-6639\"\/><figcaption>Hello World Beispiel Projekt<\/figcaption><\/figure>\n\n\n\n<p>In der noch offenen Konsole in das ensprechende Verzeichnis wechseln.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"389\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_13_25.jpg\" alt=\"\" class=\"wp-image-6640\"\/><figcaption>Konsole &#8211; Wechsel ins Projektverzeichnis<\/figcaption><\/figure>\n\n\n\n<p>Nun mal die Zielplattform festlegen. Der Befehl set-target ohne Parameter dahinter listet alle m\u00f6glichen Zielplatformen auf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py set-target<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"543\" height=\"216\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_17_27.jpg\" alt=\"\" class=\"wp-image-6641\"\/><figcaption>Konsole &#8211; Ausgabe der m\u00f6glichen Zielplattformen<\/figcaption><\/figure>\n\n\n\n<p>Da ich einen Esp32-S2 vorliegen haben verwende ich den Parameter esp32s2 und f\u00fchre den folgenden Befehl im Verzeichnis hello_world aus. Es gibt eine l\u00e4ngere Ausgabe an deren Ende sollte &#8222;&#8211; Configuration done&#8220; und m\u00f6glichst kein Fehler stehen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py set-target esp32s2<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"300\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_22_07.jpg\" alt=\"\" class=\"wp-image-6642\"\/><figcaption>Konsole &#8211; Ausgabe nach der Zielwahl<\/figcaption><\/figure>\n\n\n\n<p>Nun kann die Konfiguration gestartet werden. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py menuconfig<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"358\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_36_54.jpg\" alt=\"\" class=\"wp-image-6643\"\/><figcaption>Konsole &#8211; Men\u00fckonfiguration<\/figcaption><\/figure>\n\n\n\n<p>In der Regel muss hier nicht viel eingestellt werden. Ich habe die Flashg\u00f6\u00dfe beim mir auf 4MB gesetzt, das war es. Die Navigation erfolgt \u00fcber die Pfeiltasten, mit Enter kann in ein Untermen\u00fc gesprungen werden und mit der Ecape Taste wieder heraus. Gespeicht wird mit Shift + S und beenden werden kann die Konfiguration mit Shift + Q (oder \u00f6fters Escape dr\u00fccken). Im Quellcode k\u00f6nnen Konstanten definiert werden, die ebenfalls mit dem Tool gef\u00fcllt werden k\u00f6nnen. Ein Beispiel hierf\u00fcr ist das blink Programm, hier kann der GPIO f\u00fcr die LED eingestellt werden ohne den Code \u00e4ndern zu m\u00fcssen. <\/p>\n\n\n\n<p>Nach der Konfiguration wird gebaut. Dies dauert erschreckend lange.  <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py build<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"370\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_45_09.jpg\" alt=\"\" class=\"wp-image-6644\"\/><\/figure>\n\n\n\n<p>Nach dem Bauen sollte der Satz &#8222;Project build complete.&#8220; stehen. Eine Flash-Anleitung gibts gleich mit. Somit flashen wir jetzt unser Board. Hierzu das Board an den Computer anschliessen. Den seriellen Port k\u00f6nnt ihr \u00fcber den Ger\u00e4temanager von Windows herausfinden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"490\" height=\"372\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_47_44.jpg\" alt=\"\" class=\"wp-image-6645\"\/><figcaption>Windows Ger\u00e4temanager &#8211; Ermitteln der seriellen Schnittstelle<\/figcaption><\/figure>\n\n\n\n<p>Da es beim mir COM30 ist sieht der Befehl wie folgt aus.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py -p COM30 flash<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"370\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_50_26.jpg\" alt=\"\" class=\"wp-image-6646\"\/><figcaption>Konsole &#8211; Ausgabe nach dem Flashen<\/figcaption><\/figure>\n\n\n\n<p>Mit dem Monitor Befehl k\u00f6nnen wir uns per Konsole auf das Board verbinden und schauen was es macht.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py -p COM30 monitor<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"370\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_52_28.jpg\" alt=\"\" class=\"wp-image-6647\"\/><\/figure>\n\n\n\n<p>Es hat also geklappt. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Probleme<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Compiler\/Linker Fehler<\/h3>\n\n\n\n<p>Es gibt &#8222;komische&#8220; Compiler Fehler die sporadisch auftreten k\u00f6nnen und nicht wirklich deutbar sind. Der wichtigste Leitsatz hierbei ist, &#8222;<strong>KEINE LEERZEICHEN IM PFAD- UND DATEINAMEN<\/strong>&#8222;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Python 3.9 Installation schl\u00e4gt fehl<\/h3>\n\n\n\n<p>Bei mir ist die Python Installation mit dem IDF Tool fehlgeschlagen. Es gibt die M\u00f6glichkeit Python manuell zu installieren. Die aktuelle Version kann unter folgenden Link herunter geladen werden.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.python.org\/downloads\/\">https:\/\/www.python.org\/downloads\/<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installation auf Console schl\u00e4gt fehl mit &#8222;.. f\u00fcr Viruelle Umgebung &#8230;&#8220; <\/h3>\n\n\n\n<p>Pfade mal \u00fcberpr\u00fcfen, evtl. andere Pyhton oder Espressif IDF Version w\u00e4hlen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">***.py nicht gefunden <\/h3>\n\n\n\n<p>Pfade \u00fcberpr\u00fcfen, ggf. aktualisieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ben\u00f6tigre Version stimmt nicht &#8211; ProgrammXYZ&gt;=Version123<\/h3>\n\n\n\n<p>Zum Beispiel:<\/p>\n\n\n\n<p>click&gt;=5.0<br>pyserial&gt;=3.0<br>future&gt;=0.15.2<br>cryptography&gt;=2.1.4<br>pyparsing&gt;=2.0.3,&lt;2.4.0 pyelftools&gt;=0.22<br>gdbgui==0.13.2.0<\/p>\n\n\n\n<p>Die Version k\u00f6nnen mit pip angezeigt und auch aktualsiert werden. Wird eine \u00e4ltere Version ben\u00f6tig kann diese mit == angebeben werden. <\/p>\n\n\n\n<p>Auflisten der Versionen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip list<\/code><\/pre>\n\n\n\n<p>Auf die aktuelle Version updaten<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install pyserial<\/code><\/pre>\n\n\n\n<p>Pyserial Version 3.0 einspielen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install pyserial==3.0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Flashen bricht mit Fehler 0x50 ab<\/h3>\n\n\n\n<p>In alten Versionen gibt es das Ziel (target) esp32s2 nicht sondern nur esp32s2beta. Dies funktioniert zwar beim Compilieren aber nicht beim Fashen. Ab Version &gt; 4.0 ist das funktionierende Zeil vorhanden. <\/p>\n\n\n\n<p>Somit sollte, wenn nur die beta Version verf\u00fcgbar ist das IDF Framework mindestens auf Version 4.1 aktualisiert werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sonstiges\"><\/span>Sonstiges<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Wichtige Befehle<\/h3>\n\n\n\n<p>Der Befehl zum Aufruf des IDF Tools auf der Console ist idf.py. Alle genannten optionen folgen nach diesem Befehl. Der Befehl muss im entsprechenden Projektverzeichnis aufgerufen werden. ( &lt;TEXT&gt; sind Plathalter f\u00fcr Werte, [-p &lt;PORT] sind optionale Bestandteile, | oder) <\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Befehlt<\/th><th>Beschreibung<\/th><\/tr><\/thead><tbody><tr><td>&#8211;help<\/td><td>Listed alle Befehle auf. Wird ein Befehl vorangestellt, werden nur die Optionen des Befehls aufgelistet.<\/td><\/tr><tr><td>set-target &lt;Ziel&gt;<\/td><td>Setzt die Zielplattform Ziel= esp32, esp32s2 &#8230; ohne Parameter werden die verf\u00fcgbaren Plattformen aufgelistet<\/td><\/tr><tr><td>menuconfig<\/td><td>\u00d6ffnet die Konfiguration<\/td><\/tr><tr><td>build<\/td><td>Konfiguriert und kompiliert die Sourcen<\/td><\/tr><tr><td>clean<\/td><td>L\u00f6scht das Kompilat aber nicht die Konfiguration die durch build erstellt wurde<\/td><\/tr><tr><td>fullclean<\/td><td>L\u00f6scht alles, die mit menuconfig erstellet Prjektkonfiguration wird beibehalten<\/td><\/tr><tr><td>[-p &lt;PORT&gt;] [-b &lt;BOUD&gt;] [-C &lt;Projekt Verzeichnis&gt;] fash<\/td><td>Schreibt das Programm auf den ESP<\/td><\/tr><tr><td>[-p &lt;PORT&gt;] monitor <\/td><td>Gibt den seriellen ouptut des Boards aus. (Ctrl-] schliesst den Monitor)<\/td><\/tr><tr><td>app \/ bootloader \/ partiation_table<\/td><td>Sorgt daf\u00fcr dass nur der angebene Teil gebaut wird. Z.B mit  bootloader wird nur dieser gebaut.<\/td><\/tr><tr><td>app-falsh \/ bootloader \/ partition_table<\/td><td>Analog zum letzten Befehl sorgt dieser daf\u00fcr dass nur der angebene Teil auf das Board geschrieben wird.<\/td><\/tr><tr><td>[-p &lt;PORT&gt;] erase_flash <\/td><td>L\u00f6scht den Speicher des ESP<\/td><\/tr><tr><td>reconfigure<\/td><td>Zwing CMAKE dazu erneut zu Konfigurieren und zu Bauen<\/td><\/tr><tr><td>python-clean<\/td><td>L\u00f6scht Python-Ausgaben aus dem Prjektverzeichnis, sollte immer dann gestartet weden wenn die Python Version gewechselt wird.<\/td><\/tr><tr><td>size<\/td><td>Zeigt ein paar Inforation zur Speichergr\u00f6\u00dfe der App.<\/td><\/tr><tr><td>size-components<\/td><td>Zeigt ein Inforation zum Speicherverbrauch der Komponenten<\/td><\/tr><tr><td>size-files<\/td><td>Zeigt ein Inforation zum Speicherverbrauch der Dateien<\/td><\/tr><tr><td>create-project [&#8211;path &lt;Zielverzeichnis&gt;] |&lt;Projektname&gt;<\/td><td>Erstellt ein neues Projekt im Zielverzeichnis. Wir nur der Name angeben, legt das Programm einen Ordner mit Projektname im aktuellen Pfad an. Mit path muss ein schon vorhandener leerer Ordner angeben werden.<\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><\/tbody><\/table><figcaption>Espressif IDF idf.py &#8211; Befehle (Quelle: <a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\" rel=\"noreferrer noopener\">Espressif<\/a>)<\/figcaption><\/figure>\n\n\n\n<p>Die Befehle k\u00f6nnen auch kombiniert werden.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf.py -p COM32 build flash monitor<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Beispiel Projektstruktur<\/h3>\n\n\n\n<p>Hier die Beispiel-Projektstruktur (Quelle: <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\">Espressif<\/a> )<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- myProject\/\n             - CMakeLists.txt\n             - sdkconfig\n             - components\/ - component1\/ - CMakeLists.txt\n                                         - Kconfig\n                                         - src1.c\n                           - component2\/ - CMakeLists.txt\n                                         - Kconfig\n                                         - src1.c\n                                         - include\/ -                 component2.h\n             - main\/       - CMakeLists.txt\n                           - src1.c\n                           - src2.c\n             - build\/<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Datei\/Ordner<\/th><th>Beschreibung<\/th><\/tr><\/thead><tbody><tr><td>CMakeLists.txt<\/td><td>Haupt-Konfigurationsdatei f\u00fcr CMake, sie includiert dei <a href=\"https:\/\/github.com\/espressif\/esp-idf\/blob\/178b122\/tools\/cmake\/project.cmake\">\/tools\/cmake\/project.cmake<\/a> und setzt den Projektnamen<\/td><\/tr><tr><td>sdkconfig<\/td><td>Diese Datei wird durch menuconfig erstellt und aktualisiert<\/td><\/tr><tr><td>components\/<\/td><td>Optionales Verszeichnis. Komponenten werden dazu verwendet um Projekte zu struktuieren\/modularisieren und um andere Bestanteile in ein  Projekt einzubinden (zb. Treiber f\u00fcr Sensoren). Die Pfadvariable EXTRA_COMPONENT_DIRS kann im CMakeLists.txt angegeben werden um externe Komponenten mit einzubinden.<\/td><\/tr><tr><td>main\/<\/td><td>Beinhaltet den Quellcode des Projektes.<\/td><\/tr><tr><td>build\/<\/td><td>Build Ausgabe wird durch CMake generiert<\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><\/tbody><\/table><figcaption>Espressif IDF &#8211; Projekt-Verzeichnis Bestandteile<\/figcaption><\/figure>\n\n\n\n<p>Mehr hierzu in der <a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\" rel=\"noreferrer noopener\">Espressif Doku.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Einrichten der Umgebungsvariablen f\u00fcr die Console<\/h3>\n\n\n\n<p>Um nicht immer Batch Dateien ausf\u00fchren zu m\u00fcssen und um den Weg f\u00fcr eine Programieroberfl\u00e4che zu ebnen, habe ich bei mir alle Pfade in die Umgebungs Variablen von Windows eingetragen. Dies hat den Vorteil, dass ich einfach nur ein Console zu \u00f6ffnen brauche und kann das IDF gleich nutzen kann. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"925\" height=\"501\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-18_09_22-1.jpg\" alt=\"\" class=\"wp-image-6649\"\/><figcaption>Windows Umgebungsvariablen f\u00fcr das IDF.<\/figcaption><\/figure>\n\n\n\n<p>Hier nochmal zum rauskopieren, bitte die Pfade entsprechend anpassen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\spam\\AppData\\Local\\Programs\\Python\\Python39\\;C:\\Users\\spam\\esp-idf\\tools;C:\\Users\\spam\\.espressif\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\bin;C:\\Users\\spam\\.espressif\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\bin;C:\\Users\\spam\\.espressif\\tools\\xtensa-esp32s2-elf\\esp-2020r3-8.4.0\\xtensa-esp32s2-elf\\bin;C:\\Users\\spam\\.espressif\\tools\\xtensa-esp32s3-elf\\esp-2020r3-8.4.0\\xtensa-esp32s3-elf\\bin;C:\\Users\\spam\\.espressif\\tools\\esp32ulp-elf\\2.28.51-esp-20191205\\esp32ulp-elf-binutils\\bin;C:\\Users\\spam\\.espressif\\tools\\esp32s2ulp-elf\\2.28.51-esp-20191205\\esp32s2ulp-elf-binutils\\bin;C:\\Users\\spam\\.espressif\\tools\\cmake\\3.16.4\\bin;C:\\Users\\spam\\.espressif\\tools\\openocd-esp32\\v0.10.0-esp32-20200709\\openocd-esp32\\bin;C:\\Users\\spam\\.espressif\\tools\\ninja\\1.10.0\\;C:\\Users\\spam\\.espressif\\tools\\idf-exe\\1.0.1\\;C:\\Users\\spam\\.espressif\\tools\\ccache\\3.7\\;C:\\Users\\spam\\.espressif\\tools\\dfu-util\\0.9\\dfu-util-0.9-win64;C:\\Users\\spam\\.espressif\\python_env\\idf4.3_py3.9_env\\Scripts;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Fazit<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Ich habe mich gefreut, dass es einen detailliert Installationsanleitung gibt und bin dieser mit wohlwollen gefolgt. Drei Tage sp\u00e4ter mit schlechter Laune und kurz vor der Resignation hat es geklappt. Dabei w\u00e4re es so einfach mit der neusten und &#8222;instabielsten&#8220; Version gewesen. Man h\u00e4tte nur damit anfangen m\u00fcssen. Ich habe mich hier sicherlich nicht gloreich geschlagen, habe aber auch Stimmen im Internet vernommen, die gar Linux Installiert haben, wo die Installaton kein Problem darstellt. Somit frei nach dem Motto &#8222;we did it all wrong, but we did it&#8220; verbuche ich dies unter lessons learned. Was ich mit den alten lessons learned, niemals die aktuelle und unstabile Version zu verwenden machen soll weiss ich noch nicht;) . Gernerell finde ich das Framework interessant und werde noch weiter damit herum experimentieren. Wer nicht so bastelfreudig ist, sollte evtl. noch etwas warten, auch bis vielleicht eine Implementierung f\u00fcr die ArduinoGui vorhanden ist. Zus\u00e4lich sind einige neuerungen des S2 Controllers noch nicht implementiert, wie Beispielsweise das Time of Flight Protokoll. Hier empfiehlt es sich ebenfalls zu warten oder aktiv bei der Implementierung mit zu wirken.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Verwandte_Beitrage\"><\/span>Verwandte Beitr\u00e4ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<ul class=\"display-posts-listing\">\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp32-c3-das-spiel-mit-der-mouse\/\">ESP32-S2 das Spiel mit der Mouse<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\">Espressif IDF &#8211; GPIOs<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\">Espressif IDF &#8211; Tasks<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-menuconfig\/\">Espressif IDF &#8211; Menuconfig<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-timer\/\">Espressif IDF &#8211; Timer<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-log-nachrichten\/\">Espressif IDF &#8211; Lognachrichten<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-fehlerbehandlung\/\">Espressif IDF &#8211; Fehlerbehandlung<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-konsolenausgabe\/\">Espressif IDF &#8211; Konsolenausgabe<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-projekt-erstellen\/\">Espressif IDF &#8211; Projekt erstellen<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/\">LilyGo ESP32-Oled<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Quellen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32s2\/get-started\/index.html\" target=\"_blank\">Getting Started with Espressif IDF<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/espressif\/vscode-esp-idf-extension\" target=\"_blank\">Github ESP-IDF Extension f\u00fcr VS-Code<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/espressif\/esp-idf\/issues\" target=\"_blank\" rel=\"noreferrer noopener\">Github Esressif ID Fehlerliste<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\">Python Webseite<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" data-type=\"URL\" data-id=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\" rel=\"noreferrer noopener\">Espressif Build System<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer diesen Bericht nicht liesst &#8230; wird auch nicht schlauer. Ich beschreibe kurz die Installation der Espressif IDF f\u00fcr den ESP32-S2.<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/lilygo-t-beam\/\" class=\"read-more-link\">Continue reading <span class=\"screen-reader-text\">\"LilyGo T-Beam\"<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a>","protected":false},"author":1,"featured_media":6647,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[184,473,255],"tags":[148,475,465,474,476],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/6629"}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=6629"}],"version-history":[{"count":6,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/6629\/revisions"}],"predecessor-version":[{"id":6888,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/6629\/revisions\/6888"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/6647"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=6629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=6629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=6629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}