uploaded 1 month ago
ESP LCD Touch STMPE610 - touch controller STMPE610


ESP LCD Touch STMPE610 Controller

Component Registry

Implementation of the STMPE610 touch controller with esp_lcd_touch component.

Touch controller Communication interface Component name Link to datasheet
STMPE610 SPI[^1] esp_lcd_touch_stmpe610 DOC

[^1]: NOTE: The STMPE610 controller can work via I2C too, but this feature is not implemented in this component!

Add to project

Packages from this repository are uploaded to Espressif's component service. You can add them to your project via add-dependancy, e.g. add-dependency esp_lcd_touch_stmpe610==1.0.0

Alternatively, you can create idf_component.yml. More is in Espressif's documentation.

Example use

Initialization of the touch component.

    esp_lcd_panel_io_handle_t tp_io_handle = NULL;
    esp_lcd_panel_io_spi_config_t tp_io_config = ESP_LCD_TOUCH_IO_SPI_STMPE610_CONFIG(EXAMPLE_PIN_NUM_TOUCH_CS);
    ESP_ERROR_CHECK(esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)SPI2_HOST, &tp_io_config, &tp_io_handle));

    esp_lcd_touch_config_t tp_cfg = {
        .x_max = CONFIG_LCD_HRES,
        .y_max = CONFIG_LCD_VRES,
        .rst_gpio_num = -1,
        .int_gpio_num = -1,
        .flags = {
            .swap_xy = 0,
            .mirror_x = 0,
            .mirror_y = 0,

    ESP_LOGI(TAG, "Initialize touch controller STMPE610");
    ESP_ERROR_CHECK(esp_lcd_touch_new_spi_stmpe610(tp_io_handle, &tp_cfg, &tp));

Read data from the touch controller and store it in RAM memory. It should be called regularly in poll.


Get one X and Y coordinates with strength of touch.

    uint16_t touch_x[1];
    uint16_t touch_y[1];
    uint16_t touch_strength[1];
    uint8_t touch_cnt = 0;

    bool touchpad_pressed = esp_lcd_touch_get_coordinates(tp, touch_x, touch_y, touch_strength, &touch_cnt, 1);


Supports all targets

License: Apache-2.0

To add this component to your project, run: add-dependency "espressif/esp_lcd_touch_stmpe610^1.0.5~1"

or download archive


  • espressif/esp_lcd_touch ^1.0.4
  • ESP-IDF >=5.0
  • Stats

    • Downloaded in total
      Downloaded in total 82.4k times
    • Downloaded this version
      This version: 13.1k times


    espressif/esp_lcd_touch_stmpe610 version: 1.0.5~1 |