feat: add waveshare ESP32-S3-Touch-AMOLED-1.75C support (#1786)

* feat: add waveshare ESP32-S3-Touch-AMOLED-1.75C support

* fix: fixed ESP32-S3-Touch-AMOLED-1.75 config.json
This commit is contained in:
Y1hsiaochunnn
2026-02-26 20:50:32 +08:00
committed by GitHub
parent b778d2f0cd
commit 025059aadf
6 changed files with 47 additions and 13 deletions

View File

@@ -315,6 +315,12 @@ elseif(CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75)
set(BUILTIN_TEXT_FONT font_puhui_basic_30_4) set(BUILTIN_TEXT_FONT font_puhui_basic_30_4)
set(BUILTIN_ICON_FONT font_awesome_30_4) set(BUILTIN_ICON_FONT font_awesome_30_4)
set(DEFAULT_EMOJI_COLLECTION twemoji_64) set(DEFAULT_EMOJI_COLLECTION twemoji_64)
elseif(CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75C)
set(MANUFACTURER "waveshare")
set(BOARD_TYPE "esp32-s3-touch-amoled-1.75")
set(BUILTIN_TEXT_FONT font_puhui_basic_30_4)
set(BUILTIN_ICON_FONT font_awesome_30_4)
set(DEFAULT_EMOJI_COLLECTION twemoji_64)
elseif(CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_1_83) elseif(CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_1_83)
set(MANUFACTURER "waveshare") set(MANUFACTURER "waveshare")
set(BOARD_TYPE "esp32-s3-touch-lcd-1.83") set(BOARD_TYPE "esp32-s3-touch-lcd-1.83")

View File

@@ -281,6 +281,9 @@ choice BOARD_TYPE
config BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75 config BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75
bool "Waveshare ESP32-S3-Touch-AMOLED-1.75" bool "Waveshare ESP32-S3-Touch-AMOLED-1.75"
depends on IDF_TARGET_ESP32S3 depends on IDF_TARGET_ESP32S3
config BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75C
bool "Waveshare ESP32-S3-Touch-AMOLED-1.75C"
depends on IDF_TARGET_ESP32S3
config BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_1_83 config BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_1_83
bool "Waveshare ESP32-S3-Touch-LCD-1.83" bool "Waveshare ESP32-S3-Touch-LCD-1.83"
depends on IDF_TARGET_ESP32S3 depends on IDF_TARGET_ESP32S3
@@ -728,7 +731,7 @@ config USE_DEVICE_AEC
bool "Enable Device-Side AEC" bool "Enable Device-Side AEC"
default n default n
depends on USE_AUDIO_PROCESSOR && (BOARD_TYPE_ESP_BOX_3 || BOARD_TYPE_ESP_BOX || BOARD_TYPE_ESP_BOX_LITE \ depends on USE_AUDIO_PROCESSOR && (BOARD_TYPE_ESP_BOX_3 || BOARD_TYPE_ESP_BOX || BOARD_TYPE_ESP_BOX_LITE \
|| BOARD_TYPE_LICHUANG_DEV_S3 || BOARD_TYPE_ESP_KORVO2_V3 || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75 || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_1_83\ || BOARD_TYPE_LICHUANG_DEV_S3 || BOARD_TYPE_ESP_KORVO2_V3 || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75|| BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75C || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_1_83\
|| BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_2_06 || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_4B || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_4B || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_7B \ || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_2_06 || BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_4B || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_4B || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_7B \
|| BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_3_4C || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_4C || BOARD_TYPE_ESP_S3_LCD_EV_Board_2 || BOARD_TYPE_YUNLIAO_S3 \ || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_3_4C || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_4C || BOARD_TYPE_ESP_S3_LCD_EV_Board_2 || BOARD_TYPE_YUNLIAO_S3 \
|| BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_7 || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_8 || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_10_1 \ || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_7 || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_8 || BOARD_TYPE_WAVESHARE_ESP32_P4_WIFI6_TOUCH_LCD_10_1 \

View File

@@ -7,12 +7,25 @@
#define AUDIO_OUTPUT_SAMPLE_RATE 24000 #define AUDIO_OUTPUT_SAMPLE_RATE 24000
#define AUDIO_INPUT_REFERENCE true #define AUDIO_INPUT_REFERENCE true
#if CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75
#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_42 #define AUDIO_I2S_GPIO_MCLK GPIO_NUM_42
#define AUDIO_I2S_GPIO_WS GPIO_NUM_45 #define AUDIO_I2S_GPIO_WS GPIO_NUM_45
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_9 #define AUDIO_I2S_GPIO_BCLK GPIO_NUM_9
#define AUDIO_I2S_GPIO_DIN GPIO_NUM_10 #define AUDIO_I2S_GPIO_DIN GPIO_NUM_10
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_8 #define AUDIO_I2S_GPIO_DOUT GPIO_NUM_8
#define EXAMPLE_PIN_NUM_LCD_RST GPIO_NUM_39
#define PIN_NUM_TOUCH_RST GPIO_NUM_40
#define PIN_NUM_TOUCH_INT GPIO_NUM_11
#elif CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75C
#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_16
#define AUDIO_I2S_GPIO_WS GPIO_NUM_45
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_9
#define AUDIO_I2S_GPIO_DIN GPIO_NUM_10
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_8
#define EXAMPLE_PIN_NUM_LCD_RST GPIO_NUM_1
#define PIN_NUM_TOUCH_RST GPIO_NUM_2
#define PIN_NUM_TOUCH_INT GPIO_NUM_11
#endif
#define AUDIO_CODEC_PA_PIN GPIO_NUM_46 #define AUDIO_CODEC_PA_PIN GPIO_NUM_46
#define AUDIO_CODEC_I2C_SDA_PIN GPIO_NUM_15 #define AUDIO_CODEC_I2C_SDA_PIN GPIO_NUM_15
@@ -29,7 +42,7 @@
#define EXAMPLE_PIN_NUM_LCD_DATA1 GPIO_NUM_5 #define EXAMPLE_PIN_NUM_LCD_DATA1 GPIO_NUM_5
#define EXAMPLE_PIN_NUM_LCD_DATA2 GPIO_NUM_6 #define EXAMPLE_PIN_NUM_LCD_DATA2 GPIO_NUM_6
#define EXAMPLE_PIN_NUM_LCD_DATA3 GPIO_NUM_7 #define EXAMPLE_PIN_NUM_LCD_DATA3 GPIO_NUM_7
#define EXAMPLE_PIN_NUM_LCD_RST GPIO_NUM_39
#define DISPLAY_WIDTH 466 #define DISPLAY_WIDTH 466
#define DISPLAY_HEIGHT 466 #define DISPLAY_HEIGHT 466
#define DISPLAY_MIRROR_X false #define DISPLAY_MIRROR_X false

View File

@@ -6,6 +6,15 @@
"name": "esp32-s3-touch-amoled-1.75", "name": "esp32-s3-touch-amoled-1.75",
"sdkconfig_append": [ "sdkconfig_append": [
"CONFIG_USE_WECHAT_MESSAGE_STYLE=n", "CONFIG_USE_WECHAT_MESSAGE_STYLE=n",
"CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75=y",
"CONFIG_USE_DEVICE_AEC=y"
]
},
{
"name": "esp32-s3-touch-amoled-1.75c",
"sdkconfig_append": [
"CONFIG_USE_WECHAT_MESSAGE_STYLE=n",
"CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75C=y",
"CONFIG_USE_DEVICE_AEC=y" "CONFIG_USE_DEVICE_AEC=y"
] ]
} }

View File

@@ -1,6 +1,6 @@
#include "wifi_board.h" #include "wifi_board.h"
#include "display/lcd_display.h" #include "display/lcd_display.h"
#include "esp_lcd_sh8601.h" #include "esp_lcd_co5300.h"
#include "codecs/box_audio_codec.h" #include "codecs/box_audio_codec.h"
#include "application.h" #include "application.h"
@@ -58,7 +58,7 @@ public:
#define LCD_OPCODE_READ_CMD (0x03ULL) #define LCD_OPCODE_READ_CMD (0x03ULL)
#define LCD_OPCODE_WRITE_COLOR (0x32ULL) #define LCD_OPCODE_WRITE_COLOR (0x32ULL)
static const sh8601_lcd_init_cmd_t vendor_specific_init[] = { static const co5300_lcd_init_cmd_t vendor_specific_init[] = {
// set display to qspi mode // set display to qspi mode
{0xFE, (uint8_t[]){0x20}, 1, 0}, {0xFE, (uint8_t[]){0x20}, 1, 0},
{0x19, (uint8_t[]){0x10}, 1, 0}, {0x19, (uint8_t[]){0x10}, 1, 0},
@@ -223,13 +223,13 @@ private:
#endif #endif
} }
void InitializeSH8601Display() { void InitializeDisplay() {
esp_lcd_panel_io_handle_t panel_io = nullptr; esp_lcd_panel_io_handle_t panel_io = nullptr;
esp_lcd_panel_handle_t panel = nullptr; esp_lcd_panel_handle_t panel = nullptr;
// 液晶屏控制IO初始化 // 液晶屏控制IO初始化
ESP_LOGD(TAG, "Install panel IO"); ESP_LOGD(TAG, "Install panel IO");
esp_lcd_panel_io_spi_config_t io_config = SH8601_PANEL_IO_QSPI_CONFIG( esp_lcd_panel_io_spi_config_t io_config = CO5300_PANEL_IO_QSPI_CONFIG(
EXAMPLE_PIN_NUM_LCD_CS, EXAMPLE_PIN_NUM_LCD_CS,
nullptr, nullptr,
nullptr); nullptr);
@@ -237,9 +237,9 @@ private:
// 初始化液晶屏驱动芯片 // 初始化液晶屏驱动芯片
ESP_LOGD(TAG, "Install LCD driver"); ESP_LOGD(TAG, "Install LCD driver");
const sh8601_vendor_config_t vendor_config = { const co5300_vendor_config_t vendor_config = {
.init_cmds = &vendor_specific_init[0], .init_cmds = &vendor_specific_init[0],
.init_cmds_size = sizeof(vendor_specific_init) / sizeof(sh8601_lcd_init_cmd_t), .init_cmds_size = sizeof(vendor_specific_init) / sizeof(co5300_lcd_init_cmd_t),
.flags = { .flags = {
.use_qspi_interface = 1, .use_qspi_interface = 1,
}}; }};
@@ -249,7 +249,7 @@ private:
panel_config.rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB; panel_config.rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB;
panel_config.bits_per_pixel = 16; panel_config.bits_per_pixel = 16;
panel_config.vendor_config = (void* )&vendor_config; panel_config.vendor_config = (void* )&vendor_config;
ESP_ERROR_CHECK(esp_lcd_new_panel_sh8601(panel_io, &panel_config, &panel)); ESP_ERROR_CHECK(esp_lcd_new_panel_co5300(panel_io, &panel_config, &panel));
esp_lcd_panel_set_gap(panel, 0x06, 0); esp_lcd_panel_set_gap(panel, 0x06, 0);
esp_lcd_panel_reset(panel); esp_lcd_panel_reset(panel);
esp_lcd_panel_init(panel); esp_lcd_panel_init(panel);
@@ -267,8 +267,8 @@ private:
esp_lcd_touch_config_t tp_cfg = { esp_lcd_touch_config_t tp_cfg = {
.x_max = DISPLAY_WIDTH - 1, .x_max = DISPLAY_WIDTH - 1,
.y_max = DISPLAY_HEIGHT - 1, .y_max = DISPLAY_HEIGHT - 1,
.rst_gpio_num = GPIO_NUM_40, .rst_gpio_num = PIN_NUM_TOUCH_RST,
.int_gpio_num = GPIO_NUM_11, .int_gpio_num = PIN_NUM_TOUCH_INT,
.levels = { .levels = {
.reset = 0, .reset = 0,
.interrupt = 0, .interrupt = 0,
@@ -309,10 +309,12 @@ public:
WaveshareEsp32s3TouchAMOLED1inch75() : boot_button_(BOOT_BUTTON_GPIO) { WaveshareEsp32s3TouchAMOLED1inch75() : boot_button_(BOOT_BUTTON_GPIO) {
InitializePowerSaveTimer(); InitializePowerSaveTimer();
InitializeCodecI2c(); InitializeCodecI2c();
#if CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_AMOLED_1_75
InitializeTca9554(); InitializeTca9554();
#endif
InitializeAxp2101(); InitializeAxp2101();
InitializeSpi(); InitializeSpi();
InitializeSH8601Display(); InitializeDisplay();
InitializeTouch(); InitializeTouch();
InitializeButtons(); InitializeButtons();
InitializeTools(); InitializeTools();

View File

@@ -1,6 +1,7 @@
## IDF Component Manager Manifest File ## IDF Component Manager Manifest File
dependencies: dependencies:
waveshare/esp_lcd_sh8601: 1.0.2 waveshare/esp_lcd_sh8601: 1.0.2
espressif/esp_lcd_co5300: ^2.0.3
espressif/esp_lcd_ili9341: ==1.2.0 espressif/esp_lcd_ili9341: ==1.2.0
espressif/esp_lcd_gc9a01: ==2.0.1 espressif/esp_lcd_gc9a01: ==2.0.1
espressif/esp_lcd_st77916: ^1.0.1 espressif/esp_lcd_st77916: ^1.0.1