Add touch_probe and touch_reset actions to the Elecrow for a diagnosis over the API (0.2.97, firmware 0.2.83)
CI / checks (push) Has been cancelled
CI / firmware (add-on) (push) Has been cancelled
CI / firmware (min_version) (push) Has been cancelled

This commit is contained in:
Xandrossian
2026-09-21 14:03:05 -07:00
parent 4ec8c7a935
commit 51c713b8d9
8 changed files with 83 additions and 18 deletions
+6 -2
View File
@@ -50,8 +50,12 @@ through the PCA9557`. A V2.0 board without the expander boots its GT911 by the p
log says so), and the driver tries 0x14 by itself when 0x5D does not answer, so no address override is ever needed.
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) and 0x5D or 0x14 (the GT911), and the
driver logs `Switches ADDR: 0x5D`; a screen without a working bus lists nothing.
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
screen (firmware 0.2.83; Developer tools → Actions, or over the API) work at any time: `touch_probe` logs the PCA9557's
four registers and whether a GT911 answers at 0x5D or 0x14 (its product id, "911"); `touch_reset` runs Elecrow's
sequence with values of one's own (`config`, `low`, `high`, `hold_ms`, `wait_ms`, `final_config`; Elecrow's are
0, 0, 1, 20, 100, 2) and probes again.
**GPIO 19 and 20, the touch I2C, are the ESP32-S3's USB D- and D+.** The ROM leaves the USB PHY on those pads and
ESP-IDF's I2C driver cannot take them back: the bus reads as `I2C software timeout` and the touch never answers