Can esphome this touch screen

Can we esphome this

1 Like

No. Not yet at least.

There has been some success with a similar product. Minus the rotary encoder:

I found your thread after this popping up in my feed. I’m not sure if it’s any help tho

Have you created a Feature Request on the ESPhome Git repo? (if there isn’t one already)

I found an ESPHome config file for M5Dial 1.28" Round Touch Screen.

external_components:
  - source: github://dgaust/esphome@gc9a01
    components: [ ft3267, gc9a01 ]
    refresh: 0s

i2c:
  - id: bus_internal
    sda: GPIO11
    scl: GPIO12
    scan: False
    frequency: 400kHz

touchscreen:
  platform: ft3267

binary_sensor:
  - platform: touchscreen
    name: "Central Circle Touch"
    x_min: 90   # Center x - radius
    x_max: 150  # Center x + radius
    y_min: 90   # Center y - radius
    y_max: 150  # Center y + radius
    page_id: TestPage
    on_release:
      - display.page.show: FirstPage
  - platform: touchscreen
    name: "Circle 2 Touch"
    x_min: 160  # Center x - radius
    x_max: 220  # Center x + radius
    y_min: 90   # Center y - radius
    y_max: 150  # Center y + radius
    page_id: TestPage
    on_release:
      then:
        - logger.log: "Circle 2 Touched"
  - platform: touchscreen
    name: "Circle 3 Touch"
    x_min: 125  # Center x - radius
    x_max: 185  # Center x + radius
    y_min: 151  # Center y - radius
    y_max: 211  # Center y + radius
    page_id: TestPage
    on_release:
      - display.page.show: WifiQR
  - platform: touchscreen
    name: "Circle 4 Touch"
    page_id: TestPage
    x_min: 55   # Center x - radius
    x_max: 115  # Center x + radius
    y_min: 151  # Center y - radius
    y_max: 211  # Center y + radius
    on_release:
      then:
        - logger.log: "Circle 4 Touched"
  - platform: touchscreen
    name: "Circle 5 Touch"
    page_id: TestPage
    x_min: 20   # Center x - radius
    x_max: 80   # Center x + radius
    y_min: 90   # Center y - radius
    y_max: 150  # Center y + radius
    on_release:
      then:
        - logger.log: "Circle 5 Touched"
  - platform: touchscreen
    name: "Circle 6 Touch"
    page_id: TestPage
    x_min: 55   # Center x - radius
    x_max: 115  # Center x + radius
    y_min: 29   # Center y - radius
    y_max: 89   # Center y + radius
    on_release:
      - display.page.show: AirConPage
  - platform: touchscreen
    name: "Circle 7 Touch"
    page_id: TestPage
    x_min: 125  # Center x - radius
    x_max: 185  # Center x + radius
    y_min: 29   # Center y - radius
    y_max: 89   # Center y + radius
    on_release:
      then:
        - logger.log: "Circle 7 Touched"

And it works !

[09:48:03][D][ft3267.touchscreen:132]: Read 0 status, id: 0, pos 113/73
[09:48:03][D][ft3267.touchscreen:132]: Read 0 status, id: 0, pos 130/79
[09:48:05][D][ft3267.touchscreen:132]: Read 0 status, id: 0, pos 129/44
[09:48:05][D][ft3267.touchscreen:132]: Read 0 status, id: 0, pos 117/11