diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
index 561204e6..46cbaabe 100644
--- a/main/CMakeLists.txt
+++ b/main/CMakeLists.txt
@@ -317,6 +317,11 @@ elseif(CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1)
set(BUILTIN_TEXT_FONT font_puhui_basic_20_4)
set(BUILTIN_ICON_FONT font_awesome_20_4)
set(DEFAULT_EMOJI_COLLECTION twemoji_64)
+elseif(CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2)
+ set(BOARD_TYPE "lilygo-t-cameraplus-s3")
+ set(BUILTIN_TEXT_FONT font_puhui_basic_20_4)
+ set(BUILTIN_ICON_FONT font_awesome_20_4)
+ set(DEFAULT_EMOJI_COLLECTION twemoji_64)
elseif(CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA)
set(BOARD_TYPE "lilygo-t-display-s3-pro-mvsrlora")
set(BUILTIN_TEXT_FONT font_puhui_basic_20_4)
diff --git a/main/boards/lilygo-t-cameraplus-s3/README.md b/main/boards/lilygo-t-cameraplus-s3/README.md
index 7d9815a1..e3c39354 100644
--- a/main/boards/lilygo-t-cameraplus-s3/README.md
+++ b/main/boards/lilygo-t-cameraplus-s3/README.md
@@ -1,33 +1,47 @@
-# 编译配置命令
+## LILYGO T-CameraPlus-S3
-**配置编译目标为 ESP32S3:**
+T-CameraPlus-S3 is an intelligent camera module developed based on the ESP32S3 chip, equipped with a 240x240 TFT display, digital microphone, speaker, independent button, power control chip, SD card module, etc. It comes with a basic UI written based on LVGL, which can achieve functions such as file management, music playback, recording, and camera projection (if the factory does not write the program, you need to manually burn the UI program named "Lvgl_UI").
+
+Official github: [T-CameraPlus-S3](https://github.com/Xinyuan-LilyGO/T-CameraPlus-S3)
+
+## Configuration
+
+**Set the compilation target to ESP32S3**
```bash
idf.py set-target esp32s3
```
-**打开 menuconfig:**
+**Open menuconfig**
```bash
idf.py menuconfig
```
-**选择板子:**
+**Select the board**
```
-Xiaozhi Assistant -> Board Type -> LILYGO T-CameraPlus-S3_V1_0_V1_1或LILYGO T-CameraPlus-S3_V1_2
+Xiaozhi Assistant -> Board Type -> LILYGO T-CameraPlus-S3_V1_0_V1_1
+Or
+Xiaozhi Assistant -> Board Type -> LILYGO T-CameraPlus-S3_V1_2
```
-**修改 psram 配置:**
+**Modify the psram configuration**
```
Component config -> ESP PSRAM -> SPI RAM config -> Mode (QUAD/OCT) -> Quad Mode PSRAM
```
-**编译:**
+
+**Select and set camera sensor**
+
+```
+Component config -> Espressif Camera Sensors Configurations -> Camera Sensor Configuration -> Select and Set Camera Sensor -> OV2640 -> Select default output format for DVP interface -> YUV422 240x240 25fps, DVP 8-bit, 20M input
+```
+
+
+**Build**
```bash
idf.py build
-```
-
-LILYGO T-CameraPlus-S3
\ No newline at end of file
+```
\ No newline at end of file
diff --git a/main/boards/lilygo-t-cameraplus-s3/config.h b/main/boards/lilygo-t-cameraplus-s3/config.h
index 4d4b1ded..0d69e691 100644
--- a/main/boards/lilygo-t-cameraplus-s3/config.h
+++ b/main/boards/lilygo-t-cameraplus-s3/config.h
@@ -9,28 +9,28 @@
#ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1
#define AUDIO_INPUT_REFERENCE true
-#define AUDIO_MIC_I2S_GPIO_BCLK static_cast(MSM261_BCLK)
-#define AUDIO_MIC_I2S_GPIO_WS static_cast(MSM261_WS)
-#define AUDIO_MIC_I2S_GPIO_DATA static_cast(MSM261_DATA)
+#define AUDIO_MIC_I2S_GPIO_BCLK MSM261_BCLK
+#define AUDIO_MIC_I2S_GPIO_WS MSM261_WS
+#define AUDIO_MIC_I2S_GPIO_DATA MSM261_DATA
#elif defined CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
#define AUDIO_INPUT_REFERENCE false
#define AUDIO_MIC_I2S_GPIO_BCLK GPIO_NUM_NC
-#define AUDIO_MIC_I2S_GPIO_WS static_cast(MP34DT05TR_LRCLK)
-#define AUDIO_MIC_I2S_GPIO_DATA static_cast(MP34DT05TR_DATA)
+#define AUDIO_MIC_I2S_GPIO_WS MP34DT05TR_LRCLK
+#define AUDIO_MIC_I2S_GPIO_DATA MP34DT05TR_DATA
-#define AUDIO_MIC_SPKR_EN static_cast(MP34DT05TR_MAX98357_EN)
+#define AUDIO_MIC_SPKR_EN MP34DT05TR_MAX98357_EN
#endif
-#define AUDIO_SPKR_I2S_GPIO_BCLK static_cast(MAX98357A_BCLK)
-#define AUDIO_SPKR_I2S_GPIO_LRCLK static_cast(MAX98357A_LRCLK)
-#define AUDIO_SPKR_I2S_GPIO_DATA static_cast(MAX98357A_DATA)
+#define AUDIO_SPKR_I2S_GPIO_BCLK MAX98357A_BCLK
+#define AUDIO_SPKR_I2S_GPIO_LRCLK MAX98357A_LRCLK
+#define AUDIO_SPKR_I2S_GPIO_DATA MAX98357A_DATA
-#define TOUCH_I2C_SDA_PIN static_cast(TP_SDA)
-#define TOUCH_I2C_SCL_PIN static_cast(TP_SCL)
+#define TOUCH_I2C_SDA_PIN TP_SDA
+#define TOUCH_I2C_SCL_PIN TP_SCL
#define BUILTIN_LED_GPIO GPIO_NUM_NC
#define BOOT_BUTTON_GPIO GPIO_NUM_0
-#define KEY1_BUTTON_GPIO static_cast(KEY1)
+#define KEY1_BUTTON_GPIO KEY1
#define VOLUME_UP_BUTTON_GPIO GPIO_NUM_NC
#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_NC
@@ -41,7 +41,7 @@
#define DISPLAY_DC LCD_DC
#define DISPLAY_RST LCD_RST
#define DISPLAY_CS LCD_CS
-#define DISPLAY_BL static_cast(LCD_BL)
+#define DISPLAY_BL LCD_BL
#define DISPLAY_MIRROR_X false
#define DISPLAY_MIRROR_Y false
#define DISPLAY_SWAP_XY false
@@ -52,6 +52,6 @@
#define DISPLAY_BACKLIGHT_PIN DISPLAY_BL
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
-#define AP1511B_GPIO static_cast(AP1511B_FBC)
+#define AP1511B_GPIO AP1511B_FBC
#endif // _BOARD_CONFIG_H_
diff --git a/main/boards/lilygo-t-cameraplus-s3/config.json b/main/boards/lilygo-t-cameraplus-s3/config.json
index c08d0b0f..a6386443 100644
--- a/main/boards/lilygo-t-cameraplus-s3/config.json
+++ b/main/boards/lilygo-t-cameraplus-s3/config.json
@@ -4,13 +4,19 @@
{
"name": "lilygo-t-cameraplus-s3",
"sdkconfig_append": [
- "CONFIG_SPIRAM_MODE_QUAD=y"
+ "CONFIG_SPIRAM_MODE_QUAD=y",
+ "CONFIG_CAMERA_OV2640=y",
+ "CONFIG_CAMERA_OV2640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
+ "CONFIG_CAMERA_OV2640_DVP_YUV422_240X240_25FPS=y"
]
},
{
"name": "lilygo-t-cameraplus-s3_v1_2",
"sdkconfig_append": [
- "CONFIG_SPIRAM_MODE_QUAD=y"
+ "CONFIG_SPIRAM_MODE_QUAD=y",
+ "CONFIG_CAMERA_OV2640=y",
+ "CONFIG_CAMERA_OV2640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
+ "CONFIG_CAMERA_OV2640_DVP_YUV422_240X240_25FPS=y"
]
}
]
diff --git a/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc b/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc
index e6940a34..8e1424f4 100644
--- a/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc
+++ b/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc
@@ -244,12 +244,8 @@ private:
esp_video_init_sccb_config_t sccb_config = {
#ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1
- .init_sccb = true,
- .i2c_config = {
- .port = 0,
- .scl_pin = SIOC_GPIO_NUM,
- .sda_pin = GPIO_NUM_NC,
- },
+ .init_sccb = false,
+ .i2c_handle = i2c_bus_,
#elif defined CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2
.init_sccb = true,
.i2c_config = {