{"id":4801,"date":"2026-05-22T13:17:32","date_gmt":"2026-05-22T11:17:32","guid":{"rendered":"https:\/\/g7itchme.wordpress.com\/?p=4801"},"modified":"2026-05-22T13:17:32","modified_gmt":"2026-05-22T11:17:32","slug":"das-ultimative-cyd-display-problem-wenn-das-display-nur-drei-viertel-anzeigt","status":"publish","type":"post","link":"https:\/\/technodidact.de\/en\/das-ultimative-cyd-display-problem-wenn-das-display-nur-drei-viertel-anzeigt\/","title":{"rendered":"Das ultimative CYD-Display-Problem: Wenn das Display nur drei Viertel anzeigt"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Autor: DerSchneider<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Einleitung: Ein gelbes Display, das mich zur Verzweiflung brachte<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es ist ein bekanntes Bild in den Entwicklerforen: Ein gl\u00fccklicher Bastler hat sein neues &#8222;Cheap Yellow Display&#8220; (CYD) ausgepackt, den ESP32-2432S028R an den USB-Port angeschlossen, die TFT_eSPI-Bibliothek installiert \u2013 und dann die Ern\u00fcchterung. Das Display zeigt zwar etwas an, aber&nbsp;<strong>nur die oberen drei Viertel<\/strong>. Das untere Viertel bleibt schwarz. Die Farben sind falsch, die Hoffnung schwindet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe genau dieses Problem durchgemacht. Nach Tagen des Herumprobierens, unz\u00e4hligen Kompilierungsfehlern und viel Frust m\u00f6chte ich meine L\u00f6sung teilen. Dieser Artikel ist eine&nbsp;<strong>praktische Anleitung f\u00fcr alle, die mit genau diesem Problem k\u00e4mpfen<\/strong>&nbsp;\u2013 kein technikhistorischer R\u00fcckblick, sondern eine handfeste Probleml\u00f6sung.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Das Problem im Detail: Was passiert da eigentlich?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor wir zur L\u00f6sung kommen, ein kurzer Blick auf das Problem selbst. Du hast eines dieser Boards:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Merkmal<\/th><th class=\"has-text-align-left\" data-align=\"left\">Dein Board<\/th><\/tr><\/thead><tbody><tr><td>Bezeichnung<\/td><td>ESP32-2432S028R (CYD V3)<\/td><\/tr><tr><td>USB-Anschluss<\/td><td>USB-C<\/td><\/tr><tr><td>Display-Treiber<\/td><td>ILI9341 (eigentlich)<\/td><\/tr><tr><td>Besonderheit<\/td><td>Invertierte Farben + geteilter Pin<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Du l\u00e4dst ein Beispiel hoch, aber das Display zeigt nur die oberen 240 Pixel von 320 Pixeln. Der untere Bereich bleibt schwarz. Das nennt sich das&nbsp;<strong>&#8222;drei-viertel-Problem&#8220;<\/strong>. Zus\u00e4tzlich sind die Farben falsch \u2013 rot wird blau, blau wird rot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die Ursache:<\/strong>&nbsp;Die Bibliothek erkennt dein Board nicht korrekt. Sie denkt, das Display w\u00e4re kleiner, als es tats\u00e4chlich ist.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Warum die &#8222;Standard&#8220;-L\u00f6sung nicht funktioniert<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die meisten Online-Anleitungen und die offizielle Dokumentation der TFT_eSPI-Bibliothek empfehlen diese Einstellung:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#define ILI9341_DRIVER\n#define TFT_WIDTH  240\n#define TFT_HEIGHT 320<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Einstellung&nbsp;<strong>funktioniert f\u00fcr dein V3-Board nicht<\/strong>. Sie f\u00fchrt genau zu dem beschriebenen Problem. Der Grund liegt in der Revision deines Boards. Es gibt mehrere Versionen des CYD:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Version<\/th><th class=\"has-text-align-left\" data-align=\"left\">USB<\/th><th class=\"has-text-align-left\" data-align=\"left\">Display-Treiber<\/th><th class=\"has-text-align-left\" data-align=\"left\">Ben\u00f6tigter Treiber<\/th><\/tr><\/thead><tbody><tr><td>V1 (alt)<\/td><td>Micro-USB<\/td><td>ILI9341<\/td><td>ILI9341_DRIVER<\/td><\/tr><tr><td>V2<\/td><td>Micro-USB<\/td><td>ILI9341<\/td><td>ILI9341_DRIVER<\/td><\/tr><tr><td><strong>V3 (dein Board)<\/strong><\/td><td><strong>USB-C<\/strong><\/td><td><strong>ILI9341 (invertiert)<\/strong><\/td><td><strong>ILI9341_2_DRIVER<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dein V3-Board ben\u00f6tigt einen&nbsp;<strong>anderen Treiber<\/strong>&nbsp;und eine&nbsp;<strong>zus\u00e4tzliche Inversion<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Die L\u00f6sung: Schritt-f\u00fcr-Schritt zur korrekten Konfiguration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 1: Die richtige User_Setup.h erstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffne die Datei&nbsp;<code>User_Setup.h<\/code>&nbsp;im TFT_eSPI-Bibliotheksordner. Bei Arduino IDE findest du sie unter:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">C:\\Users\\DEIN_BENUTZER\\Documents\\Arduino\\libraries\\TFT_eSPI\\User_Setup.h<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ersetze den gesamten Inhalt mit folgendem Code:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\/\/ ===================================================================<\/em>\n<em>\/\/ KORREKTE User_Setup.h f\u00fcr ESP32-2432S028R V3 (USB-C Version)<\/em>\n<em>\/\/ ===================================================================<\/em>\n\n<em>\/\/ F\u00fcr V3 (USB-C) MUSS ILI9341_2_DRIVER verwendet werden!<\/em>\n#define ILI9341_2_DRIVER\n\n<em>\/\/ NICHT verwenden f\u00fcr V3:<\/em>\n<em>\/\/ #define ILI9341_DRIVER     \/\/ F\u00fchrt zum 3\/4-Problem!<\/em>\n\n<em>\/\/ Display-Gr\u00f6\u00dfe (240x320 Pixel)<\/em>\n#define TFT_WIDTH  240\n#define TFT_HEIGHT 320\n\n<em>\/\/ F\u00fcr V3 zwingend erforderlich (sonst sind Farben invertiert!)<\/em>\n#define TFT_INVERSION_ON\n\n<em>\/\/ GPIO-Pins f\u00fcr Display<\/em>\n#define TFT_MISO  12\n#define TFT_MOSI  13\n#define TFT_SCLK  14\n#define TFT_CS    15\n#define TFT_DC    2\n#define TFT_RST   -1      <em>\/\/ -1 = nicht verwendet (geteilt mit roter LED!)<\/em>\n#define TFT_BL    21\n\n<em>\/\/ Backlight: HIGH = an<\/em>\n#define TFT_BACKLIGHT_ON HIGH\n\n<em>\/\/ Touch (XPT2046) - f\u00fcr sp\u00e4tere Projekte<\/em>\n#define TOUCH_CS  33\n\n<em>\/\/ SPI-Geschwindigkeiten (27MHz ist stabiler als 40MHz!)<\/em>\n#define SPI_FREQUENCY       27000000\n#define SPI_READ_FREQUENCY  20000000\n#define SPI_TOUCH_FREQUENCY  2500000\n\n<em>\/\/ Farb-Reihenfolge (RGB ist korrekt bei V3)<\/em>\n#define TFT_RGB_ORDER TFT_RGB\n\n<em>\/\/ Schriftarten laden<\/em>\n#define LOAD_GLCD\n#define LOAD_FONT2\n#define LOAD_FONT4\n#define LOAD_FONT6\n#define LOAD_FONT7\n#define LOAD_FONT8\n#define LOAD_GFXFF\n#define SMOOTH_FONT<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 2: User_Setup_Select.h pr\u00fcfen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffne die Datei&nbsp;<code>User_Setup_Select.h<\/code>&nbsp;im selben Ordner.&nbsp;<strong>Stelle sicher, dass NUR diese Zeile aktiv ist:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#include &lt;User_Setup.h&gt;   <em>\/\/ &lt;- DAS MUSS AKTIV SEIN!<\/em><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alle anderen Zeilen (wie&nbsp;<code>#include &lt;User_Setups\/Setup0_ILI9341_ESP32.h&gt;<\/code>) m\u00fcssen&nbsp;<strong>auskommentiert<\/strong>&nbsp;sein (mit&nbsp;<code>\/\/<\/code>&nbsp;am Anfang).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 3: Backlight einschalten (nicht vergessen!)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Viele vergessen diesen wichtigen Punkt: Die Backlight (Hintergrundbeleuchtung) muss explizit eingeschaltet werden. F\u00fcge in deinem Sketch hinzu:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pinMode(21, OUTPUT);      <em>\/\/ GPIO21 = TFT_BL<\/em>\ndigitalWrite(21, HIGH);   <em>\/\/ Backlight EIN<\/em><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 4: Den Test-Sketch hochladen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt kommt der Moment der Wahrheit. Lade folgenden Sketch auf dein Board:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#include &lt;Arduino.h&gt;\n#include &lt;TFT_eSPI.h&gt;\n\nTFT_eSPI tft = TFT_eSPI();\n\nvoid setup() {\n  Serial.begin(115200);\n  \n  <em>\/\/ Backlight einschalten (WICHTIG!)<\/em>\n  pinMode(21, OUTPUT);\n  digitalWrite(21, HIGH);\n  \n  <em>\/\/ Display initialisieren<\/em>\n  tft.init();\n  tft.setRotation(1);  <em>\/\/ 1 = Querformat (USB rechts\/links)<\/em>\n  \n  <em>\/\/ Farbtest<\/em>\n  tft.fillScreen(TFT_RED);\n  delay(1000);\n  tft.fillScreen(TFT_GREEN);\n  delay(1000);\n  tft.fillScreen(TFT_BLUE);\n  delay(1000);\n  tft.fillScreen(TFT_WHITE);\n  delay(1000);\n  tft.fillScreen(TFT_BLACK);\n  \n  <em>\/\/ Textausgabe<\/em>\n  tft.setTextColor(TFT_WHITE, TFT_BLACK);\n  tft.setTextSize(2);\n  tft.drawString(\"CYD V3 OK!\", 80, 100);\n  \n  Serial.println(\"Display funktioniert!\");\n}\n\nvoid loop() {}<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Was du nach der Korrektur sehen solltest<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Vorher (falsch)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Nachher (richtig)<\/th><\/tr><\/thead><tbody><tr><td>Nur obere 3\/4 des Displays werden genutzt<\/td><td><strong>Ganzer Bildschirm wird genutzt<\/strong><\/td><\/tr><tr><td>Farben sind invertiert (rot\/blau vertauscht)<\/td><td><strong>Farben sind korrekt<\/strong><\/td><\/tr><tr><td>Rote LED spinnt (weil Pin geteilt)<\/td><td><strong>Rote LED bleibt aus<\/strong>&nbsp;(wie gew\u00fcnscht)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Die h\u00e4ufigsten Stolpersteine \u2013 und wie du sie vermeidest<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Stolperstein 1: Die rote RGB-LED<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die rote LED auf dem Board teilt sich den Pin GPIO4 mit dem Display-Reset (<code>TFT_RST<\/code>). Wenn du die rote LED einschaltest (<code>digitalWrite(4, LOW)<\/code>), setzt du das Display zur\u00fcck \u2013 es st\u00fcrzt ab oder zeigt M\u00fcll an.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>L\u00f6sung:<\/strong>&nbsp;Lasse die rote LED dauerhaft aus (<code>digitalWrite(LED_RED, HIGH)<\/code>). Nutze nur die gr\u00fcne (GPIO16) und blaue (GPIO17) LED.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stolperstein 2: Die USB-C Buchse<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die USB-C Buchse deines Boards ist nicht vollst\u00e4ndig korrekt beschaltet. Die CC-Leitungen (Configuration Channel) fehlen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Auswirkung:<\/strong>&nbsp;Du kannst kein reines USB-C-zu-USB-C-Kabel verwenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>L\u00f6sung:<\/strong>&nbsp;Verwende entweder ein&nbsp;<strong>USB-A-auf-USB-C-Kabel<\/strong>&nbsp;oder einen&nbsp;<strong>USB-C-auf-USB-C-Adapter<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stolperstein 3: Veraltete Plattform-Versionen (f\u00fcr PlatformIO-Nutzer)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn du PlatformIO verwendest, musst du eine&nbsp;<strong>\u00e4ltere Version der ESP32-Plattform<\/strong>&nbsp;angeben. Die neueste Version ist nicht kompatibel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>L\u00f6sung:<\/strong>&nbsp;In deiner&nbsp;<code>platformio.ini<\/code>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ini<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[env:esp32dev]\nplatform = espressif32@6.5.0    # &lt;- WICHTIG: Version 6.5.0, nicht neuer!\nboard = esp32dev\nframework = arduino\n\nlib_deps = bodmer\/TFT_eSPI@^2.5.43<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Kompletter Test-Sketch f\u00fcr alle F\u00e4lle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hier ist ein vollst\u00e4ndiger Test-Sketch, der&nbsp;<strong>alle relevanten Funktionen pr\u00fcft<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\/**<\/em>\n * CYD V3 (ESP32-2432S028R) - Kompletter Hardware-Test\n * \n * Pr\u00fcft: Display, Farben, LDR, Touch-Kalibrierung, RGB-LED\n *\/\n\n#include &lt;Arduino.h&gt;\n#include &lt;TFT_eSPI.h&gt;\n\nTFT_eSPI tft = TFT_eSPI();\n\n<em>\/\/ Pin-Definitionen (aus deiner Dokumentation)<\/em>\n#define PIN_LED_GREEN  16\n#define PIN_LED_BLUE   17\n#define PIN_LDR        34\n#define PIN_TOUCH_CS   33\n\nvoid setup() {\n  Serial.begin(115200);\n  delay(1000);\n  \n  Serial.println(\"\\n=== CYD V3 HARDWARE-TEST ===\\n\");\n  \n  <em>\/\/ Backlight einschalten<\/em>\n  pinMode(21, OUTPUT);\n  digitalWrite(21, HIGH);\n  \n  <em>\/\/ RGB-LED (rote LED wird ignoriert!)<\/em>\n  pinMode(PIN_LED_GREEN, OUTPUT);\n  pinMode(PIN_LED_BLUE, OUTPUT);\n  digitalWrite(PIN_LED_GREEN, HIGH);\n  digitalWrite(PIN_LED_BLUE, HIGH);\n  \n  <em>\/\/ Display initialisieren<\/em>\n  tft.init();\n  tft.setRotation(1);\n  tft.fillScreen(TFT_BLACK);\n  \n  <em>\/\/ 1. FARBTEST (muss vollfl\u00e4chig sein)<\/em>\n  Serial.println(\"Test 1: Farben (Rot, Gruen, Blau, Weiss)\");\n  tft.fillScreen(TFT_RED);   delay(800);\n  tft.fillScreen(TFT_GREEN); delay(800);\n  tft.fillScreen(TFT_BLUE);  delay(800);\n  tft.fillScreen(TFT_WHITE); delay(800);\n  tft.fillScreen(TFT_BLACK);\n  \n  <em>\/\/ 2. TEXT-TEST<\/em>\n  Serial.println(\"Test 2: Textausgabe\");\n  tft.setTextColor(TFT_WHITE, TFT_BLACK);\n  tft.setTextSize(2);\n  tft.drawString(\"CYD V3 READY\", 70, 100);\n  delay(1500);\n  \n  <em>\/\/ 3. LICHT-SENSOR (LDR)<\/em>\n  Serial.println(\"Test 3: Lichtsensor (GPIO34)\");\n  tft.fillScreen(TFT_BLACK);\n  tft.setTextColor(TFT_CYAN, TFT_BLACK);\n  tft.setTextSize(1);\n  tft.drawString(\"LDR Wert:\", 20, 50);\n  \n  for(int i = 0; i &lt; 10; i++) {\n    int ldrValue = analogRead(PIN_LDR);\n    int percent = map(ldrValue, 0, 4095, 0, 100);\n    \n    <em>\/\/ Balkenanzeige<\/em>\n    int barWidth = map(ldrValue, 0, 4095, 0, 250);\n    tft.fillRect(20, 80, 250, 20, TFT_DARKGREY);\n    tft.fillRect(20, 80, barWidth, 20, TFT_YELLOW);\n    \n    tft.setCursor(20, 120);\n    tft.print(\"Wert: \");\n    tft.print(ldrValue);\n    tft.print(\" (\");\n    tft.print(percent);\n    tft.println(\"%)\");\n    \n    Serial.printf(\"  LDR: %d (%d%%)\\n\", ldrValue, percent);\n    delay(500);\n  }\n  \n  <em>\/\/ 4. RGB-LED TEST (nur gr\u00fcn und blau)<\/em>\n  Serial.println(\"Test 4: RGB-LED (Gruen + Blau)\");\n  tft.fillScreen(TFT_BLACK);\n  tft.drawString(\"LED Test\", 100, 80);\n  tft.drawString(\"Gruen...\", 110, 120);\n  digitalWrite(PIN_LED_GREEN, LOW);  <em>\/\/ Gr\u00fcn an<\/em>\n  delay(1000);\n  digitalWrite(PIN_LED_GREEN, HIGH); <em>\/\/ Gr\u00fcn aus<\/em>\n  \n  tft.fillScreen(TFT_BLACK);\n  tft.drawString(\"LED Test\", 100, 80);\n  tft.drawString(\"Blau...\", 110, 120);\n  digitalWrite(PIN_LED_BLUE, LOW);   <em>\/\/ Blau an<\/em>\n  delay(1000);\n  digitalWrite(PIN_LED_BLUE, HIGH);  <em>\/\/ Blau aus<\/em>\n  \n  <em>\/\/ 5. Touch-Kalibrierung (Startwerte)<\/em>\n  Serial.println(\"Test 5: Touch-Kalibrierung (Startwerte)\");\n  tft.fillScreen(TFT_BLACK);\n  tft.setTextColor(TFT_GREEN, TFT_BLACK);\n  tft.drawString(\"Touch Startwerte:\", 60, 80);\n  tft.setTextColor(TFT_WHITE, TFT_BLACK);\n  tft.drawString(\"x: 280 - 3860\", 80, 120);\n  tft.drawString(\"y: 340 - 3860\", 80, 150);\n  \n  <em>\/\/ ERFOLGSMELDUNG<\/em>\n  Serial.println(\"\\n=== ALLE TESTS BESTANDEN! ===\\n\");\n  tft.fillScreen(TFT_BLACK);\n  tft.setTextColor(TFT_GREEN, TFT_BLACK);\n  tft.setTextSize(2);\n  tft.drawString(\"TEST\", 120, 100);\n  tft.drawString(\"FERTIG!\", 100, 140);\n  tft.setTextSize(1);\n  tft.drawString(\"Board ist bereit!\", 90, 200);\n}\n\nvoid loop() {}<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Wichtige Hinweise f\u00fcr deine zuk\u00fcnftigen Projekte<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Bereich<\/th><th class=\"has-text-align-left\" data-align=\"left\">Hinweis<\/th><\/tr><\/thead><tbody><tr><td><strong>Rote LED<\/strong><\/td><td>Niemals verwenden (Pin-Konflikt mit TFT_RST)<\/td><\/tr><tr><td><strong>Backlight<\/strong><\/td><td>Immer einschalten:&nbsp;<code>digitalWrite(21, HIGH)<\/code><\/td><\/tr><tr><td><strong>Display-Rotation<\/strong><\/td><td><code>setRotation(1)<\/code>&nbsp;= Querformat, USB rechts<\/td><\/tr><tr><td><strong>Touch<\/strong><\/td><td>XPT2046 auf CS=33, wird separat initialisiert<\/td><\/tr><tr><td><strong>I2C<\/strong><\/td><td>SDA=27, SCL=22 (externe Sensoren)<\/td><\/tr><tr><td><strong>SD-Karte<\/strong><\/td><td>CS=5, teilt sich SPI-Bus mit Display<\/td><\/tr><tr><td><strong>Audio<\/strong><\/td><td>GPIO26 f\u00fcr PWM-Audio (Lautsprecher \u00fcber P4)<\/td><\/tr><tr><td><strong>Lichtsensor<\/strong><\/td><td>GPIO34 (analoger Eingang, 0-4095)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Die entscheidende Erkenntnis (f\u00fcr alle, die es eilig haben)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn du nur&nbsp;<strong>eine Sache<\/strong>&nbsp;aus diesem Artikel mitnehmen m\u00f6chtest, dann diese:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Dein ESP32-2432S028R V3 (mit USB-C) ben\u00f6tigt in der User_Setup.h:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#define ILI9341_2_DRIVER  <em>\/\/ NICHT ILI9341_DRIVER!<\/em>\n#define TFT_INVERSION_ON  <em>\/\/ Zwingend erforderlich!<\/em><\/pre>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Diese zwei Zeilen sind der Schl\u00fcssel. Alles andere sind Details.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit: Dein Board ist jetzt bereit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nach all den Tests und Korrekturen ist dein ESP32-2432S028R V3 nun&nbsp;<strong>perfekt konfiguriert<\/strong>. Das Display zeigt das gesamte Bild an, die Farben stimmen, und du kennst alle Einschr\u00e4nkungen (rote LED, USB-C).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Du kannst jetzt mit den spannenden Projekten beginnen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Touch-Men\u00fcs mit LVGL<\/li>\n\n\n\n<li>WLAN-Dashboards<\/li>\n\n\n\n<li>I2C-Sensoren (Temperatur, Luftfeuchtigkeit)<\/li>\n\n\n\n<li>SD-Karten-Dateibrowser<\/li>\n\n\n\n<li>Audio-Visualizer<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die vollst\u00e4ndige Dokumentation f\u00fcr das CYD findest du auf GitHub unter&nbsp;<a href=\"https:\/\/github.com\/witnessmenow\/ESP32-Cheap-Yellow-Display\" target=\"_blank\" rel=\"noopener\">witnessmenow\/ESP32-Cheap-Yellow-Display<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bodmer, TFT_eSPI Library Documentation:\u00a0<a href=\"https:\/\/github.com\/Bodmer\/TFT_eSPI\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Bodmer\/TFT_eSPI<\/a><\/li>\n\n\n\n<li>witnessmenow, ESP32-Cheap-Yellow-Display:\u00a0<a href=\"https:\/\/github.com\/witnessmenow\/ESP32-Cheap-Yellow-Display\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/witnessmenow\/ESP32-Cheap-Yellow-Display<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cool-web.de\/\" target=\"_blank\" rel=\"noopener\">Cool-Web.de<\/a>,\u00a0&#8222;ESP32-2432S028 mit 2.8&#8243; Touchscreen&#8220; (2025)<\/li>\n\n\n\n<li>Espressif Systems, ESP32 Technical Reference Manual (2024)<\/li>\n\n\n\n<li>PlattformIO, ESP32 Platform Releases:\u00a0<a href=\"https:\/\/registry.platformio.org\/platforms\/espressif32\" target=\"_blank\" rel=\"noopener\">https:\/\/registry.platformio.org\/platforms\/espressif32<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Autor: DerSchneider Einleitung: Ein gelbes Display, das mich zur Verzweiflung brachte Es ist ein bekanntes Bild in den Entwicklerforen: Ein gl\u00fccklicher Bastler hat sein neues &#8222;Cheap Yellow Display&#8220; (CYD) ausgepackt, den ESP32-2432S028R an den USB-Port angeschlossen, die TFT_eSPI-Bibliothek installiert \u2013 und dann die Ern\u00fcchterung. Das Display zeigt zwar etwas an, aber&nbsp;nur die oberen drei Viertel. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42,45,26],"tags":[1170,1732,1794,2229,3236,6966,7296],"class_list":["post-4801","post","type-post","status-publish","format-standard","hentry","category-elektrotechnik","category-hardware-im-test","category-mit-den-handen","tag-cheap-yellow-display","tag-display-ausrichtungsproblem","tag-drei-viertel-problem","tag-esp32-2432s028r","tag-ili9341_2_driver","tag-tft_espi","tag-usb-c-cyd-v3"],"_links":{"self":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/4801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/comments?post=4801"}],"version-history":[{"count":0,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/4801\/revisions"}],"wp:attachment":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/media?parent=4801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/categories?post=4801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/tags?post=4801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}