top of page
gt911 register map

Gt911 Register Map < 2024 >

The GT911 register map consists of 256 registers, each 8 bits wide. The registers are divided into several sections, including:

Note: The GT911 automatically increments the register address pointer after each byte read, allowing for continuous reading of all coordinate data in one transaction. 4. Practical Implementation Tips

int gt911_read_touches(gt911_touch_t *touches, int max_touches) uint8_t status = i2c_read_u8(GT911_ADDR, GT911_STATUS);

The is a highly popular, 5-point capacitive touch screen controller used across countless microelectronics, embedded displays, and small-to-medium Mobile Internet Devices (MIDs). For developers building drivers or custom firmware on microcontrollers like STM32, ESP32, or single-board computers like Raspberry Pi, understanding the GT911 register map is absolutely essential. Without interacting with specific register pointers over the I2C bus, the chip will fail to communicate coordinate profiles, change power profiles, or execute configurations. gt911 register map

The Goodix GT911 is one of the most popular capacitive touch screen controllers used in embedded systems, DIY electronics, and consumer devices. It communicates primarily over I2C and supports up to 5 simultaneous touch points.

Let’s pull back the curtain and map out the GT911’s internal memory.

If you read register 0x8000 and always get 0x00 , your I²C is working, but the GT911 is not initialized. Ensure you performed the hardware reset sequence correctly. Many libraries forget to pull before reset. The GT911 register map consists of 256 registers,

Each of the 5 potential touch points is allocated an 8-byte data structure containing coordinate and size data. Start Address Struct Byte Offset & Meaning

| Offset | Register | Description | | :--- | :--- | :--- | | +0 | 0x8010 | – 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's internal register space is primarily divided into four key functional regions. The table below provides an overview of these address ranges. The Goodix GT911 is one of the most

This is the region the host MCU polls or responds to an interrupt to read when a finger touches the screen.

Let’s talk about (Config Register #6). Bit 2 is the "Swap XY" bit. In a sane world, you set it to 1, the axes swap. In the GT911 world? It works, but it also affects the screen resolution registers (0x8048 and 0x804A).

Comprehensive Guide to the GT911 Touch Controller Register Map

This register is used to send operational commands to the GT911. Common commands include: Read coordinates status. 0x05: Screen off mode.

| Address Range | Category | Access | Description | | :--- | :--- | :--- | :--- | | | Real-time Command | Write Only | Used to send commands to the chip for mode switching and control. | | 0x8047 - 0x80FF | Configuration Info | Read/Write | Contains device parameters like screen resolution, touch thresholds, and other settings. | | 0x814E - 0x817D | Coordinate Info | Read Only | Stores raw touch data for up to 5 points, including coordinates, size, and a touch key status register. | | 0xAB10 - 0xAB1F | HotKnot Status | Read (mostly) | Status registers for the HotKnot data exchange protocol. | | 0xAC90 - 0xAE10 | HotKnot Buffer | Read/Write | Data buffers for transmitting and receiving HotKnot frames. |

Halloween Sounds - Scary Sounds for Halloween

© 2026 Scarlet Atlas Cascade. 

bottom of page