diff --git a/docs/ELECROW.md b/docs/ELECROW.md index cec5af2..ee6e406 100644 --- a/docs/ELECROW.md +++ b/docs/ELECROW.md @@ -49,6 +49,14 @@ takes address 0x5D), 20 ms, the reset released, 100 ms, the interrupt line back through the PCA9557`. A V2.0 board without the expander boots its GT911 by the pull-up as before (the writes fail, the log says so), and the driver tries 0x14 by itself when 0x5D does not answer, so no address override is ever needed. +**A touch that never answers.** TP-RESET has no pull-up on the main board (Elecrow's V3.0 schematic), and IO0 of +the PCA9557 is its open-drain pin: "high" only lets the line go, and the touch module on the glass's flex cable is +what pulls it up. A unit tested here read `PCA9557 ... input 0x00 output 0x01` from `touch_probe` after the reset +(the line still low, no GT911 at either address) with every firmware from 0.2.79 on: its 6-pin flex cable was not +making contact in **P4**, the connector next to the PCA9557 (IC1). Reseated, the same probe read `input 0xF3` and +`GT911 at 0x5D: ... product id ("911")`, and the touch worked at once, with no change to the firmware. So before +anything else: the flex cable fully home in P4 (not the empty P2 beside it), latch closed, cable undamaged. + The bus is scanned at boot. For a diagnosis, give the screen `logger: level: DEBUG` in its Override YAML (Screen settings → Override YAML) and read its log: the scan lists 0x18 (the expander; the GT911 is still in reset at that moment), and the driver logs `Switches ADDR: 0x5D`; a screen without a working bus lists nothing. Two actions of the @@ -111,7 +119,7 @@ number of pixels as the Guition's 25 % of 480 × 480. - `python3 tools/check_packages.py`, `esphome config elecrow-crowpanel7.yaml`, `tools/check.sh --firmware`. - The touch test page and `tools/verify_gt911.py` for the corners; the ghost-touch filter at (0, 0) of the Guition's - GT911 applies here too. + GT911 applies here too. `touch_probe` (Developer tools → Actions) for a touch that never answers: see above. - `diagnostics/capture_ui.py` saves the LVGL render at 400 × 240 (half the panel) as a PNG; `ui_self_test` renders every card without touching a device. - A build is not a flash, and a render is not a touch: the owner checks the picture and taps the corners.