cst816 Touch Screen Controller

The cst816 touchscreen platform allows using the touch screen controllers based on the CST816 series of chips 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 Lilygo T-Display S3 AMOLED. The component should work with CST816T, CST816S, CST820, CST826 and CST716 controller chips.

../../_images/cst816.jpg

cst816t touchscreen on T-Display S3 AMOLED

Base Touchscreen Configuration

# Example configuration entry
touchscreen:
  platform: cst816
  id: my_touchscreen
  interrupt_pin: GPIOXX
  reset_pin: GPIOXX

Configuration variables:

  • id (Optional, ID): Manually set the ID of this touchscreen.

  • interrupt_pin (Optional, Pin Schema): The touch detection pin.

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

  • skip_probe (Optional, boolean): Skip reading the chip ID on startup. May be required for some variants (e.g. CST816S) that do not respond to i2c commands except after touches are registered. Defaults to false.

  • All other options from Touchscreen.

Binary Sensor

In addition to touch areas on the screen configured through the Touchscreen component, the cst816 can report touches on a dedicated button outside the display area. This can be utilised by configuring a touchscreen binary sensor with the use_raw option and min/max values representing the sensor touch area.

Sample config for the T-Display S3 AMOLED

i2c:
  sda: GPIO3
  scl: GPIO2

touchscreen:
  - platform: cst816
    id: my_touchscreen
    interrupt_pin: GPIO21

See Also