{"id":6629,"date":"2020-11-30T17:52:11","date_gmt":"2020-11-30T17:52:11","guid":{"rendered":"https:\/\/www.fambach.net\/?p=6629"},"modified":"2026-10-04T20:29:09","modified_gmt":"2026-10-04T20:29:09","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_89 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\" >Fakten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Anwendungsbereiche\" >Anwendungsbereiche<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Installation\" >Installation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Git\" >Git<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Espressif_IDF\" >Espressif IDF<\/a><\/li><\/ul><\/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\/#Programmierung\" >Programmierung<\/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\/#Probleme\" >Probleme<\/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\/#CompilerLinker_Fehler\" >Compiler\/Linker Fehler<\/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\/#Python_39_Installation_schlagt_fehl\" >Python 3.9 Installation schl\u00e4gt fehl<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Installation_auf_Console_schlagt_fehl_mit_%E2%80%9E_fur_Virtuelle_Umgebung_%E2%80%A6%E2%80%9C\" >Installation auf Console schl\u00e4gt fehl mit \u201e.. f\u00fcr Virtuelle Umgebung \u2026\u201c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#py_nicht_gefunden\" >***.py nicht gefunden<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Benotigte_Version_stimmt_nicht_%E2%80%93_ProgrammXYZ%3EVersion123\" >Ben\u00f6tigte Version stimmt nicht \u2013 ProgrammXYZ&gt;=Version123<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Flashen_bricht_mit_Fehler_0x50_ab\" >Flashen bricht mit Fehler 0x50 ab<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#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-15\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Wichtige_Befehle\" >Wichtige Befehle<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Beispiel_Projektstruktur\" >Beispiel Projektstruktur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Einrichten_der_Umgebungsvariablen_fur_die_Console\" >Einrichten der Umgebungsvariablen f\u00fcr die Console<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Fazit\" >Fazit<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Verwandte_Beitrage\" >Verwandte Beitr\u00e4ge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/#Quellen\" >Quellen<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">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\" id=\"fakten\"><span class=\"ez-toc-section\" id=\"Fakten\"><\/span>Fakten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wir ben\u00f6tigen:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/gitforwindows.org\/\" class=\"ub-content-link__anchor\">Git f\u00fcr Windows<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><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\" class=\"ub-content-link__anchor\">ESP-IDF Tool Installer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li>Zeit<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"anwendungsbereiche\"><span class=\"ez-toc-section\" id=\"Anwendungsbereiche\"><\/span>Anwendungsbereiche<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Programmierung aller ESP einschlie\u00dflich 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\" id=\"installation\"><span class=\"ez-toc-section\" id=\"Installation\"><\/span>Installation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"git\"><span class=\"ez-toc-section\" id=\"Git\"><\/span>Git <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Git wird ben\u00f6tigt, um sp\u00e4ter das Espressif IDF von Github herunterzuladen. Die letzte Version kann \u00fcber die folgende Webseite heruntergeladen werden:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/gitforwindows.org\/\" target=\"_blank\" class=\"ub-content-link__anchor\">gitforwindows.org<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ausf\u00fchren und installieren. Am Ende noch den Pfad zu Git in die Windows Umgebungsvariablen eintragen. (WindowsTaste + R zum \u00d6ffnen [Enter] -&gt; Reiter Erweitert -&gt; Knopf Umgebungsvariablen-&gt;Pfad w\u00e4hlen -&gt; Neu)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-15_55_41.jpg 527w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-15_55_41-300x285.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-15_55_41-13x12.jpg 13w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Windows Umgebungsvariablen \u2013 Git Verzeichnis eintragen<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Das wars auch schon mit Git. Weiter gehts mit dem IDF.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"espressif-idf\"><span class=\"ez-toc-section\" id=\"Espressif_IDF\"><\/span>Espressif IDF<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das IDF kann auf der <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><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\" class=\"ub-content-link__anchor\">Herstellerseite<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> oder \u00fcber folgenden Direktlink heruntergeladen werden. Ich verwende die Version 2.3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">  <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\" class=\"ub-content-link__anchor\">ESP-IDF Tool Installer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_19_13.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_19_13-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_19_13-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\" class=\"ub-content-link__anchor\">ESP-IDF Tool Installer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> \u2013 Lizenzvereinbarungen best\u00e4tigen<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Python Version ausw\u00e4hlen. Ich verwende die 3.9er, da ich ein paar Runden gedreht habe, 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_20_33.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_20_33-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_20_33-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\" class=\"ub-content-link__anchor\">ESP-IDF Tool Installer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> \u2013 Wahl der Python Version<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_22_51.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_22_51-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-19_22_51-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\" class=\"ub-content-link__anchor\">ESP-IDF Tool Installer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> \u2013 Git ausw\u00e4hlen oder installieren<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Die IDF wird nach \u201e&lt;Benutzer Profil&gt;\/esp\u201c heruntergeladen (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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_12_19.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_12_19-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_12_19-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/esp-idf-tools-setup-2.3.exe\" target=\"_blank\" class=\"ub-content-link__anchor\">ESP-IDF Tool Installer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> \u2013 Automatischer oder manueller Download.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ziel 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_48_50.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_48_50-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_48_50-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Im n\u00e4chsten Dialog habe ich mal full Service \u201eWaschen, Unterbodenschutz und Polieren\u201c 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_17.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_17-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_17-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_36.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_36-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_36-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u2026 und dem Balken folgen \u2026. schon mal je nach Tageszeit einen Kaffee oder ein Bier holen \u2026 <\/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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_43.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_43-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_49_43-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u2026 ESP-IDF wird heruntergeladen<\/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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_50_14.jpg 598w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_50_14-300x233.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_50_14-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Evtl. noch die Management Console best\u00e4tigen. Am Ende fragt er, ob die Konsole starten 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_58_53.jpg 927w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_58_53-300x166.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_58_53-768x424.jpg 768w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-23-20_58_53-18x10.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Setzen der Umgebungsvariablen<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nun sollte die IDF in dieser Konsole funktionieren. Nur in dieser, weil hier ein Batch Skript ausgef\u00fchrt wurde. W\u00fcrde man die cmd.exe so \u00f6ffnen, funktioniert die Umgebung nicht, weil die Umgebungsvariablen nicht gesetzt sind. Es gibt jedoch einen Link im Startmen\u00fc, um die \u201eESP Konsole\u201c erneut starten zu k\u00f6nnen. Wie es auch anders geht, beschreibe ich 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_25_32.jpg 642w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_25_32-300x300.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_25_32-200x200.jpg 200w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-16_25_32-12x12.jpg 12w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Windows 10 Startmen\u00fc \u2013 Link zur Konsole<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"programmierung\"><span class=\"ez-toc-section\" id=\"Programmierung\"><\/span>Programmierung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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 hei\u00dft esp. Ich verwende das Hello World Projekt im Unterverzeichnis \u201eget-started\u201c \u2013 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_10_26.jpg 665w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_10_26-300x83.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_10_26-18x5.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Hello World Beispiel Projekt<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In der noch offenen Konsole in das entsprechende 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_13_25.jpg 627w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_13_25-300x186.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_13_25-18x12.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Konsole \u2013 Wechsel ins Projektverzeichnis<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nun mal die Zielplattform festlegen. Der Befehl set-target ohne Parameter dahinter listet alle m\u00f6glichen Zielplattformen 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_17_27.jpg 543w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_17_27-300x119.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_17_27-18x7.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Konsole \u2013 Ausgabe der m\u00f6glichen Zielplattformen<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Da ich einen Esp32-S2 vorliegen habe, 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 \u201e\u2013 Configuration done\u201c 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_22_07.jpg 647w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_22_07-300x139.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_22_07-18x8.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Konsole \u2013 Ausgabe nach der Zielwahl<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_36_54.jpg 479w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_36_54-300x224.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_36_54-16x12.jpg 16w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Konsole \u2013 Men\u00fckonfiguration<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In der Regel muss hier nicht viel eingestellt werden. Ich habe die Flashgr\u00f6\u00dfe bei 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 Escape Taste wieder heraus. Gespeichert 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 class=\"wp-block-paragraph\">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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_45_09.jpg 411w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_45_09-300x270.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_45_09-13x12.jpg 13w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nach dem Bauen sollte der Satz \u201eProject build complete.\u201c stehen. Eine Flash-Anleitung gibts gleich mit. Somit flashen wir jetzt unser Board. Hierzu das Board an den Computer anschlie\u00dfen. 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_47_44.jpg 490w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_47_44-300x228.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_47_44-16x12.jpg 16w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Windows Ger\u00e4temanager \u2013 Ermitteln der seriellen Schnittstelle<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Da es bei 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_50_26.jpg 552w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_50_26-300x201.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_50_26-18x12.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Konsole \u2013 Ausgabe nach dem Flashen<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_52_28.jpg 552w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_52_28-300x201.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-17_52_28-18x12.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Es hat also geklappt. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"probleme\"><span class=\"ez-toc-section\" id=\"Probleme\"><\/span>Probleme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"compiler-linker-fehler\"><span class=\"ez-toc-section\" id=\"CompilerLinker_Fehler\"><\/span>Compiler\/Linker Fehler<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt \u201ekomische\u201c Compiler Fehler die sporadisch auftreten k\u00f6nnen und nicht wirklich deutbar sind. Der wichtigste Leitsatz hierbei ist, \u201e<strong>KEINE LEERZEICHEN IM PFAD- UND DATEINAMEN<\/strong>\u201e<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"python-3-9-installation-schlaegt-fehl\"><span class=\"ez-toc-section\" id=\"Python_39_Installation_schlagt_fehl\"><\/span>Python 3.9 Installation schl\u00e4gt fehl<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">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 folgendem Link heruntergeladen werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/www.python.org\/downloads\/\" class=\"ub-content-link__anchor\">https:\/\/www.python.org\/downloads\/<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installation-auf-console-schlaegt-fehl-mit-fuer-virtuelle-umgebung\"><span class=\"ez-toc-section\" id=\"Installation_auf_Console_schlagt_fehl_mit_%E2%80%9E_fur_Virtuelle_Umgebung_%E2%80%A6%E2%80%9C\"><\/span>Installation auf Console schl\u00e4gt fehl mit \u201e.. f\u00fcr Virtuelle Umgebung \u2026\u201c <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pfade mal \u00fcberpr\u00fcfen, evtl. andere Python oder Espressif IDF Version w\u00e4hlen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"py-nicht-gefunden\"><span class=\"ez-toc-section\" id=\"py_nicht_gefunden\"><\/span>***.py nicht gefunden <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pfade \u00fcberpr\u00fcfen, ggf. aktualisieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"benoetigte-version-stimmt-nicht-programmxyzversion123\"><span class=\"ez-toc-section\" id=\"Benotigte_Version_stimmt_nicht_%E2%80%93_ProgrammXYZ%3EVersion123\"><\/span>Ben\u00f6tigte Version stimmt nicht \u2013 ProgrammXYZ&gt;=Version123<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Zum Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Die Versionen k\u00f6nnen mit pip angezeigt und auch aktualisiert werden. Wird eine \u00e4ltere Version ben\u00f6tigt, kann diese mit == angegeben werden. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auflisten der Versionen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\" id=\"flashen-bricht-mit-fehler-0x50-ab\"><span class=\"ez-toc-section\" id=\"Flashen_bricht_mit_Fehler_0x50_ab\"><\/span>Flashen bricht mit Fehler 0x50 ab<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In alten Versionen gibt es das Ziel (target) esp32s2 nicht, sondern nur esp32s2beta. Dies funktioniert zwar beim Compilieren, aber nicht beim Flashen. Ab Version &gt; 4.0 ist das funktionierende Ziel vorhanden. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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\" id=\"sonstiges\"><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\" id=\"wichtige-befehle\"><span class=\"ez-toc-section\" id=\"Wichtige_Befehle\"><\/span>Wichtige Befehle<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">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 Platzhalter 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\" id=\"wpls-table-1\"><thead><tr><th>Befehl<\/th><th>Beschreibung<\/th><\/tr><\/thead><tbody><tr><td>\u2013help<\/td><td>Listet 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 \u2026 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 erstellte Projektkonfiguration 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 Output des Boards aus. (Ctrl-] schlie\u00dft den Monitor)<\/td><\/tr><tr><td>app \/ bootloader \/ partiation_table<\/td><td>Sorgt daf\u00fcr, dass nur der angegebene 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 angegebene 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>Zwingt CMAKE dazu, erneut zu konfigurieren und zu bauen<\/td><\/tr><tr><td>python-clean<\/td><td>L\u00f6scht Python-Ausgaben aus dem Projektverzeichnis, sollte immer dann gestartet werden, wenn die Python Version gewechselt wird.<\/td><\/tr><tr><td>size<\/td><td>Zeigt ein paar Informationen zur Speichergr\u00f6\u00dfe der App.<\/td><\/tr><tr><td>size-components<\/td><td>Zeigt Informationen zum Speicherverbrauch der Komponenten<\/td><\/tr><tr><td>size-files<\/td><td>Zeigt Informationen zum Speicherverbrauch der Dateien<\/td><\/tr><tr><td>create-project [\u2013path &lt;Zielverzeichnis&gt;] |&lt;Projektname&gt;<\/td><td>Erstellt ein neues Projekt im Zielverzeichnis. Wird nur der Name angegeben, legt das Programm einen Ordner mit Projektname im aktuellen Pfad an. Mit path muss ein schon vorhandener leerer Ordner angegeben werden.<\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><\/tr><\/tbody><\/table><figcaption>Espressif IDF idf.py \u2013 Befehle (Quelle: <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\">Espressif<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span>)<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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\" id=\"beispiel-projektstruktur\"><span class=\"ez-toc-section\" id=\"Beispiel_Projektstruktur\"><\/span>Beispiel Projektstruktur<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hier die Beispiel-Projektstruktur (Quelle: <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\" class=\"ub-content-link__anchor\">Espressif<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> )<\/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\" id=\"wpls-table-2\"><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 die <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/espressif\/esp-idf\/blob\/178b122\/tools\/cmake\/project.cmake\" class=\"ub-content-link__anchor\">\/tools\/cmake\/project.cmake<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> 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 Verzeichnis. Komponenten werden dazu verwendet, um Projekte zu strukturieren\/modularisieren und um andere Bestandteile 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 \u2013 Projekt-Verzeichnis Bestandteile<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mehr hierzu in der <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-guides\/build-system.html\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\">Espressif Doku.<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"einrichten-der-umgebungsvariablen-fuer-die-console\"><span class=\"ez-toc-section\" id=\"Einrichten_der_Umgebungsvariablen_fur_die_Console\"><\/span>Einrichten der Umgebungsvariablen f\u00fcr die Console<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Um nicht immer Batch Dateien ausf\u00fchren zu m\u00fcssen und um den Weg f\u00fcr eine Programmieroberfl\u00e4che zu ebnen, habe ich bei mir alle Pfade in die Umgebungsvariablen von Windows eingetragen. Dies hat den Vorteil, dass ich einfach nur eine Console zu \u00f6ffnen brauche und 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\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-18_09_22-1.jpg 925w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-18_09_22-1-300x162.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-18_09_22-1-768x416.jpg 768w, https:\/\/www.fambach.net\/wp-content\/uploads\/2020-11-30-18_09_22-1-18x10.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Windows Umgebungsvariablen f\u00fcr das IDF.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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\" id=\"fazit\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Fazit<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe mich gefreut, dass es eine detaillierte 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 \u201einstabilsten\u201c Version gewesen. Man h\u00e4tte nur damit anfangen m\u00fcssen. Ich habe mich hier sicherlich nicht glorreich geschlagen, habe aber auch Stimmen im Internet vernommen, die gar Linux installiert haben, wo die Installation kein Problem darstellt. Somit frei nach dem Motto \u201ewe did it all wrong, but we did it\u201c verbuche ich dies unter lessons learned. Was ich mit den alten lessons learned, niemals die aktuelle und instabile Version zu verwenden, machen soll, wei\u00df ich noch nicht \ud83d\ude09 . Generell 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\u00e4tzlich 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 mitzuwirken.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"verwandte-beitraege\"><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\"><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/esp32-c3-das-spiel-mit-der-mouse\/\">ESP32-S2 das Spiel mit der Mouse<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\">Espressif IDF \u2013 GPIOs<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\">Espressif IDF \u2013 Tasks<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-menuconfig\/\">Espressif IDF \u2013 Menuconfig<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-timer\/\">Espressif IDF \u2013 Timer<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-log-nachrichten\/\">Espressif IDF \u2013 Lognachrichten<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-fehlerbehandlung\/\">Espressif IDF \u2013 Fehlerbehandlung<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-konsolenausgabe\/\">Espressif IDF \u2013 Konsolenausgabe<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-projekt-erstellen\/\">Espressif IDF \u2013 Projekt erstellen<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/\">LilyGo ESP32-Oled<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quellen\"><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Quellen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32s2\/get-started\/index.html\" target=\"_blank\" class=\"ub-content-link__anchor\">Getting Started with Espressif IDF<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/espressif\/vscode-esp-idf-extension\" target=\"_blank\" class=\"ub-content-link__anchor\">Github ESP-IDF Extension f\u00fcr VS-Code<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/espressif\/esp-idf\/issues\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\">Github Espressif IDF Fehlerliste<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" class=\"ub-content-link__anchor\">Python Webseite<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><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\" class=\"ub-content-link__anchor\">Espressif Build System<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Anyone who doesn't read this report... won't get any smarter either. I'll briefly describe the installation of the Espressif IDF for the ESP32-S2.<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/lilygo-esp32-oled\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"LilyGo ESP32-Oled\"<\/span> <span class=\"meta-nav\">\u2192<\/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],"class_list":["post-6629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-c","category-espressif-idf","category-windows","tag-esp32","tag-esp32-s2","tag-espressif","tag-espressif-idf","tag-idf","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/6629","targetHints":{"allow":["GET"]}}],"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":8,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/6629\/revisions"}],"predecessor-version":[{"id":18034,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/6629\/revisions\/18034"}],"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}]}}