Gt911 Register Map May 2026

Typical startup config area (example offsets):

| Offset | Field | Typical value | |--------|-------|----------------| | 0x8048-0x804D | X/Y resolution | Depends on display | | 0x8060 | Touch threshold | 0x46 (70 raw) | | 0x8061 | Filter coefficient | 0x05 | | 0x807C | I2C watchdog | 0x09 (9 sec) |

Important: After writing config, write 0x00 to 0x80FE (soft reset) and send 0x01 to 0x8040 (config update flag).

| Address | R/W | Name | Description | |---------|-----|------|--------------| | 0x8040 | R | Product ID (first byte) | Usually '9' | | 0x8041 | R | Product ID (second byte) | Usually '1' | | 0x8042 | R | Product ID (third byte) | Usually '1' | | 0x8043 | R | Firmware version | Major/minor | | 0x8044 | R | Resolver version | -- | | 0x8045 | R | Patch version | -- | | 0x8046 - 0x8047 | R | Vendor ID | -- | | 0x8048 - 0x804A | R | LCD X resolution | Bytes: LSB, MSB, reserved | | 0x804B - 0x804D | R | LCD Y resolution | Bytes: LSB, MSB, reserved | | 0x804E | R/W | Config checksum (high) | Used for verification | | 0x804F | R/W | Config checksum (low) | Used for verification | | 0x8050 | R | Number of touch points | 0x00=no touch, 0x01-0x05 | | 0x8051 | R | Gesture ID | 0x00=none, 0x01=slide up/down, etc. | gt911 register map

This is the single most important register. You poll this before reading touch data.

Pro tip: After reading all touch points, always write 0x00 back to 0x8009. If you fail to do this, the GT911 will stop sending interrupts.

Before exploring the registers, you must understand the GT911's dual I²C addressing scheme. Typical startup config area (example offsets): | Offset

The GT911 contains two logical spaces:

A critical nuance: The GT911 cannot be configured while actively reporting touches. The standard workflow is:

This is almost always a threshold (0x8105) issue. If set too low (e.g., <30), environmental noise triggers false touches. Increase to 120 and test. Important: After writing config, write 0x00 to 0x80FE

The GT911 communicates over I2C. Two common addresses exist:

The device uses 16-bit register addresses. This means any I2C transaction requires sending a 2-byte address (high byte first) before reading or writing data.

Below is the essential register map broken into functional groups. All addresses are in hex.