Gt911 Register Map -
Goodix GT911 is a capacitive touch controller that uses an I2C interface to communicate with a host processor. The register map is divided into functional blocks for commands, configuration, and touch data status. I2C Communication Basics Slave Address: usually has two selectable 7-bit I2C addresses, , depending on the state of the pins during startup. Register Address Size: Unlike many simple I2C devices, the 16-bit register addresses Focus LCDs Key Register Map Blocks Address Range (Hex) Description Command Register Used to send real-time commands (e.g., reset, sleep). Configuration Registers
Formula for coordinates:
X = (read_u16(0x8012) << 8) | read_u8(0x8011) ... Wait, careful. Because the GT911 is big-endian: gt911 register map
| :--- | :--- | :--- || 0x8040 | Command | Writing 0x00 (read coordinates), 0x01 (read raw data), or 0x05 (screen off). || 0x8047 – 0x813F | Configuration | Settings for resolution, touch thresholds, and sensor orientation. || 0x8140 – 0x8143 | Product ID | Reads as ASCII "911" or "9111" to verify chip identity. || 0x814E | Status | Critical: Bit 7 (Buffer Status) indicates new touch data is ready. Writing 0 here clears the flag. || 0x814F – 0x8156 | Touch 1 Data | Contains Track ID, X-coordinate (Low/High), Y-coordinate, and Size. || 0x8157 – 0x81FF | Touch 2–5 Data | Subsequent blocks (8 bytes each) for the remaining touch points. | The Reading Workflow Goodix GT911 is a capacitive touch controller that
| Address Range | Function Block | Key Registers & Details | Register Address Size: Unlike many simple I2C devices,
4. Touch Point Data (5 Points, 8 bytes each)
Each touch point occupies 8 consecutive bytes. Point 1 starts at 0x8150.