CrowPanel Advance 7" ESP32-P4: High-Performance HMI mit RISC-V und MIPI-DSI
Nachdem ich mir vor einiger Zeit bereits das CrowPanel Advance Display mit dem ESP32-S3 und dessen Update angesehen habe, stelle ich euch diesmal das neue CrowPanel Advance 7" ESP32-P4 HMI AI Display vor.
Während der ESP32-S3 für viele HMI-Anwendungen bereits viele Möglichkeiten bietet, gibt es dort jedoch ein grundlegendes Problem. Das parallele Display belegt bereits 20 GPIO Pins des Mikrocontrollers, nur um die Bilddaten zu übertragen. Das hat zur Folge, dass man entweder kaum noch andere Peripherie auf dem Display verwenden kann, oder mit umständlichen Hardware-Tricks arbeiten muss. Auf den alten CrowPanels wurden dafür IO-Extender, ein zusätzlicher Mikrocontroller oder analoge Schalter verwendet.
Durch die Verwendung des ESP32-P4, dem aktuellen Flaggschiff von Espressif, fallen diese Einschränkungen nun weg. Der ESP32-P4 bietet neben 55 GPIOs zusätzlich dedizierte High-Speed-Schnittstellen: MIPI-DSI für das Display und MIPI-CSI für Kameras. MIPI steht dabei für Mobile Industry Processor Interface - ein Standard, der ursprünglich entwickelt wurde, um in Smartphones den Hauptprozessor effizient und schnell mit Peripherie wie Kameras, Displays oder Sensoren zu verbinden.
Die technischen Daten des neuen Displays lassen eigentlich keine Wünsche offen:
- SoC: Espressif ESP32-P4 (Dual-Core RISC-V @360 MHz + LP-Core @40 MHz )
- Speicher: 32 MB PSRAM, 16 MB NOR Flash
- Display: 7 Zoll IPS Panel (1024 x 600 Pixel, 400 cd/m²), kapazitiver Touch (GT911)
- Schnittstellen: MIPI-DSI (2-Lane) und MIPI-CSI (2-Lane) für Kamera
- ESP32-C6 (WiFi 6, Bluetooth 5.4, Zigbee/Thread/Matter Support)
- Steckplatz für Module (z.B. LoRa SX1262, nRF2401)
- Peripherie: 1x USB 2.0 (OTG), 1x USB-UART, microSD Slot, Digitales Mikrofon, Lautsprecher-Verstärker, Laderegler für LiPo-Akku, diverse GPIOs (I2C, UART)
Wie schon bei den Vorgängern ist die Verarbeitungsqualität des Boards sehr hoch. Das Platinenlayout ist aufgeräumt und bietet sogar Platz für zwei kleine Lautsprecher, die mit dem Display mitgeliefert werden.
Die wichtigsten Komponenten auf dem Display sind:
- Das Herzstück bildet der ESP32-P4 SoC. Er ist deutlich größer als die gewohnten S3-Chips, was primär an den vielen GPIOs und den MIPI Hochgeschwindigkeitsschnittstellen liegt.
- Das oben links aufgelötete ESP32-C6-MINI-1 Modul übernimmt die gesamte Funkkommunikation (WiFi 6, Bluetooth, Zigbee), da der P4 selbst keine Funkeinheit besitzt.
- Oben rechts befindet sich wieder der Steckplatz für die optionalen Wireless-Module (z.B. für LoRa).
- Multimedia-Schnittstellen:
- Mitte: Der breite Flachband-Anschluss (DSI-LCD) verbindet das Display via MIPI-DSI.
- Oben Mitte: Der Anschluss (CSI-CAM) ist der MIPI-CSI Port für Kamera. Dieser ist mit "CIS-CAM" beschriftet. Gemeint ist hier wohl die CSI Schnittstelle.
- USB-Ports (Rechts):
- UART0: Dient zum Flashen und Debuggen (klassisch via USB-to-UART Bridge).
- USB2.0: Dies ist der native USB-Port des P4 (mit bis zu 480 MBit/s), nutzbar für OTG-Anwendungen (z.B. Anschluss von Tastaturen oder USB-Sticks).
- Unten befinden sich zwei Anschlüsse für Lautsprecher (SPK-L / SPK-R), was Stereo-Sound ermöglicht, sowie ein Onboard-Mikrofon (oben links, beschriftet mit dem Mikrofon-Symbol).
- GPIOs (Unten): Für Erweiterungen ist die schwarze Pinleiste unten wichtig. Hier sind diverse GPIOs sowie Spannungsversorgung (3V3, 5V) herausgeführt.
- UART1: Über diese Schnittstelle lässt sich der ESP32-C6 programmieren.
- Daneben gibt es noch Anschlüsse für I2C, UART3 und einen LiPo-Akku.
Um die Verschaltung der Komponenten besser zu verdeutlichen, habe ich den Aufbau wieder in einem Diagramm zusammengefasst:
In diesem Diagramm sieht man auf den ersten Blick, dass endlich keinerlei Kompromisse mehr nötig sind, um alle Komponenten anzubinden.
Ein interessantes Detail ist der Mikrocontroller neben dem TP4059 Laderegler. Normalerweise würde man alle nötigen Pins mit dem ESP32-P4 verbinden. Stattdessen verwendet Elecrow dafür einen Mikrocontroller vom Typ STC8H1K08, der mit dem ESP32-P4 über den I2C-Bus verbunden ist. Der Laderegler wird also wie ein spezielles I2C Gerät angesprochen. Im GitHub Repository mit den Beispielen zu diesem Display habe ich zwar keine Infos gefunden, wie der Mikrocontroller angesprochen wird, aber in den Beispielen zu der 5 Zoll Variante des Displays gibt es den entsprechenden Source Code.
Ein weiterer Unterschied zum Vorgängermodell betrifft die Echtzeituhr. Während beim ESP32-S3 Display noch ein dedizierter RTC-Baustein (BM8563) samt Halterung für eine Pufferbatterie verbaut war, wurde dieser Teil bei diesem Display eingespart. Für Anwendungen bedeutet das, dass die Zeit bei jedem Neustart verloren geht, sofern kein Akku angeschlossen ist, oder man die Uhrzeit primär über NTP synchronisieren muss.
Wireless Module
Auch das neue CrowPanel Display unterstützt wieder Wireless Module, um die Funktionalität des Displays zu erweitern. Die Module werden über einen 2 x 7 Pin GPIO-Header mit dem Display verbunden. Die Anordnung der Pins sieht folgendermaßen aus:
Derzeit bietet Elecrow folgende Module an:
- Wi-Fi HaLow: Dieses Modul nutzt den Wi-Fi HaLow Standard (IEEE 802.11ah). Im Gegensatz zum herkömmlichen WLAN arbeitet diese Technik nicht im 2,4 GHz Band, sondern im Sub-1-GHz Bereich (ca. 900 MHz). Der physikalische Vorteil dieser niedrigeren Frequenz ist eine deutlich höhere Reichweite (bis zu 1 km) sowie eine wesentlich bessere Durchdringung von Wänden und massiven Hindernissen. Technisch füllt Wi-Fi HaLow damit die Lücke zwischen dem extrem reichweitenstarken, aber langsamen LoRa und dem schnellen, aber kurzreichweitigen Standard-WLAN.
- ESP32-H2: Dieses Modul basiert auf dem IEEE 802.15.4 Standard sowie Bluetooth 5.2 (LE). Im Gegensatz zur klassischen WLAN-Verbindung ist diese Technik speziell auf energiesparende Mesh-Netzwerke ausgelegt, wie man sie aus der Hausautomation kennt. Der technische Vorteil liegt in der nativen Unterstützung von Protokollen wie Zigbee 3.0 und Thread, was das Modul zur idealen Basis für den neuen Matter-Standard macht. Technisch ermöglicht das ESP32-H2 damit die nahtlose Integration in moderne Smart-Home-Ökosysteme, bei denen stabile Vernetzung wichtiger ist als hohe Datenraten.
- ESP32-C6: Auf den ersten Blick wirkt dieses Modul redundant, da bereits ein C6-Chip fest auf dem Mainboard verlötet ist. Der entscheidende Unterschied zum vorhin genannten H2-Modul ist jedoch das WLAN: Während der H2 rein auf 802.15.4 (Thread/Zigbee) beschränkt ist, beherrscht das C6-Modul zusätzlich WiFi 6. Das ermöglicht Szenarien, die mit dem H2 nicht umsetzbar sind: Man erhält eine zweite, physikalisch getrennte WLAN-Schnittstelle. So kann das Display beispielsweise gleichzeitig als Client im Heimnetzwerk hängen (über den Onboard-Chip) und parallel einen eigenen Access Point für Sensoren oder ein dediziertes ESP-NOW Mesh-Netzwerk aufspannen (über das Modul), ohne dass sich die Traffic-Lasten gegenseitig stören.
- nRF2401: Dieses Modul basiert auf dem extrem beliebten nRF24L01+ Chip. Es arbeitet zwar wie WLAN im 2,4-GHz-Band, nutzt aber ein proprietäres, sehr schlankes Protokoll (Enhanced ShockBurst). Der Vorteil liegt in der direkten, verzögerungsfreien Kommunikation bei minimalem Energieverbrauch. Technisch ist dieses Modul ideal für einfache Punkt-zu-Punkt-Verbindungen, etwa für eine Fernbedienung oder einen Sensor, der Daten direkt an das Display senden soll, ohne den Overhead eines komplexen WLAN-Netzwerks.
- SX1262: Dieses Modul basiert auf dem Semtech SX1262 Transceiver und nutzt die LoRa-Technologie (Long Range) im Sub-GHz-Bereich. Im Gegensatz zu den anderen Funkstandards liegt der Fokus hier auf maximaler Reichweite, die im Freifeld mehrere Kilometer betragen kann, allerdings bei sehr niedriger Datenrate. Der technische Vorteil des SX1262 gegenüber älteren LoRa-Chips (wie dem SX127x) ist der effizientere Stromverbrauch und die höhere Sendeleistung. Technisch ist dieses Modul damit prädestiniert für LoRaWAN-Anwendungen oder das beliebte Meshtastic-Projekt, um dezentrale Text-Messenger-Netzwerke komplett ohne Internet und Mobilfunk aufzubauen.
Ich halte die Wireless Module immer noch für ein großartige Idee. Sie erlauben es, das Board gezielt für spezifische Szenarien zu erweitern. Das macht das CrowPanel zum absoluten Allrounder: Je nach Projektanforderung rüstet man einfach den benötigten Funkstandard nach, sei es LoRa für hohe Reichweiten oder Zigbee für das Smart Home. Natürlich haben auch andere Displays Erweiterungs-Ports, aber die Hersteller bieten keine entsprechenden Hardware-Module an.
Entwicklung mit ESP-IDF
In meinen vorherigen Tests der Elecrow Displays habe ich eine kleine Demo mit dem ESP-IDF Framework entwickelt, um einige Features des Displays und vor allem die Verwendung der LVGL Bibliothek zu demonstrieren. Das ist diesmal nicht nötig, da Elecrow ein umfangreiches Repository auf GitHub bereitgestellt hat, in dem alle Aspekte des Displays behandelt werden:
- Grundlagen: Hello World, LED, serielle Kommunikation
- Display & Touch: LVGL UI-Entwicklung, Touchscreen-Handling
- Multimedia: Audio-Aufnahme/Wiedergabe, Kamera-Livestream, SD-Karten-Zugriff
- Wireless: LoRa (SX1262), nRF2401, WiFi-Funktionen
- Peripherie: USB 2.0, Temperatur/Luftfeuchtigkeit
Zu den Beispielen gibt es ein umfangreiches Tutorial, in dem jedes Beispiel mit Fotos genau erklärt wird. Zusätzlich gibt es noch ein Wiki mit grundlegenden Infos zur Installation des Espressif Plugins für Visual Studio Code und anderen Themen.
Ich habe einige der Beispiele ausprobiert und sie ließen sich fast alle problemlos kompilieren und flashen. Ein kleines Detail muss man jedoch beachten, um Fehlermeldungen zu vermeiden: In manchen Beispielen wurde der lokale .vscode Ordner mit ins Repository hochgeladen. Darin befindet sich eine settings.json, die auf lokale Pfade des Entwicklers verweist. Der Fix ist simpel: Einfach den kompletten .vscode Ordner löschen, bevor man das Projekt in VS Code öffnet. Danach baut die Umgebung die Konfiguration sauber neu auf und das Projekt lässt sich fehlerfrei kompilieren.
Passend zu meinem kürzlich entwickelten LoRa-Testtool wollte ich ausprobieren, ob mein Heltec Board Daten an das Display senden kann. Zunächst testete ich ein älteres LoRa-Modul, was jedoch zu Fehlern im ESP32-Log führte. Dieses Modul scheint leider defekt zu sein. Mit der neuen Version 1.1, die Elecrow mitgeschickt hat, funktionierte die Verbindung dann aber auf Anhieb.
Die Ausgabe auf dem Screen ist zwar schlicht, beweist aber, dass das Display die LoRa-Pakete korrekt empfängt:
Im Beispielcode von Elecrow musste ich dazu lediglich die Frequenz anpassen, und schon stand die Verbindung. An diesem kleinen Experiment sieht man sehr schön, wie flexibel das Display durch die verschiedenen Module in der Praxis einsetzbar ist.
Funkverbindungen: Das Zusammenspiel von P4 und C6
Im Gegensatz zu fast allen anderen Chips der ESP32-Familie positioniert Espressif den ESP32-P4 als reine High-Performance MCU. Das bedeutet, der P4 besitzt keinerlei Hardware für WiFi oder Bluetooth. Um dieses Manko auszugleichen, wird ihm in der Regel ein weiterer Mikrocontroller wie der ESP32-C6 zur Seite gestellt. Auch das CrowPanel Advance ESP32-P4 Display verwendet den C6 als Coprozessor.
Für die Entwicklung hätte das weitreichende Konsequenzen. Sobald man WiFi oder Bluetooth verwenden möchte, müssten eigentlich zwei Mikrocontroller programmiert und ein Kommunikationsprotokoll zwischen ihnen implementiert werden. Espressif hat daher die ESP-Hosted-MCU Lösung entwickelt, um diese Komplexität zu vermeiden. Dabei läuft auf dem C6 eine spezielle Firmware, die ihn quasi zu einem reinen WLAN-Adapter degradiert. Der P4 sendet Netzwerkbefehle über SPI/SDIO an den C6, und dieser führt sie aus. Für die Applikation auf dem P4 fühlt es sich so an, als hätte er natives WLAN. Das folgende Diagramm von Espressif verdeutlicht die Komplexität dieser Lösung:
Doch leider gibt es hier ein Problem. ESP-Hosted unterstützt aktuell (noch) kein ESP-NOW. Ich bin zwar mit einem Entwickler von Espressif in Kontakt und es ist auch geplant, ESP-NOW zu integrieren, aber es gibt dafür noch keinen Zeitplan. Sobald jedoch Espressif das ESP-NOW Protokoll implementiert hat, könnte man die Firmware des ESP32-C6 aktualisieren und auch dieses Protokoll nutzen. Dazu integrieren andere Hersteller wie Waveshare oder sogar die billigen gelben Displays einen UART-Port, um den ESP32-C6 mit einem einfachen USB-Seriell Adapter flashen zu können.
Dieser UART-Port fehlt leider auf dem CrowPanel Display. Im Schaltplan des Displays sind zwar einige Lötpads eingezeichnet, diese sind aber nicht zugänglich. Daher ist es auf diesem Display grundsätzlich nicht möglich, jemals die Firmware des C6 zu aktualisieren. Ich habe dazu auch schon den Support von Elecrow kontaktiert, bisher aber noch keine Antwort erhalten. Natürlich könnte man jetzt einfach ein C6-Modul im Erweiterungsslot verwenden, aber dadurch müsste man ein eigenes Kommunikationsprotokoll zwischen dem P4 und dem C6 implementieren und könnte auch keine anderen Module mehr verwenden.
Fazit
Das CrowPanel Advance 7" ESP32-P4 ist ein großartiges Display. Die Hardware ist sauber verarbeitet und es bietet jede Menge Erweiterungsmöglichkeiten. Mit dem ESP32-P4 sind auch rechenintensive Applikationen bis hin zu kleinen KI-Modellen problemlos umsetzbar. Der einzige Schwachpunkt ist der fehlende UART-Port für den ESP32-C6, wodurch es nicht möglich ist, die ESP-Hosted Lösung von Espressif zu aktualisieren. Wenn man aber nur WiFi oder Bluetooth Verbindungen für sein Projekt braucht, gibt es derzeit kaum ein besseres und flexibleres Display am Markt. Elecrow bietet das Display übrigens auch in 5", 9" und 10" an. Die Hardware ist abgesehen von der Display-Größe bei allen Varianten identisch.
Für meine Wetterstation bedeutet das aber, dass dieses Display keine Option ist, da ESP-NOW das zentrale Protokoll der Funksensoren ist. Ich werde zwar in Zukunft auch das LoRa Protokoll unterstützen, aber das ist nur eine Erweiterung und soll die bisherigen Sensoren nicht ersetzen.

