Dear all,
I'm trying to use the CYD esp32-1732S019 board , both using the display and the touch sensor.
The display is working well, but I can't put the touch sensor to work.
Accordingly to the board config parameters, the sensor is GT911 which uses I2c.
And the strange thing is that the I2C bus can't detect the sensor at all. I've already include some code to "wakeup the sensor"... but not luck.
Any ideas on this ? here's the code I'm using.
#include <Arduino_GFX_Library.h>
#include <Wire.h>
#include <TAMC_GT911.h>
#define CYD_1_9_INCHES_ST7789
#define TFT_BL 14
#define TFT_MOSI 13
#define TFT_SCLK 12
#define TFT_DC 11
#define TFT_CS 10
#define TFT_RST 1
#define TOUCH_SDA 9
#define TOUCH_SCL 46
#define TOUCH_RST 3
#define TOUCH_INT 8
#define TOUCH_WIDTH 170
#define TOUCH_HEIGHT 320
int16_t w, h;
Arduino_DataBus *bus = new Arduino_ESP32SPI(TFT_DC /* DC */, TFT_CS/* CS */, TFT_SCLK /*12 SCK */, TFT_MOSI /* 13MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST /* RST */, 3 /* rotation */, true /* IPS */, 170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */, 35 /* col offset 2 */, 0 /* row offset 2 */);
TAMC_GT911 touch(
TOUCH_SDA,
TOUCH_SCL,
TOUCH_INT,
TOUCH_RST,
TOUCH_WIDTH,
TOUCH_HEIGHT
);
void setup()
{
uint8_t scan_count = 0;
Serial.begin(115200);
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);
if (!gfx->begin())
{
Serial.println("gfx->begin() failed!");
}
w = gfx->width();
h = gfx->height();
Serial.printf("gfx width: %d height: %d\n", w, h);
gfx->setTextSize(3);
gfx->invertDisplay(true);
gfx->fillScreen(RGB565_BLACK);
gfx->setTextColor(RGB565_RED);
gfx->setCursor(100,100);
gfx->print("Hi There");
gfx->flush();
pinMode(TOUCH_RST, OUTPUT);
pinMode(TOUCH_INT, OUTPUT);
digitalWrite(TOUCH_INT, LOW);
digitalWrite(TOUCH_RST, LOW);
delay(10);
digitalWrite(TOUCH_INT, HIGH);
delay(2);
digitalWrite(TOUCH_RST, HIGH);
delay(10);
pinMode(TOUCH_INT, INPUT);
delay(50);
Wire.begin(TOUCH_SDA,TOUCH_SCL,400000);
touch.begin(0x5d);
Serial.println("Scanning I2C bus...");
byte count = 0;
for (byte address = 1; address < 127; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("Found device at address 0x");
if (address < 16) Serial.print("0");
Serial.print(address, HEX);
if (address == 0x5D) Serial.print(" (GT911 Target)");
if (address == 0x14) Serial.print(" (GT911 Alternative)");
Serial.println();
count++;
}
}
if (count == 0) Serial.println("No I2C devices found. Check power and wiring.");
else Serial.println("Scan complete.");
}
void loop()
{
touch.read();
if (touch.isTouched) {
int x = touch.points[0].x;
int y = touch.points[0].y;
Serial.printf("Touch X:%d Y:%d\n", x, y);
delay(500);
}
}
board config setup
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_16MB.csv",
"memory_type": "qio_opi"
},
"core": "esp32",
"extra_flags": [
"'-D ARDUINO_ESP32S3_DEV'",
"'-D BOARD_HAS_PSRAM'",
"'-D ARDUINO_USB_MODE=1'",
"'-D ARDUINO_RUNNING_CORE=1'",
"'-D ARDUINO_EVENT_RUNNING_CORE=1'",
"'-D ARDUINO_USB_CDC_ON_BOOT=0'",
"'-D ESP32_1732S019C'",
"'-D DISPLAY_WIDTH=170'",
"'-D DISPLAY_HEIGHT=320'",
"'-D LVGL_BUFFER_PIXELS=(DISPLAY_WIDTH*DISPLAY_HEIGHT)'",
"'-D LVGL_BUFFER_MALLOC_FLAGS=(MALLOC_CAP_SPIRAM|MALLOC_CAP_8BIT)'",
"'-D DISPLAY_BCKL=14'",
"'-D DISPLAY_IPS'",
"'-D DISPLAY_ST7789_SPI'",
"'-D ST7789_SPI_HOST=SPI2_HOST'",
"'-D ST7789_SPI_DMA_CHANNEL=SPI_DMA_CH_AUTO'",
"'-D SMARTDISPLAY_DMA_BUFFER_SIZE=65536'",
"'-D SMARTDISPLAY_DMA_QUEUE_SIZE=12'",
"'-D SMARTDISPLAY_DMA_CHUNK_THRESHOLD=2048'",
"'-D SMARTDISPLAY_DMA_TIMEOUT_MS=1500'",
"'-D ST7789_SPI_BUS_MOSI=13'",
"'-D ST7789_SPI_BUS_MISO=GPIO_NUM_NC'",
"'-D ST7789_SPI_BUS_SCLK=12'",
"'-D ST7789_SPI_BUS_QUADWP=GPIO_NUM_NC'",
"'-D ST7789_SPI_BUS_QUADHD=GPIO_NUM_NC'",
"'-D ST7789_SPI_BUS_MAX_TRANSFER_SZ=(LVGL_BUFFER_PIXELS*sizeof(lv_color16_t))'",
"'-D ST7789_SPI_BUS_FLAGS=0'",
"'-D ST7789_SPI_BUS_INTR_FLAGS=0'",
"'-D ST7789_SPI_CONFIG_CS=10'",
"'-D ST7789_SPI_CONFIG_DC=11'",
"'-D ST7789_SPI_CONFIG_SPI_MODE=SPI_MODE3'",
"'-D ST7789_SPI_CONFIG_PCLK_HZ=24000000'",
"'-D ST7789_SPI_CONFIG_TRANS_QUEUE_DEPTH=10'",
"'-D ST7789_SPI_CONFIG_LCD_CMD_BITS=8'",
"'-D ST7789_SPI_CONFIG_LCD_PARAM_BITS=8'",
"'-D ST7789_SPI_CONFIG_FLAGS_DC_LOW_ON_DATA=false'",
"'-D ST7789_SPI_CONFIG_FLAGS_OCTAL_MODE=false'",
"'-D ST7789_SPI_CONFIG_FLAGS_LSB_FIRST=false'",
"'-D ST7789_DEV_CONFIG_RESET=1'",
"'-D ST7789_DEV_CONFIG_COLOR_SPACE=ESP_LCD_COLOR_SPACE_RGB'",
"'-D ST7789_DEV_CONFIG_BITS_PER_PIXEL=16'",
"'-D ST7789_DEV_CONFIG_FLAGS_RESET_ACTIVE_HIGH=false'",
"'-D ST7789_DEV_CONFIG_VENDOR_CONFIG=NULL'",
"'-D DISPLAY_SWAP_XY=false'",
"'-D DISPLAY_MIRROR_X=false'",
"'-D DISPLAY_MIRROR_Y=false'",
"'-D DISPLAY_GAP_X=35'",
"'-D DISPLAY_GAP_Y=0'",
"'-D BOARD_HAS_TOUCH'",
"'-D CONFIG_ESP_LCD_TOUCH_MAX_POINTS=1'",
"'-D CONFIG_ESP_LCD_TOUCH_MAX_BUTTONS=0'",
"'-D TOUCH_GT911_I2C'",
"'-D GT911_I2C_HOST=I2C_NUM_0'",
"'-D GT911_I2C_CONFIG_SDA=9'",
"'-D GT911_I2C_CONFIG_SCL=46'",
"'-D GT911_I2C_CONFIG_SDA_PULLUP_EN=GPIO_PULLUP_DISABLE'",
"'-D GT911_I2C_CONFIG_SCL_PULLUP_EN=GPIO_PULLUP_DISABLE'",
"'-D GT911_I2C_CONFIG_MASTER_CLK_SPEED=400000'",
"'-D GT911_I2C_CONFIG_CLK_FLAGS=I2C_SCLK_SRC_FLAG_FOR_NOMAL'",
"'-D GT911_IO_I2C_CONFIG_DEV_ADDR=GT911_IO_I2C_CONFIG_DEV_ADDRESS_5D'",
"'-D GT911_IO_I2C_CONFIG_CONTROL_PHASE_BYTES=1'",
"'-D GT911_IO_I2C_CONFIG_DC_BIT_OFFSET=0'",
"'-D GT911_IO_I2C_CONFIG_LCD_CMD_BITS=16'",
"'-D GT911_IO_I2C_CONFIG_LCD_PARAM_BITS=0'",
"'-D GT911_IO_I2C_CONFIG_FLAGS_DC_LOW_ON_DATA=false'",
"'-D GT911_IO_I2C_CONFIG_FLAGS_DISABLE_CONTROL_PHASE=true'",
"'-D GT911_TOUCH_CONFIG_X_MAX=DISPLAY_WIDTH'",
"'-D GT911_TOUCH_CONFIG_Y_MAX=DISPLAY_HEIGHT'",
"'-D GT911_TOUCH_CONFIG_RST=3'",
"'-D GT911_TOUCH_CONFIG_INT=8'",
"'-D GT911_TOUCH_CONFIG_LEVELS_RESET=0'",
"'-D GT911_TOUCH_CONFIG_LEVELS_INTERRUPT=0'",
"'-D TOUCH_SWAP_XY=false'",
"'-D TOUCH_MIRROR_X=false'",
"'-D TOUCH_MIRROR_Y=false'"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0x303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "esp32s3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "esp32-1732S019C",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.aliexpress.com/item/1005005059421229.html",
"vendor": "Sunton"
}

