Gt911 Register Map !new! <Fully Tested>
The GT911 register space is divided into functional blocks for commands, configuration, and coordinate reporting. STMicroelectronics Community GOODiX GT911 Programming Guide 2014-08-04_Rev.00
The GT911 registers are 8-bit wide, addressed by a 16-bit value starting from 0x8000 . The memory map can be divided into three main sections:
Selected if the INT pin is driven high while the RST pin transitions from low to high.
, the story of its is a classic rite of passage for many embedded systems engineers. For those working with capacitive touchscreens, diving into the Goodix GT911 registers often feels more like solving a puzzle than following a manual. The "Hidden" Nature of the GT911
This register is used to send operational commands to the GT911. Common commands include: Read coordinates status. 0x05: Screen off mode. gt911 register map
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.
Send (e.g., 0x81 , 0x4E to check touch status). Restart Condition. Send Slave Address (Read mode). Read Data Bytes . Stop Condition.
The GT911 automatically increments the register address after every read or write, allowing you to pull all coordinate data in a single burst. 4. Best Practices for Implementation Wait for INT: Instead of constant polling, use the to trigger a read only when new touch data is ready. Verify Product ID: Always read the registers at
Use the INT pin to trigger the I2C reading process. The INT pin will typically go low when a touch is detected or released. The GT911 register space is divided into functional
Note that this is not an exhaustive list of GT911 registers, but rather a selection of key registers discussed in this article. For a complete list of GT911 registers, refer to the GT911 datasheet or user manual.
The GT911 register map consists of 256 registers, each 8 bits wide. The registers are divided into several sections, including:
The GT911 will then reset its touch engine with the new settings.
For developers, the register map is the primary tool for solving common hardware hurdles: , the story of its is a classic
| Start Addr | End Addr | Size (bytes) | Name / Section | Type | Description | | :--- | :--- | :--- | :--- | :--- | :--- | | 0x8000 | 0x8000 | 1 | Product ID (MSB) | RO | First char of ID (e.g., '9') | | 0x8001 | 0x8001 | 1 | Product ID | RO | Second char (e.g., '1') | | 0x8002 | 0x8002 | 1 | Product ID | RO | Third char (e.g., '1') | | 0x8003 | 0x8003 | 1 | Product ID (LSB) | RO | Fourth char (e.g., 0x00 for string end) | | 0x8004 | 0x8004 | 1 | Firmware Version | RO | Major/minor version | | 0x8005 | 0x8005 | 1 | X Output Maximum (MSB) | RO | Reserved / default | | 0x8006 | 0x8006 | 1 | X Output Maximum (LSB) | RO | Reserved / default | | 0x8007 | 0x8007 | 1 | Y Output Maximum (MSB) | RO | Reserved / default | | 0x8008 | 0x8008 | 1 | Y Output Maximum (LSB) | RO | Reserved / default | | 0x8009 | 0x800F | 7 | Reserved / Status | RO | Touch count & flags | | 0x8010 | 0x8024 | 21 | Point 1 Data (TrackID, X, Y, Size) | RO | First touch report | | 0x8025 | 0x8039 | 21 | Point 2 Data | RO | Second touch report | | 0x803A | 0x804E | 21 | Point 3 Data | RO | Third touch report | | 0x804F | 0x8063 | 21 | Point 4 Data | RO | Fourth touch report | | 0x8064 | 0x8078 | 21 | Point 5 Data | RO | Fifth touch report | | 0x8079 | 0x807E | 6 | Reserved / Checksum | RO | Touch protocol integrity | | 0x8040 | 0x8040 | 1 | Gesture ID | RO | Up/Down/Left/Right/Double-Click | | 0x8041 | 0x80FF | 191 | Reserved | - | Not documented | | 0x8100 | 0x8100 | 1 | Config Version | RW | Configuration version number | | 0x8101 | 0x8101 | 1 | X Resolution (MSB) | RW | Screen width (max touch X) | | 0x8102 | 0x8102 | 1 | X Resolution (LSB) | RW | Screen width | | 0x8103 | 0x8103 | 1 | Y Resolution (MSB) | RW | Screen height (max touch Y) | | 0x8104 | 0x8104 | 1 | Y Resolution (LSB) | RW | Screen height | | 0x8105 | 0x8105 | 1 | Touch Threshold | RW | Finger detection sensitivity (default 80) | | 0x8106 | 0x8106 | 1 | Active (Screen-On) Gain | RW | Amplification factor for touch | | 0x8107 | 0x8107 | 1 | Standby (Screen-Off) Gain | RW | Low-power detection gain | | 0x8108 | 0x8108 | 1 | Debounce | RW | Number of consecutive samples (1-10) | | 0x8109 | 0x8109 | 1 | Noise Reduction | RW | Filter level (0-7) | | 0x810A | 0x810A | 1 | Screen Touch Level | RW | Reserved | | 0x810B | 0x810B | 1 | Proximity Enable | RW | Enable/Disable proximity sensing | | 0x810C | 0x810C | 1 | Handheld/Pen Enable | RW | Mode selection for stylus | | 0x810D | 0x811D | 17 | Key Area Array | RW | Physical button mapping | | 0x811E | 0x812F | 18 | Proximity & Noise Settings | RW | Advanced tuning | | 0x8130 | 0x813F | 16 | Gesture Parameters | RW | Swipe angles, double-tap timing |
A register map is a detailed documentation of a microcontroller or chip's registers, which are essentially small amounts of memory that store data temporarily while it is being processed. The register map provides a comprehensive overview of the chip's registers, including their addresses, bit fields, and functions. This information is crucial for developers, engineers, and programmers who need to interface with the chip, configure its settings, and read or write data to it.
The is a highly popular 5-point capacitive touch controller widely used in embedded systems, microcontrollers (like STM32, ESP32), and single-board computers (such as the Raspberry Pi). Interfacing with this hardware requires communicating via the I2C protocol to manipulate its internal memory space. The GT911 Register Map is the essential blueprint that outlines how configuration parameters, real-time control codes, and multi-touch coordinates are structured across its 16-bit register addresses.