The standard configuration length is (0xBA) starting at 0x8040 . However, different firmware versions use different lengths (e.g., 184, 186, 240). The first byte ( 0x8040 ) is the configuration version (e.g., 0x60 = v60). Writing a new config requires writing the entire block and then triggering a reset.
Configures how many simultaneous touch points to report (1 to 5).
While Goodix’s documentation is sparse, the open-source community has robustly mapped out the critical registers. Bookmark the addresses in this article— 0x814E for status, 0x814F for first touch, 0x8040 for config, and 0x8100 for commands—and you’ll be ready to write your own driver or debug an existing one. gt911 register map
The register space is divided into four primary functional zones, ranging from low-level command control to high-level product identification. Register Range Description Command and Status (Real-time control) 0x8047 – 0x80FF Configuration Data (Resolution, thresholds, etc.) 0x8100 – 0x813F Coordinate Data (Real-time touch points) 0x8140 – 0x814E Product ID and Information Key Functional Groups
The register map is the memory-mapped interface (typically accessed via I²C) that exposes every internal state and configuration parameter of the chip. This article provides a comprehensive breakdown of the GT911 register map, from the read-only coordinate buffers to the writable configuration banks. The standard configuration length is (0xBA) starting at
Let's break down the critical zones in detail.
| Address | Name | Typical Default | Description | |---------|------|----------------|-------------| | 0x8040 | Config version | 0x60 | Increment to force reload | | 0x8041 | X resolution low | 0x00 | Touchscreen width (low byte) | | 0x8042 | X resolution high | 0x50 (for 1280) | High byte of X max | | 0x8043 | Y resolution low | 0x00 | Touchscreen height (low byte) | | 0x8044 | Y resolution high | 0x70 (for 800) | High byte of Y max | | 0x8045 | Touch count & threshold | 0x05 | Bits: max touches (3 bits) + touch threshold | | 0x8046 | Reserved | – | | | 0x8050 | Sensitivity control | 0x32 | Signal-to-noise target | | 0x8056 | Active scan rate | 0x0A | Scan interval in ms | | 0x8057 | Monitor scan rate | 0x0A | During no-touch | | 0x8069 | INT trigger mode | 0x01 | 0 = polling, 1 = interrupt trigger | | 0x807A | Swap XY | 0x00 | Set to 0x01 to swap axes | | 0x807B | Mirror X | 0x00 | Set to 0x01 to reverse X axis | | 0x807C | Mirror Y | 0x00 | Set to 0x01 to reverse Y axis | Writing a new config requires writing the entire
The GT911 register map is the key to unlocking every feature of this capable touch controller. Whether you are reading touch points, adjusting sensitivity, or swapping screen orientation, knowing the addresses and data formats lets you integrate the GT911 into any embedded system.