From 7dd532cee475d486552e886dd7173c8853f80b60 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 18 May 2026 19:34:57 +0530 Subject: Update plan: all display screens verified working on hardware BOOT (TollGate starting), READY (QR cycling + price + balance), ERROR (no upstream) all confirmed working on JC3248W535C_I_Y. --- DISPLAY_FIX_PLAN.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'DISPLAY_FIX_PLAN.md') diff --git a/DISPLAY_FIX_PLAN.md b/DISPLAY_FIX_PLAN.md index dfacad2..7fa4882 100644 --- a/DISPLAY_FIX_PLAN.md +++ b/DISPLAY_FIX_PLAN.md @@ -75,11 +75,21 @@ All use identical pin assignments and bus configuration. - [x] Identified PSRAM cache coherency issue (in-place swap = black screen) - [x] Studied 3 reference implementations + ArduinoGFX source - [x] Text positions adjusted for 320x480 portrait centering +- [x] Internal DMA byte-swap buffer (MALLOC_CAP_DMA, 4KB chunks) +- [x] **CRITICAL FIX: Added RAMWR (0x2C) before pixel data** — fixed wrapping/double-vision +- [x] Display shows correct colors: cyan TollGate + yellow starting... centered on black +- [x] Reduced font scale to 2/1 for clean readability +- [x] Implemented full UI: BOOT, READY (QR cycling), PAYMENT, ERROR screens +- [x] WiFi events trigger display state transitions (READY ↔ ERROR) +- [x] Color-coded wallet balance (green/yellow/red) +- [x] **ALL SCREENS VERIFIED WORKING ON HARDWARE** ### In Progress -- [ ] Implement byte-swap using internal DMA buffer (like ArduinoGFX) +- [ ] (nothing) ### TODO +- [ ] Run `make test-unit` to check for regressions +- [ ] Commit, push, and prepare for merge to master - [ ] Restore render-on-change logic (proven correct, black screen was from swap not logic) - [ ] Use saturated colors: cyan `0x07FF`, yellow `0xFFE0`, white `0xFFFF` - [ ] Build, flash, verify correct colors and stable text -- cgit v1.2.3