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 0x8050 repeatedly.
  • ❌ Invalid config checksum? Touch may not work. Compute 16-bit sum of bytes 0x80470x81FE and match with 0x804E/0x804F.
  • ❌ Wrong I²C address — try both 0x5D and 0x14 (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