Guition JC8012P4A1C_I_W_Y Display für die Wetterstation 3.0

In diesem Artikel möchte ich euch eine zweite Variante der ESP32 Wetterstation 3.0 vorstellen, die ein Guition JC8012P4A1C_I_W_Y Display verwendet. Die Spezifikationen dieses Displays sind recht ähnlich zu denen des Waveshare-Displays

  • SoC: Espressif ESP32-P4 (Dual-Core RISC-V @360 MHz + LP-Core @40 MHz)
  • Coprozessor: ESP32-C6 (WiFi 6, Bluetooth 5.4, via SDIO angebunden)
  • Speicher: 32 MB PSRAM, 16 MB Flash
  • Display: DSI 10,1 Zoll, IPS Panel mit 800 x 1280 Pixel, JD9365 Treiber Chip
  • Kamera: Direkt im Display integriert
  • Audio: ES8311 Codec, NS4150 Class-D Verstärker
  • Schnittstellen:
    • 3x USB Type-C
    • UART, Lautsprecher, Batterie, I2C
    • GPIO Header
  • Stromversorgung: USB-C

Ich weiß nicht, ob man das Guition JC8012P4A1C_I_W_Y noch zu den sogenannten Cheap Yellow Displays (CYD) zählt oder ob damit nur die kleinen Displays gemeint sind. Im April 2025 hat es auf AliExpress noch knapp unter 40 Euro gekostet, inzwischen ist der Preis aber auf über 60 Euro gestiegen.

Guition JC8012P4A1C_I_W_Y

Da das JC8012P4A1C_I_W_Y eine Auflösung von 800 x 1280 Pixel hat und auf dem Board ein I2C Stecker vorhanden ist, erfüllt es alle Voraussetzungen, die für die Wetterstation nötig sind. Lediglich der Display Treiber muss für das Guition Display angepasst und ein passendes Gehäuse konstruiert werden.

Unterschiede zwischen Guition JC8012P4A1C und Waveshare Display

Beide Boards verwenden ein 10,1-Zoll-Panel mit JD9365-Controller, das über zwei MIPI-DSI-Lanes angebunden ist und nativ 800 x 1280 Pixel im Hochformat liefert. Der JD9365 arbeitet mit einem seitenbasierten Registermodell, bei dem Register 0xE0 die aktive Seite umschaltet und danach Spannungen, VCOM, die beiden Gammakurven und das Gate-In-Panel-Mapping geschrieben werden. Diese Sequenz umfasst mehrere hundert Registerzugriffe und unterscheidet sich zwischen den beiden Panels. 

Auch die Übertragungsparameter sind verschieden. Das Waveshare Display läuft mit 1500 Mbit pro Lane und 80 MHz Pixeltakt, das Guition-Display mit 1000 Mbit und 60 MHz, dazu kommen abweichende vertikale Austastlücken. Der Reset-Pin des Panels liegt beim Guition-Board auf GPIO 27, beim Waveshare-Board ist er nicht verdrahtet.

Ein weiterer Unterschied ist die Helligkeitsregelung. Waveshare steuert die Hintergrundbeleuchtung über einen eigenen I2C-Chip auf Adresse 0x45, der nach zwei Freischaltbefehlen den Helligkeitswert in Register 0x96 entgegennimmt. Guition steuert die Beleuchtung mit einem LEDC-PWM-Kanal über GPIO 23. Da der LEDC-Kanal mit 8 Bit Auflösung konfiguriert ist, ergibt sich derselbe Wertebereich von 0 bis 255 wie beim Waveshare-Board.

Der größte Unterschied liegt beim Touchcontroller. Für den GT911 von Waveshare gibt es einen fertigen Espressif-Treiber, für den GSL3680 von Guition nicht. Dieser Chip hat keinen eigenen Flash-Speicher. Seine Firmware liegt als 4587 Einträge großes Array im Flash des ESP32-P4 und wird bei jedem Start über die I2C Schnittstelle in den Chip geschrieben. Danach prüft der Treiber über ein Statusregister, ob der Controller angelaufen ist.

Die Firmware der Wetterstation kapselt beide Varianten hinter einer gemeinsamen Schnittstelle aus Initialisierung, Displayhandle und Helligkeit. Welche Implementierung übersetzt wird, entscheidet eine Option in menuconfig, und der Build erzeugt pro Board ein eigenes Binary.

Gehäuse für das Guition JC8012P4A1C

Auch wenn beide Displays eine Diagonale von 10,1 Zoll haben, unterscheidet sich der mechanische Aufbau deutlich. Daher musste ich das Gehäuse für das Guition-Display neu konstruieren. Wie bei der Waveshare-Version besteht es aus vier Teilen: Displayrahmen, Display-Hauptteil, Rückseite und Sockel. Der Sockel ist unverändert von der Waveshare-Variante übernommen und wird auch genauso montiert.

Gehäuseteile für das Guition JC8012P4A1C

Die anderen drei Teile folgen dem gleichen Konzept, sind aber an die Abmessungen und den Aufbau des Guition-Boards angepasst. Ein Unterschied betrifft die Receiver-Platine. Beim Waveshare-Display wird sie direkt auf das Mikrocontroller-Board gesteckt, bei der Guition-Variante ist sie zusammen mit dem SEN66 auf die Rückseite geschraubt.

Bevor man die Sensoren anschließt, sollte man sich den I2C-Stecker genau ansehen. Auf dem Board ist die Belegung mit SDA, SCL, 3V3 und GND beschriftet, tatsächlich ist die Reihenfolge aber genau gespiegelt: GND, 3V3, SCL, SDA. Wer sich auf den Aufdruck verlässt, vertauscht Versorgung und Masse und riskiert, die angeschlossenen Sensoren zu beschädigen.

Falsche I2C Beschriftung Guition JC8012P4A1C

Für den Ausdruck habe ich ein sehr altes Filament verwendet, daher ist das Ergebnis leider nicht besonders hübsch geworden. Diese Version ist mir ehrlich gesagt aber auch nicht so wichtig, weil es nur ein Versuch war, aus meinen restlichen Teilen eine zweite Wetterstation zu bauen.

Und so schaut die Wetterstation mit dem Guition-Display aus. Grundsätzlich funktioniert sie, allerdings ist der Kontrast des Waveshare-Displays im direkten Vergleich deutlich höher. Auch die wärmeren Farben des Waveshare-Displays gefallen mir besser.

Wettterstation mit Guition JC8012P4A1C

Damit die OTA-Updates für beide Typen funktionieren, musste ich die GitHub-Action anpassen, so dass jetzt für jedes Display eine separate Firmware gebaut wird.

Damit wäre diese Variante fertig, allerdings bin ich nicht sicher, ob es noch ein Problem gibt. Während der Testphase lief die Stromversorgung über einen Raspberry Pi, und alle paar Tage ist der ESP32-P4 mit der Meldung Brownout detector was triggered neu gestartet. Derzeit ist mir noch nicht klar, ob das am Raspberry Pi liegt oder ob die 3,3-Volt-Versorgung auf dem Board tatsächlich zu schwach ist. Solange das nicht geklärt ist, rate ich zur Waveshare-Variante, bei der dieses Problem noch nie aufgetreten ist.

Im GitHub-Repository findet ihr den aktualisierten Source-Code, der jetzt beide Displays unterstützt, sowie die Konstruktionsdateien für das Guition-Gehäuse.

Konversation wird geladen