Gt911 Register Map Free Online
The GT911 register map is the architectural blueprint used to interface with the Goodix GT911 capacitive touch controller. It defines how a host processor (like an STM32, Arduino, or Raspberry Pi) communicates via I2C to configure the touch panel, read coordinates, and manage power modes.
Common Pitfalls
- ❌ Forgetting to read the freshness flag? The GT911 doesn’t have one — just read
0x8050repeatedly. - ❌ Invalid config checksum? Touch may not work. Compute 16-bit sum of bytes
0x8047–0x81FEand match with0x804E/0x804F. - ❌ Wrong I²C address — try both
0x5Dand0x14(7-bit).
The Early Days
0x814E to 0x8150: The prize. These hold the X and Y coordinates for the first touch point. There are enough registers here to track up to five fingers simultaneously. gt911 register map
| Offset | Register | Description |
| :--- | :--- | :--- |
| +0 | 0x8010 | Track ID – A rotating ID (0-31). Same ID across frames = same finger. |
| +1 | 0x8011 | X Coordinate (Low Byte) – Bits 7-0 of X position |
| +2 | 0x8012 | X Coordinate (High Byte) – Bits 11-8 of X position (not 15-12!). Only 12-bit resolution. |
| +3 | 0x8013 | Y Coordinate (Low Byte) – Bits 7-0 of Y position |
| +4 | 0x8014 | Y Coordinate (High Byte) – Bits 11-8 of Y position |
| +5 | 0x8015 | Touch Size (Low Byte) – Area of contact (roughness) |
| +6 | 0x8016 | Touch Size (High Byte) – Typically not used for basic apps | The GT911 register map is the architectural blueprint
0x814E / 0x814F onward — Product ID string (length varies). ❌ Forgetting to read the freshness flag
For detailed hardware setup including pull-up resistor requirements (typically 2.2kΩ to 10kΩ), refer to the Focus LCDs Programming Guide Do you need a C/C++ code snippet
Auto-Increment: The chip automatically increments the register address, allowing you to read multiple touch points in a single session. Register Map Summary