Add Panel-Aware Local OLED Display Service

This commit is contained in:
2026-08-29 14:37:44 +02:00
parent ec9ca5e6d2
commit 4aa5ca80da
10 changed files with 900 additions and 427 deletions
+14 -4
View File
@@ -49,7 +49,17 @@ debug display pattern corners
Confirm that clear and fill affect the full 128×64 area, checker and grid have regular spacing without shifted or wrapped columns, and all four corner markers are visible in the correct locations. Unexpected mirroring, rotation, clipping, or column offsets must be recorded before Phase 7B fixes the display-driver assumptions.
### 4. Row 15/16 color-boundary test
### 4. Rendered status/content layout
Run the Phase 7B panel-layout pattern:
```text
debug display pattern layout
```
Confirm that the status text is entirely in the yellow 128×16 panel (rows 015), content text is entirely in the blue 128×48 panel (rows 1663), and the physical black divider between them remains visible. Record any text crossing the divider, clipping, incorrect panel color, or divider obscuration.
### 5. Row 15/16 color-boundary test
Clear the display, illuminate row 15, and record its physical color and position:
@@ -67,9 +77,9 @@ debug display row 16
**Verified result:** row 15 is the last yellow addressable row and row 16 is the first blue addressable row. The two colored areas are separated by a narrow physical black divider, so later UI rendering must treat the 128×16 yellow and 128×48 blue regions as separate panels rather than one visually continuous canvas. Also test another endpoint row if needed with `debug display row <0..63>` to confirm row addressing and orientation.
### 5. Contrast, inversion, and display-off checks
### 6. Contrast, inversion, and display-off checks
With a visible pattern loaded, exercise the bounded contrast range and confirm that brightness changes without bus errors:
With a visible pattern loaded, exercise the bounded contrast range and confirm that brightness changes without bus errors. On the validated module, the useful visible brightness range begins at `1` and extends through `255`:
```text
debug display contrast 0
@@ -87,7 +97,7 @@ debug display invert off
Finally run `debug display off` and confirm the panel turns off cleanly. Use `debug display status`, then `debug display init 0x3c` (or equivalently `0x78` or `0x79`) before further display tests.
### 6. Button checks
### 7. Button checks
With all buttons released, run `debug buttons status`. Confirm previous/back GPIO10, select/confirm GPIO13, and next GPIO14 report released/high due to their internal pull-ups; each should report pressed/low while held to `GND`.