{
    "build": {
      "arduino": {
        "ldscript": "esp32_out.ld"
      },
      "core": "esp32",
      "extra_flags": [
        "'-D ARDUINO_ESP32_DEV'",
        "'-D ESP32_2432S024C'",
        "'-D LCD_WIDTH=240'",
        "'-D LCD_HEIGHT=320'",
        "'-D LVGL_BUFFER_PIXELS=(LCD_WIDTH*LCD_HEIGHT/4)'",
        "'-D LVGL_BUFFER_MALLOC_FLAGS=(MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)'",
        "'-D GPIO_BCKL=27'",
        "'-D LCD_ILI9341_SPI'",
        "'-D ILI9341_SPI_HOST=SPI2_HOST'",
        "'-D ILI9341_SPI_DMA_CHANNEL=SPI_DMA_CH_AUTO'",
        "'-D ILI9341_SPI_BUS_MOSI_IO_NUM=13'",
        "'-D ILI9341_SPI_BUS_MISO_IO_NUM=12'",
        "'-D ILI9341_SPI_BUS_SCLK_IO_NUM=14'",
        "'-D ILI9341_SPI_BUS_QUADWP_IO_NUM=GPIO_NUM_NC'",
        "'-D ILI9341_SPI_BUS_QUADHD_IO_NUM=GPIO_NUM_NC'",
        "'-D ILI9341_SPI_BUS_MAX_TRANSFER_SZ=(LVGL_BUFFER_PIXELS*sizeof(lv_color16_t))'",
        "'-D ILI9341_SPI_BUS_FLAGS=0'",
        "'-D ILI9341_SPI_BUS_INTR_FLAGS=0'",
        "'-D ILI9341_SPI_CONFIG_CS_GPIO_NUM=15'",
        "'-D ILI9341_SPI_CONFIG_DC_GPIO_NUM=2'",
        "'-D ILI9341_SPI_CONFIG_SPI_MODE=SPI_MODE0'",
        "'-D ILI9341_SPI_CONFIG_PCLK_HZ=24000000'",
        "'-D ILI9341_SPI_CONFIG_TRANS_QUEUE_DEPTH=10'",
        "'-D ILI9341_SPI_CONFIG_LCD_CMD_BITS=8'",
        "'-D ILI9341_SPI_CONFIG_LCD_PARAM_BITS=8'",
        "'-D ILI9341_SPI_CONFIG_FLAGS_DC_AS_CMD_PHASE=false'",
        "'-D ILI9341_SPI_CONFIG_FLAGS_DC_LOW_ON_DATA=false'",
        "'-D ILI9341_SPI_CONFIG_FLAGS_OCTAL_MODE=false'",
        "'-D ILI9341_SPI_CONFIG_FLAGS_LSB_FIRST=false'",
        "'-D ILI9341_DEV_CONFIG_RESET_GPIO_NUM=GPIO_NUM_NC'",
        "'-D ILI9341_DEV_CONFIG_COLOR_SPACE=ESP_LCD_COLOR_SPACE_BGR'",
        "'-D ILI9341_DEV_CONFIG_BITS_PER_PIXEL=16'",
        "'-D ILI9341_DEV_CONFIG_FLAGS_RESET_ACTIVE_HIGH=false'",
        "'-D ILI9341_DEV_CONFIG_VENDOR_CONFIG=\"(ili9341_vendor_config_t[]){{.init_cmds=(ili9341_lcd_init_cmd_t[]){{.cmd=0xCF,.data=(uint8_t[]){0x00,0xC1,0x30},.data_bytes=3},{.cmd=0xED,.data=(uint8_t[]){0x64,0x03,0x12,0x81},.data_bytes=4},{.cmd=0xE8,.data=(uint8_t[]){0x85,0x00,0x78},.data_bytes=3},{.cmd=0xCB,.data=(uint8_t[]){0x39,0x2C,0x00,0x34,0x02},.data_bytes=5},{.cmd=0xF7,.data=(uint8_t[]){0x20},.data_bytes=1},{.cmd=0xEA,.data=(uint8_t[]){0x00,0x00},.data_bytes=2},{.cmd=0xC0,.data=(uint8_t[]){0x10},.data_bytes=1},{.cmd=0xC1,.data=(uint8_t[]){0x00},.data_bytes=1},{.cmd=0xC5,.data=(uint8_t[]){0x30,0x30},.data_bytes=2,},{.cmd=0xC7,.data=(uint8_t[]){0xB7},.data_bytes=1},{.cmd=0x3A,.data=(uint8_t[]){0x55},.data_bytes=1},{.cmd=0x36,.data=(uint8_t[]){0x08},.data_bytes=1},{.cmd=0xB1,.data=(uint8_t[]){0x00,0x1A},.data_bytes=2},{.cmd=0xB6,.data=(uint8_t[]){0x08,0x82,0x27},.data_bytes=3},{.cmd=0xF2,.data=(uint8_t[]){0x00},.data_bytes=1},{.cmd=0x26,.data=(uint8_t[]){0x01},.data_bytes=1},{.cmd=0xE0,.data=(uint8_t[]){0x0F,0x2A,0x28,0x08,0x0E,0x08,0x54,0xA9,0x43,0x0A,0x0F,0x00,0x00,0x00,0x00},.data_bytes=15},{.cmd=0xE1,.data=(uint8_t[]){0x00,0x15,0x17,0x07,0x11,0x06,0x2B,0x56,0x3C,0x05,0x10,0x0F,0x3F,0x3F,0x0F},.data_bytes=15},{.cmd=0x2B,.data=(uint8_t[]){0x00,0x00,0x01,0x3F},.data_bytes=4},{.cmd=0x2A,.data=(uint8_t[]){0x00,0x00,0x00,0xEF},.data_bytes=4},{.cmd=0x21},{.cmd=0x11,.delay_ms=120},{.cmd=0x29,.delay_ms=1}},.init_cmds_size=23}}\"'",
        "'-D LCD_SWAP_XY=false'",
        "'-D LCD_MIRROR_X=true'",
        "'-D LCD_MIRROR_Y=false'",
        "'-D BOARD_HAS_TOUCH'",
        "'-D TOUCH_CST816S_I2C'",
        "'-D CST816S_I2C_HOST=I2C_NUM_0'",
        "'-D CST816S_I2C_CONFIG_SDA_IO_NUM=33'",
        "'-D CST816S_I2C_CONFIG_SCL_IO_NUM=32'",
        "'-D CST816S_I2C_CONFIG_SDA_PULLUP_EN=GPIO_PULLUP_ENABLE'",
        "'-D CST816S_I2C_CONFIG_SCL_PULLUP_EN=GPIO_PULLUP_ENABLE'",
        "'-D CST816S_I2C_CONFIG_MASTER_CLK_SPEED=400000'",
        "'-D CST816S_I2C_CONFIG_CLK_FLAGS=0'",
        "'-D CST816S_IO_I2C_CONFIG_DEV_ADDR=ESP_LCD_TOUCH_IO_I2C_CST816S_ADDRESS'",
        "'-D CST816S_IO_I2C_CONFIG_CONTROL_PHASE_BYTES=1'",
        "'-D CST816S_IO_I2C_CONFIG_DC_BIT_OFFSET=0'",
        "'-D CST816S_IO_I2C_CONFIG_LCD_CMD_BITS=8'",
        "'-D CST816S_IO_I2C_CONFIG_LCD_PARAM_BITS=0'",
        "'-D CST816S_IO_I2C_CONFIG_FLAGS_DC_LOW_ON_DATA=false'",
        "'-D CST816S_IO_I2C_CONFIG_FLAGS_DISABLE_CONTROL_PHASE=true'",
        "'-D CST816S_TOUCH_CONFIG_X_MAX=LCD_WIDTH'",
        "'-D CST816S_TOUCH_CONFIG_Y_MAX=LCD_HEIGHT'",
        "'-D CST816S_TOUCH_CONFIG_RST_GPIO_NUM=25'",
        "'-D CST816S_TOUCH_CONFIG_INT_GPIO_NUM=21'",
        "'-D CST816S_TOUCH_CONFIG_LEVELS_RESET=0'",
        "'-D CST816S_TOUCH_CONFIG_LEVELS_INTERRUPT=0'",
        "'-D TOUCH_SWAP_XY=true'",      
        "'-D TOUCH_SWAP_X=false'",
        "'-D TOUCH_SWAP_Y=false'",
        "'-D BOARD_HAS_TF'",
        "'-D TF_CS=5'",
        "'-D TF_SPI_MOSI=23'",
        "'-D TF_SPI_SCLK=18'",
        "'-D TF_SPI_MISO=19'",
        "'-D BOARD_HAS_RGB_LED'",
        "'-D RGB_LED_R=4'",
        "'-D RGB_LED_G=16'",
        "'-D RGB_LED_B=17'",
        "'-D BOARD_HAS_CDS'",
        "'-D CDS=34'",
        "'-D BOARD_HAS_SPEAK'",
        "'-D SPEAK=26'",

        "-DCYD_SCREEN_GAP_PX=8",
        "-DCYD_SCREEN_MIN_BUTTON_HEIGHT_PX=35",
        "-DCYD_SCREEN_MIN_BUTTON_WIDTH_PX=35",
        "-DCYD_SCREEN_FONT=lv_font_montserrat_14",
        "-DCYD_SCREEN_FONT_SMALL=lv_font_montserrat_10",
        "-DCYD_SCREEN_SIDEBAR_SIZE_PX=40",
        "-DCYD_SCREEN_DRIVER_ESP32_SMARTDISPLAY=1",
        "-DCYD_SCREEN_DISABLE_TOUCH_CALIBRATION=1"
      ],
      "f_cpu": "240000000L",
      "f_flash": "40000000L",
      "flash_mode": "dio",
      "mcu": "esp32",
      "variant": "esp32"
    },
    "connectivity": [
      "wifi",
      "bluetooth",
      "ethernet",
      "can"
    ],
    "debug": {
      "openocd_board": "esp-wroom-32.cfg"
    },
    "frameworks": [
      "arduino",
      "espidf"
    ],
    "name": "esp32-2432S024C-SD",
    "upload": {
      "flash_size": "4MB",
      "maximum_ram_size": 327680,
      "maximum_size": 4194304,
      "require_upload_port": true,
      "speed": 460800
    },
    "url": "https://www.aliexpress.com/item/1005005865107357.html",
    "vendor": "Sunton"
  }