Gt911 Register Map - !!link!!

Send (e.g., 0x81 , 0x4E to check touch status). Restart Condition. Send Slave Address (Read mode). Read Data Bytes . Stop Condition.

The GT911 tracks up to 5 points sequentially. Each touch point occupies a fixed 7-byte block. Addresses 0x8150 to 0x8156 Touch Point 2: Addresses 0x8157 to 0x815D Touch Point 3: Addresses 0x815E to 0x8164 Touch Point 4: Addresses 0x8165 to 0x816B Touch Point 5: Addresses 0x816C to 0x8172 Inside a 7-Byte Touch Point Block (Example: Point 1) Relative Offset Register Address Field Name Description 0x8150 Unique ID assigned to this specific touch event 0x8151 X Coordinate Low Lower 8 bits of the X coordinate 0x8152 X Coordinate High Upper 8 bits of the X coordinate 0x8153 Y Coordinate Low Lower 8 bits of the Y coordinate 0x8154 Y Coordinate High Upper 8 bits of the Y coordinate 0x8155 Point Size Low Lower 8 bits of the contact area size 0x8156 Point Size High Upper 8 bits of the contact area size

The starting point for the first touch. Data is usually formatted as: Programming Flow Initialize I2C: Set the speed (standard 100kHz or fast 400kHz). Configuration: (Optional) Write parameters to if you need to change the screen resolution or orientation. Polling Loop: Read register Check if Bit 7 is high.

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

A critical nuance: The standard workflow is: gt911 register map

Configures touch screen orientation, enabling X/Y mirroring or swapping for landscape/portrait adjustments. The Configuration Checksum (0x813C)

You cannot write to the configuration registers while the GT911 is in active mode at 0x5D . Use this sequence:

What (e.g., ESP32, Arduino, STM32) you are using?

For developers, the register map is the primary tool for solving common hardware hurdles: Send (e

The Goodix GT911 is a highly popular capacitive touch screen controller used extensively in embedded systems, Android tablets, and IoT devices. It communicates primarily over I2C and supports up to 5 simultaneous touch points.

The HotKnot feature enables two GT911 chips to exchange data via capacitive coupling (by bringing two touchscreen-enabled devices together). These registers manage this process:

To read real-time touch events, your microcontroller should poll these registers or trigger an interrupt when the GT911's INT pin pulls low. The Buffer Status Register (0x8140) This is the most critical register for data retrieval.

— Product ID string (length varies).

A 16-bit value specifying the maximum vertical pixel resolution (Low byte at 0x804A, High byte at 0x804B).

This massive block defines how the touch panel behaves. It includes settings for: Resolution: Horizontal and vertical pixel counts (e.g., 480x800). Touch Points: Setting the maximum number of concurrent touches (up to 5). Sensitivity: Touch thresholds and noise rejection levels. Refresh Rate: Typically set to 5ms or 10ms cycles. Saving Changes: After writing to these registers, you must write 0x01 to 0x8040 to save the config to non-volatile memory, followed by to transition into application mode. Coordinate Data (0x8100 – 0x813F) When a touch is detected, the updates this range with live data

For more information on the GT911 register map, we recommend the following resources: