Skip to content

gt911 Touch Screen Controller

The gt911 touchscreen platform allows using the touch screen controllers based on the gt911 chip with ESPHome. The I²C is required to be set up in your configuration for this touchscreen to work.

This controller is used in the Espressif ESP32-S3-BOX-3 and the m5paper as well as some Waveshare-ESP32-S3-Touch devices;

gt911 touchscreen on ESP32-S3-BOX-3
# Example configuration entry for board with interrupt line run directly to ESP GPIO
touchscreen:
platform: gt911
id: my_touchscreen
interrupt_pin: GPIOXX
# Example configuration entry for board with interrupt line run through IO Expander
touchscreen:
platform: gt911
id: my_touchscreen
interrupt_pin:
waveshare_io_ch32v003: wave_io_hub
number: 2
  • id (Optional, ID): Manually set the ID of this touchscreen.

  • interrupt_pin (Optional, Pin Schema): The touch detection pin if run to an on-MCU pin.
    If the touchscreen interrupt signal is wired through an IO Expander rather than directly to an ESP GPIO this will allow for configuration of touchscreen address at boot but will not be used for interrupts and the driver will fall back to polling operation.

  • reset_pin (Optional, Pin Schema): The reset pin.

  • All other options from Touchscreen.

In addition to touch areas on the screen configured through the Touchscreen component, the gt911 supports up to four buttons located outside of the normal touchscreen area. On the ESP32-S3-BOX-3 the red circle below the display is such a button. A binary sensor can be configured to react to touching these buttons.

# Example configuration entry
binary_sensor:
- platform: gt911
name: "Home"
index: 0
  • gt911_id (Optional, ID): Manually specify the ID of the touchscreen.

  • index (Optional, int): Internal index of the touch button, between 0 and 3. The default is 0.

  • All other options from Binary Sensor.