fix(P4): Menü-Vorhang wieder öffenbar, RGB888 bleibt Vorgabe (1.6.5)
Zwei der drei Tempo-Maßnahmen aus 1.6.4 haben sich am Gerät als untauglich erwiesen und stehen wieder auf ihrem alten Wert: - WS7_COLOR_BITS = 24: Die Bridge dieses Panels nimmt kein RGB565 an. - WS7_PARTIAL_REFRESH = 0: Der Menü-Vorhang ist halbtransparent und wird in den gerade aktiven Bildpuffer eingemischt. Die nächste Zustandsmeldung der S3 zeichnet in den zweiten Puffer, der ihn nie bekommen hat - der Vorhang war damit sofort wieder weg und der Knopf schien wirkungslos. Nutzbar wäre der Modus erst, wenn der LVGL-Port die geänderten Bereiche zwischen beiden Puffern abgleicht. Beide bleiben als Schalter erhalten, mit Notiz woran sie gescheitert sind. WS7_PARALLEL_RENDER bleibt eingeschaltet - von den drei Maßnahmen trägt nur diese. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y
This commit is contained in:
co-authored by
Claude Opus 5
parent
8b7978507c
commit
e8fdc60fea
@@ -1,3 +1,17 @@
|
||||
Version 1.6.5:
|
||||
- Zwei der drei Tempo-Maßnahmen aus 1.6.4 haben sich am Gerät als untauglich erwiesen und
|
||||
stehen wieder auf ihrem alten Wert. Sie bleiben als Schalter erhalten, mit Notiz, woran
|
||||
sie gescheitert sind.
|
||||
* WS7_COLOR_BITS wieder 24: Die Bridge dieses Panels nimmt kein RGB565 an, mit 16 Bit
|
||||
kommt kein brauchbares Bild.
|
||||
* WS7_PARTIAL_REFRESH wieder 0: Der Menü-Vorhang ließ sich nicht mehr öffnen. Er ist
|
||||
halbtransparent und wird deshalb in den gerade aktiven Bildpuffer eingemischt; die
|
||||
nächste Zustandsmeldung der S3 zeichnet aber in den zweiten Puffer, der ihn nie
|
||||
bekommen hat - der Vorhang war also sofort wieder weg. Nutzbar wäre der Modus erst,
|
||||
wenn der LVGL-Port die geänderten Bereiche zwischen beiden Puffern abgleicht.
|
||||
- WS7_PARALLEL_RENDER bleibt eingeschaltet: LVGL zeichnet weiterhin mit zwei Threads auf
|
||||
beiden Prozessorkernen. Von den drei Maßnahmen trägt nur diese.
|
||||
|
||||
Version 1.6.4:
|
||||
- Waveshare 7" (H): Drei Maßnahmen gegen die träge Bedienung am großen Panel. 1280x720
|
||||
sind 2,4-mal so viele Pixel wie beim 4,3-Zöller, und bis 1.6.3 wurde bei jeder Änderung
|
||||
|
||||
@@ -44,13 +44,13 @@ Vendor-Pakete: 4,3" im Ordner `JC4880P443C_I_W/`, 7,0" im Repo-Ordner
|
||||
| Haupt-MCU (UI) | ESP32-P4 | ESP32-P4 | ESP32-P4 (32 MB PSRAM, 32 MB Flash) |
|
||||
| WLAN/BT (hier ungenutzt) | ESP32-C6 | ESP32-C6 | — (kein Funkmodul) |
|
||||
| Display | ST7701, 480×800 IPS, MIPI-DSI | JD9165, 1024×600 IPS, MIPI-DSI | 1280×720 IPS, MIPI-DSI 2 Lanes über Waveshare-Bridge |
|
||||
| Farbformat | RGB565 | RGB565 | RGB565 oder RGB888, `WS7_COLOR_BITS` |
|
||||
| Farbformat | RGB565 | RGB565 | **RGB888** — die Bridge nimmt kein RGB565 (geprüft) |
|
||||
| LVGL-Ausrichtung | Rotation **270°** (PPA) → 800×480 | **keine** Rotation, nativ 1024×600 | **keine** Rotation, nativ 1280×720 |
|
||||
| Touch | GT911, I²C SDA=GPIO7 / SCL=GPIO8 | GT911, I²C SDA=GPIO7 / SCL=GPIO8 | **GT9271** (I²C-Adresse **0x14**), SDA=GPIO7 / SCL=GPIO8 |
|
||||
| Touch-Rohkoordinaten | 480×800 (= Panelraster) | **800×480** → wird auf 1024×600 skaliert | **720×1280** (Hochformat) → X/Y werden getauscht |
|
||||
| LCD-Reset | GPIO5 | **GPIO27** | kein Reset-Pin (macht die Bridge) |
|
||||
| Backlight | GPIO23 (LEDC-PWM) | GPIO23 (LEDC-PWM) | **Bridge-Register** auf I²C **0x45** (`AD`/`AB`/`AA`) |
|
||||
| Framebuffer | 3 × 750 KB ≈ 2,3 MB PSRAM | 3 × 1,2 MB ≈ 3,6 MB PSRAM | 2 × 1,8 MB ≈ 3,7 MB PSRAM (RGB565, Teil-Neuzeichnen) |
|
||||
| Framebuffer | 3 × 750 KB ≈ 2,3 MB PSRAM | 3 × 1,2 MB ≈ 3,6 MB PSRAM | 3 × 2,8 MB ≈ 8,3 MB PSRAM |
|
||||
| Freie Expansion-IO | Stiftleiste **JP1**: GPIO 52/51/50/49/35/34/33/32/31/30/29/28 | FPC 1,0 mm 16-pol. **FPC4**: GPIO 34/33/32/31/30/29/28 · **FPC3**: 48/47/46/45/5/4/3/2 | 40-poliger Header im Raspberry-Pi-Pico-Format; belegt sind I²C (7/8), TF-Karte (9/10/11/12/13/53) und Debug-UART0 (37/38) |
|
||||
| UART zur Hauptplatine | TX GPIO33 / RX GPIO31 | TX GPIO33 / RX GPIO31 | **TX GPIO20 / RX GPIO21** |
|
||||
|
||||
@@ -81,11 +81,15 @@ Das Panel hängt hinter einer Waveshare-Bridge und braucht **keinen** Hersteller
|
||||
[`pins_config.h`](pins_config.h) halten die Bedienung flüssig; jeder ist einzeln
|
||||
zurückstellbar, falls er Ärger macht:
|
||||
|
||||
| Schalter | Vorgabe | Wirkung | Wenn es klemmt |
|
||||
| Schalter | Vorgabe | Wirkung | Stand am Gerät |
|
||||
|---|---|---|---|
|
||||
| `WS7_COLOR_BITS` | `16` | RGB565 halbiert die Datenmenge je Bild gegenüber RGB888. Sichtbar nur in den dunklen Verläufen der Rundanzeige. | Bild falschfarbig oder dunkel → die Bridge will kein RGB565, auf `24` stellen |
|
||||
| `WS7_PARTIAL_REFRESH` | `1` | Nur geänderte Bildbereiche neu zeichnen statt jedes Mal des ganzen Bildes (LVGL-Direct-Mode, zwei Puffer). Größter Gewinn. | Flackern in Flächen, die selten neu gezeichnet werden → auf `0` |
|
||||
| `WS7_PARALLEL_RENDER` | `1` | LVGL zeichnet mit zwei Threads auf beiden Prozessorkernen. | P4 startet nicht mehr (zwei zusätzliche Stacks im knappen internen RAM) → zuerst hier auf `0` |
|
||||
| `WS7_COLOR_BITS` | `24` | `16` (RGB565) würde die Datenmenge je Bild halbieren. | **Geht an diesem Panel nicht** — die Bridge nimmt nur RGB888 |
|
||||
| `WS7_PARTIAL_REFRESH` | `0` | `1` zeichnet nur geänderte Bereiche neu (LVGL-Direct-Mode, zwei wechselnde Puffer). Wäre der größte Gewinn. | **Geht so nicht** — der halbtransparente Menü-Vorhang landet nur in einem der beiden Puffer und ist sofort wieder weg |
|
||||
| `WS7_PARALLEL_RENDER` | `1` | LVGL zeichnet mit zwei Threads auf beiden Prozessorkernen. | Aktiv |
|
||||
|
||||
> Damit `WS7_PARTIAL_REFRESH` nutzbar würde, müsste der LVGL-Port die geänderten Bereiche
|
||||
> zwischen beiden Puffern abgleichen. Die Maschinerie dafür liegt in `lvgl_port_v9.c`,
|
||||
> wird aber nur bei gedrehter Ausgabe übersetzt.
|
||||
|
||||
Die Farbtiefe muss für Sketch **und** LVGL-Bibliothek dieselbe sein; `lv_conf.h` liest
|
||||
`WS7_COLOR_BITS` deshalb direkt aus `pins_config.h`.
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
// -------------------------------------------------------------------------------------
|
||||
// Firmware
|
||||
// -------------------------------------------------------------------------------------
|
||||
#define DISPLAY_FW_VERSION "1.6.4" // Firmware-Stand der P4-Display-Steuerung (Info-Seite)
|
||||
#define DISPLAY_FW_VERSION "1.6.5" // Firmware-Stand der P4-Display-Steuerung (Info-Seite)
|
||||
|
||||
// -------------------------------------------------------------------------------------
|
||||
// Protokoll
|
||||
|
||||
@@ -16,20 +16,24 @@
|
||||
// 1280x720 ist gegenueber den JC-Panels ein Vielfaches an Pixeln. Die drei Schalter
|
||||
// senken die Last und lassen sich einzeln zurueckstellen, falls einer Aerger macht.
|
||||
//
|
||||
// WS7_COLOR_BITS 16 = RGB565: halbe Datenmenge je Bild, dafuer 65.000 statt
|
||||
// 16,7 Mio. Farben (sichtbar nur in den dunklen Verlaeufen der
|
||||
// Rundanzeige). 24 = RGB888 wie bis 1.6.3.
|
||||
// ACHTUNG: Nimmt die Bridge des Panels kein RGB565 an, bleibt
|
||||
// das Bild falschfarbig oder aus -> wieder auf 24 stellen.
|
||||
// WS7_PARTIAL_REFRESH 1 = nur geaenderte Bildbereiche neu zeichnen statt jedes Mal des
|
||||
// gesamten Bildes. Groesster Tempogewinn. Am 4,3-Zoll-Panel
|
||||
// hatte dieser Modus geflackert; tritt das hier auch auf, auf 0.
|
||||
// WS7_COLOR_BITS 24 = RGB888. GEPRUEFT: Die Bridge dieses Panels nimmt KEIN RGB565
|
||||
// an - mit 16 kommt kein brauchbares Bild. Einstellbar bleibt es
|
||||
// nur, weil andere Waveshare-Panels an derselben Firmware
|
||||
// haengen koennten.
|
||||
// WS7_PARTIAL_REFRESH 0 = Vollbild neu zeichnen. GEPRUEFT: Mit 1 (nur geaenderte
|
||||
// Bereiche, zwei wechselnde Bildpuffer) laesst sich der
|
||||
// Menue-Vorhang nicht mehr oeffnen. Er ist halbtransparent und
|
||||
// wird in den gerade aktiven Puffer eingemischt; die naechste
|
||||
// Zustandsmeldung der S3 zeichnet in den anderen, der ihn nie
|
||||
// bekommen hat. Am 4,3-Zoll-Panel hatte derselbe Modus
|
||||
// geflackert. Nutzbar erst, wenn der LVGL-Port die geaenderten
|
||||
// Bereiche zwischen beiden Puffern abgleicht.
|
||||
// WS7_PARALLEL_RENDER 1 = LVGL zeichnet mit zwei Threads auf beiden Prozessorkernen.
|
||||
// Kostet zwei zusaetzliche Task-Stacks im knappen internen RAM;
|
||||
// startet der P4 nicht mehr, hier zuerst auf 0 stellen.
|
||||
// -------------------------------------------------------------------------------------
|
||||
#define WS7_COLOR_BITS 16
|
||||
#define WS7_PARTIAL_REFRESH 1
|
||||
#define WS7_COLOR_BITS 24
|
||||
#define WS7_PARTIAL_REFRESH 0
|
||||
#define WS7_PARALLEL_RENDER 1
|
||||
|
||||
#define EXAMPLE_LVGL_PORT_TASK_MAX_DELAY_MS 500 //range 2 to 2000
|
||||
|
||||
Reference in New Issue
Block a user