p4: T-Display P4 port — web VNC/remote, time-sync hardening, brightness + sound
LilyGo T-Display P4 (ESP32-P4 + factory ESP-AT C6) reaches POC: LoRa mesh, Wi-Fi
companion (TCP:5000), GPS, SD, battery gauge, chat persistence, and now:
- Web VNC/REMOTE/terminal via a first-byte router on the single ESP-AT listener
(HTTP verbs -> WS server, '<' frames -> phone companion; both live at once).
C6Server gains a _begun gate so never-listening instances stay inert.
- VNC freeze fixed: bounded one-CIPSEND-chunk drains under the WS client mutex
(a whole-band blocking write starved the main loop), fast-drop of stalled
mirror clients, SEND-OK wait 8s->4s.
- Wi-Fi robustness: CWJAP? miss-streak tolerance, CIPSERVER liveness verify +
re-arm (a re-association silently killed the listener until reboot).
- Time sync: HTTP-Date fallback when SNTP is blocked; ClockFloorRTC gains a
MAX_PLAUSIBLE_EPOCH guard (all boards) after a garbage-future hardware RTC
read (2043) latched the ratchet.
- Brightness: RM69A10 DCS 0x51 driven live (CC slider + persisted pref).
- Sound: ES8311 + NS4150B notification chimes (P4Audio, esp-bsp-derived
register sequence on Wire1), full HAS_UI_SOUND surface + CC Screen/Sound
sliders; ccVolumeReleaseCb's hardcoded tanBeep -> uiSoundPreview.
- tdisplay_p4/: IDF project (build.sh, c6_at AT-over-SDIO driver, sdkconfigs,
fetch-deps.sh vendoring, .gitignore for local payloads).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>