// ===================================================================================== // JC4880P443C-I-W - Touch-Display-Firmware fuer die Dual-PID-Siebtraegersteuerung // config.h - zentrale Konfiguration (Pins, UART, Protokoll) // ===================================================================================== // // Ziel-Hardware: Guition JC4880P443C-I-W // - MCU: ESP32-P4 (UI / LVGL) // - WLAN: ESP32-C6 (hier NICHT genutzt - WLAN/Webinterface laufen auf der Hauptplatine) // - Display: ST7701 (480 x 800 IPS, MIPI-DSI) // - Touch: GT911 (kapazitiv, I2C) // - Audio: ES8311 (optional) // // Diese Firmware ist ein reiner UART-Client. Quelle der Wahrheit ist die Hauptplatine // (ESP32-S3, Dual_PID_FastHeatUp.ino). Siehe Doku/JC-Display_UART-Protokoll.md. // ===================================================================================== #pragma once // ------------------------------------------------------------------------------------- // Panel-Modus (C-sicher hier definiert, da auch board_bringup.c ihn liest) // 0 = Stub-Modus (kein Display-Treiber; Protokoll/Logik-Test) // 1 = echte Hardware (Hersteller-BSP; siehe README) // ------------------------------------------------------------------------------------- #ifndef JC_USE_REAL_PANEL #define JC_USE_REAL_PANEL 1 #endif // ------------------------------------------------------------------------------------- // DIAGNOSE: interner UART-Loopback-Selbsttest // 1 = TX wird chip-intern auf RX gelegt (kein Draht, keine Pin-Unsicherheit). // -> Laeuft "RX byte" im Debug-Panel hoch, sind Firmware+UART ok und das // Problem liegt definitiv an Pins/Verkabelung. Bleibt es 0, ist es die // Firmware/UART-Seite. NACH dem Test wieder auf 0 setzen! // ------------------------------------------------------------------------------------- #ifndef UART_SELFTEST_INTERNAL_LOOPBACK #define UART_SELFTEST_INTERNAL_LOOPBACK 0 #endif // ------------------------------------------------------------------------------------- // DIAGNOSE: gruenes On-Screen-Debug-Panel (UART-Zaehler/letzte Rohzeile) // 0 = aus (normale UI). 1 = Panel unten einblenden (fuer UART-Fehlersuche). // ------------------------------------------------------------------------------------- #ifndef SHOW_DEBUG_OVERLAY #define SHOW_DEBUG_OVERLAY 0 #endif // ------------------------------------------------------------------------------------- // UART zur Hauptplatine // ------------------------------------------------------------------------------------- // Gegenseite (S3): Serial1, 230400 8N1, TX=GPIO43 / RX=GPIO44. // Verkabelung gekreuzt: S3-TX(43) -> P4-RX, S3-RX(44) -> P4-TX, GND <-> GND. // // Pins laut Schaltplan "4_USB&IO.png" (Expand-IO-Header JP1). Frei herausgefuehrte // P4-GPIOs dort: 52/51/50/49/35/34/33/32/31/30/29/28 (+ ES_I2C, +3V3/+5V/GND). // Die rechte Header-Spalte (C6_U01TXD/C6_I10RXD/...) gehoert zum ESP32-C6 -> NICHT nutzen. // Gewaehlt: P4-TX = GPIO33, P4-RX = GPIO31. // JP1 GPIO33 (P4 TX) ----> S3 GPIO44 (RX) // JP1 GPIO31 (P4 RX) <---- S3 GPIO43 (TX) // JP1 GND ---- S3 GND #define DISPLAY_UART_PORT Serial1 #define DISPLAY_UART_BAUDRATE 230400 #define DISPLAY_UART_TX_PIN 33 #define DISPLAY_UART_RX_PIN 31 // ------------------------------------------------------------------------------------- // Firmware // ------------------------------------------------------------------------------------- #define DISPLAY_FW_VERSION "1.0.13" // Firmware-Stand der P4-Display-Steuerung (Info-Seite) // ------------------------------------------------------------------------------------- // Protokoll // ------------------------------------------------------------------------------------- #define PROTO_EXPECTED_VERSION 2 // muss zur S3-Firmware passen (TOUCH_UART_PROTOCOL_VERSION) #define PROTO_RX_LINE_MAX 2048 // max. eingehende Zeilenlaenge (Bytes) #define PROTO_HEARTBEAT_MS 5000 // Intervall fuer 'ping' (S3-Timeout = 15 s) #define PROTO_HELLO_RETRY_MS 2000 // erneuter 'hello'-Versuch, solange nicht verbunden #define PROTO_LINK_TIMEOUT_MS 8000 // ohne empfangene Nachricht -> Verbindung gilt als tot // ------------------------------------------------------------------------------------- // Display / LVGL // ------------------------------------------------------------------------------------- // Querformat: Panel ist physisch 480x800, per Rotation 90 (pins_config.h) -> 800x480. #define DISP_HOR_RES 800 #define DISP_VER_RES 480 #define LVGL_TICK_MS 5 // Debug-Ausgaben ueber USB-CDC (nicht ueber den Display-UART!) #define DBG_SERIAL Serial #define DBG_BAUD 115200