Skip to content

添加乐鑫开发板esp32-s3-lcd-ev-board支持 #543

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Apr 30, 2025
Merged

添加乐鑫开发板esp32-s3-lcd-ev-board支持 #543

merged 10 commits into from
Apr 30, 2025

Conversation

ourkix
Copy link
Contributor

@ourkix ourkix commented Apr 25, 2025

新增乐鑫开发板esp32-s3-lcd-ev-board支持

@ourkix
Copy link
Contributor Author

ourkix commented Apr 25, 2025

实际效果展示
8b33e951-30d2-4bfb-8ce4-4aa0e1c6a160
32645b1c-8286-4bbe-9c12-9a0ede5c86be

@78
Copy link
Owner

78 commented Apr 25, 2025

这是官方提交还是第三方开发者提交呢,目录名称需要保持统一。 esp- 开头, esp 表示 espressif

@ourkix
Copy link
Contributor Author

ourkix commented Apr 25, 2025

这是官方提交还是第三方开发者提交呢,目录名称需要保持统一。 esp- 开头, esp 表示 espressif

第三方开发者提交的,目录名称我改改

@ourkix
Copy link
Contributor Author

ourkix commented Apr 25, 2025

是否改为这样即可
screenshot-20250425-155120

@isamu2025
Copy link

@ourkix 你好 1.5版本的主板报错了

entry 0x403c8904
I (35) octal_psram: vendor id : 0x0d (AP)
I (36) octal_psram: dev id : 0x03 (generation 4)
I (36) octal_psram: density : 0x05 (128 Mbit)
I (40) octal_psram: good-die : 0x01 (Pass)
I (45) octal_psram: Latency : 0x01 (Fixed)
I (51) octal_psram: VCC : 0x00 (1.8V)
I (56) octal_psram: SRF : 0x01 (Fast Refresh)
I (62) octal_psram: BurstType : 0x01 (Hybrid Wrap)
I (67) octal_psram: BurstLen : 0x01 (32 Byte)
I (73) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)
I (79) octal_psram: DriveStrength: 0x00 (1/1)
I (84) MSPI Timing: PSRAM timing tuning index: 6
I (89) esp_psram: Found 16MB PSRAM device
I (94) esp_psram: Speed: 80MHz
I (98) cpu_start: Multicore app
I (113) cpu_start: Pro cpu start user code
I (113) cpu_start: cpu freq: 240000000 Hz
I (113) app_init: Application information:
I (116) app_init: Project name: xiaozhi
I (121) app_init: App version: 1.6.1
I (126) app_init: Compile time: Apr 25 2025 17:46:29
I (132) app_init: ELF file SHA256: f723d1f04...
I (137) app_init: ESP-IDF: v5.3.2-dirty
I (142) efuse_init: Min chip rev: v0.0
I (147) efuse_init: Max chip rev: v0.99
I (152) efuse_init: Chip rev: v0.2
I (157) heap_init: Initializing. RAM available for dynamic allocation:
I (164) heap_init: At 3FCAB600 len 0003E110 (248 KiB): RAM
I (170) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
I (176) heap_init: At 600FE104 len 00001ED4 (7 KiB): RTCRAM
I (183) esp_psram: Adding pool of 16384K of PSRAM memory to heap allocator
I (191) spi_flash: detected chip: gd
I (194) spi_flash: flash io: qio
I (199) sleep: Configure to isolate all GPIO pins in sleep state
I (205) sleep: Enable automatic switching of GPIO sleep configuration
I (212) main_task: Started on CPU0
I (242) esp_psram: Reserving pool of 48K of internal memory for DMA/internal allocations
I (242) main_task: Calling app_main()
I (252) BackgroundTask: background_task started
I (252) Board: UUID=6691b25a-aca8-44cb-a162-4c9f33486d27 SKU=ESP32-S3-LCD-EV-Board
I (262) button: IoT Button Version: 3.5.0
I (262) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (272) gpio: GPIO[8]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0
I (282) gpio: GPIO[18]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0
E (292) i2c.master: I2C transaction unexpected nack detected
E (292) i2c.master: s_i2c_synchronous_transaction(888): I2C transaction failed
E (302) i2c.master: i2c_master_transmit(1116): I2C transaction failed
E (312) tca9554: write_direction_reg(127): Write direction reg failed
E (322) tca9554: reset(142): Write dir reg failed
E (322) tca9554: esp_io_expander_new_i2c_tca9554(81): Reset failed
E (332) io_expander: esp_io_expander_set_dir(35): Invalid handle
E (342) io_expander: esp_io_expander_set_level(63): Invalid handle
E (342) Thing: Thing type not found: Backlight
I (352) ESP32_S3_LCD_EV_Board: Init GC9503V
I (352) gpio: GPIO[3]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (362) ESP32_S3_LCD_EV_Board: Install 3-wire SPI panel IO
E (372) lcd_panel.io.3wire_spi: esp_lcd_new_panel_io_3wire_spi(85): IO Expander handle is required if any IO is not gpio
I (382) ESP32_S3_LCD_EV_Board: Install 3-wire SPI panel IO:258
I (392) ESP32_S3_LCD_EV_Board: Install RGB LCD panel driver
I (392) ESP32_S3_LCD_EV_Board: Initialize RGB LCD panel
E (402) gc9503: esp_lcd_new_panel_gc9503(61): invalid arguments
E (402) lcd_panel: esp_lcd_panel_reset(15): invalid panel handle
E (412) lcd_panel: esp_lcd_panel_init(22): invalid panel handle
I (422) Display: Power management not supported
E (422) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle
E (432) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle
E (442) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle
E (442) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle
E (452) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle

@isamu2025
Copy link

wechat_20250425175711

wechat_20250425175944
wechat_20250425175955
wechat_20250425180007

@isamu2025
Copy link

用的是你https://github.com/ourkix/xiaozhi-esp32/tree/main 的代码

@78
Copy link
Owner

78 commented Apr 26, 2025

是否改为这样即可 screenshot-20250425-155120

应该 esp- 开头才是乐鑫公司的板子,esp32-s3 开头那个是微雪的板子,他们很久以前没有注意,导致后面不好分辨。

@genvex
Copy link

genvex commented Apr 27, 2025

我觉得 ,引脚芯片已加入依赖,是不是可以直接使用,就不用在board里加一套了

@genvex
Copy link

genvex commented Apr 27, 2025

该板 采用触摸驱动与 esp32-s3-touch-amoled-1.8 所用驱动相同,能否也不触摸驱动一步到位支持了。

@ourkix
Copy link
Contributor Author

ourkix commented Apr 27, 2025

@ourkix 你好 1.5版本的主板报错了

entry 0x403c8904 I (35) octal_psram: vendor id : 0x0d (AP) I (36) octal_psram: dev id : 0x03 (generation 4) I (36) octal_psram: density : 0x05 (128 Mbit) I (40) octal_psram: good-die : 0x01 (Pass) I (45) octal_psram: Latency : 0x01 (Fixed) I (51) octal_psram: VCC : 0x00 (1.8V) I (56) octal_psram: SRF : 0x01 (Fast Refresh) I (62) octal_psram: BurstType : 0x01 (Hybrid Wrap) I (67) octal_psram: BurstLen : 0x01 (32 Byte) I (73) octal_psram: Readlatency : 0x02 (10 cycles@Fixed) I (79) octal_psram: DriveStrength: 0x00 (1/1) I (84) MSPI Timing: PSRAM timing tuning index: 6 I (89) esp_psram: Found 16MB PSRAM device I (94) esp_psram: Speed: 80MHz I (98) cpu_start: Multicore app I (113) cpu_start: Pro cpu start user code I (113) cpu_start: cpu freq: 240000000 Hz I (113) app_init: Application information: I (116) app_init: Project name: xiaozhi I (121) app_init: App version: 1.6.1 I (126) app_init: Compile time: Apr 25 2025 17:46:29 I (132) app_init: ELF file SHA256: f723d1f04... I (137) app_init: ESP-IDF: v5.3.2-dirty I (142) efuse_init: Min chip rev: v0.0 I (147) efuse_init: Max chip rev: v0.99 I (152) efuse_init: Chip rev: v0.2 I (157) heap_init: Initializing. RAM available for dynamic allocation: I (164) heap_init: At 3FCAB600 len 0003E110 (248 KiB): RAM I (170) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM I (176) heap_init: At 600FE104 len 00001ED4 (7 KiB): RTCRAM I (183) esp_psram: Adding pool of 16384K of PSRAM memory to heap allocator I (191) spi_flash: detected chip: gd I (194) spi_flash: flash io: qio I (199) sleep: Configure to isolate all GPIO pins in sleep state I (205) sleep: Enable automatic switching of GPIO sleep configuration I (212) main_task: Started on CPU0 I (242) esp_psram: Reserving pool of 48K of internal memory for DMA/internal allocations I (242) main_task: Calling app_main() I (252) BackgroundTask: background_task started I (252) Board: UUID=6691b25a-aca8-44cb-a162-4c9f33486d27 SKU=ESP32-S3-LCD-EV-Board I (262) button: IoT Button Version: 3.5.0 I (262) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (272) gpio: GPIO[8]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0 I (282) gpio: GPIO[18]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0 E (292) i2c.master: I2C transaction unexpected nack detected E (292) i2c.master: s_i2c_synchronous_transaction(888): I2C transaction failed E (302) i2c.master: i2c_master_transmit(1116): I2C transaction failed E (312) tca9554: write_direction_reg(127): Write direction reg failed E (322) tca9554: reset(142): Write dir reg failed E (322) tca9554: esp_io_expander_new_i2c_tca9554(81): Reset failed E (332) io_expander: esp_io_expander_set_dir(35): Invalid handle E (342) io_expander: esp_io_expander_set_level(63): Invalid handle E (342) Thing: Thing type not found: Backlight I (352) ESP32_S3_LCD_EV_Board: Init GC9503V I (352) gpio: GPIO[3]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (362) ESP32_S3_LCD_EV_Board: Install 3-wire SPI panel IO E (372) lcd_panel.io.3wire_spi: esp_lcd_new_panel_io_3wire_spi(85): IO Expander handle is required if any IO is not gpio I (382) ESP32_S3_LCD_EV_Board: Install 3-wire SPI panel IO:258 I (392) ESP32_S3_LCD_EV_Board: Install RGB LCD panel driver I (392) ESP32_S3_LCD_EV_Board: Initialize RGB LCD panel E (402) gc9503: esp_lcd_new_panel_gc9503(61): invalid arguments E (402) lcd_panel: esp_lcd_panel_reset(15): invalid panel handle E (412) lcd_panel: esp_lcd_panel_init(22): invalid panel handle I (422) Display: Power management not supported E (422) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle E (432) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle E (442) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle E (442) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle E (452) lcd_panel: esp_lcd_panel_draw_bitmap(34): invalid panel handle

@isamu2025 关于你的这个报错应该是io口配置的问题,我手里的板子是1.4版本的,1.5版本的io口有所变化,你需要变更一下io定义,请在pin_config.h和config.h文件中进行配置。可以参考开发板官方的文档 “https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/user_guide.html”
screenshot-20250427-142714
如果你改好后能运行,可以提供一份代码给我我合并上

@ourkix
Copy link
Contributor Author

ourkix commented Apr 27, 2025

该板 采用触摸驱动与 esp32-s3-touch-amoled-1.8 所用驱动相同,能否也不触摸驱动一步到位支持了。

image
官方确实是有支持部分触摸驱动的,但是小智AI中没有应用上我就没加

@ourkix
Copy link
Contributor Author

ourkix commented Apr 28, 2025

@78 我修改了下目录名称,还有开发板的硬件版本,同时修复了一些bug,目录名的话你看这样行不,可以的话我重新上提交
image

@ourkix
Copy link
Contributor Author

ourkix commented Apr 28, 2025

@isamu2025 就算改了io我发现在1.6.1上面也会有点小问题会重启,晚点我更新下,你用我的新版再改io就好

@isamu2025
Copy link

@isamu2025 就算改了io我发现在1.6.1上面也会有点小问题会重启,晚点我更新下,你用我的新版再改io就好

收到,晚上来测试

@isamu2025
Copy link

@isamu2025 就算改了io我发现在1.6.1上面也会有点小问题会重启,晚点我更新下,你用我的新版再改io就好

wechat_20250428205136
wechat_20250428205202

1.5版本的测试成功,后面就是背光控制和AEC语音打断的测试了。

@isamu2025
Copy link

@ourkix 我认为,可以做成1.4和1.5的两个版本的IO选择。 ESP官方只会1.5 PCB的16MB PSRAM版本,越卖越多。

@78
Copy link
Owner

78 commented Apr 28, 2025

目录名的 "." 可以换掉?

esp-lcd-ev-board-1p4 怎样

@ourkix
Copy link
Contributor Author

ourkix commented Apr 29, 2025

目录名的 "." 可以换掉?

esp-lcd-ev-board-1p4 怎样

@78 可以,我再改改,把-1.4都去掉了,换成能通过配置选择的方式
image

@ourkix
Copy link
Contributor Author

ourkix commented Apr 29, 2025

@ourkix 我认为,可以做成1.4和1.5的两个版本的IO选择。 ESP官方只会1.5 PCB的16MB PSRAM版本,越卖越多。

@isamu2025 我改了下,你那可以试试我新改的版本,在1.5板子上看看能正常工作不

@78
Copy link
Owner

78 commented Apr 29, 2025

{
    "target": "esp32s3",
    "builds": [
        {
            "name": "esp-s3-lcd-ev-board",
            "sdkconfig_append": [
                "ESP_S3_LCD_EV_Board_1p4=y"
            ]
        }
    ]
}

1.4与1.5或者其他版本,是否固件兼容?
如果不兼容的话,建议builds的name还是加上版本号,例如esp-s3-lcd-ev-board-1p4,发布版本时会打包生成 v1.6.0_esp-s3-lcd-ev-board-1p4.zip。
固件不兼容,需要使用不同的build name,防止OTA升级时使用了同一个固件。

@isamu2025
Copy link

{
    "target": "esp32s3",
    "builds": [
        {
            "name": "esp-s3-lcd-ev-board",
            "sdkconfig_append": [
                "ESP_S3_LCD_EV_Board_1p4=y"
            ]
        }
    ]
}

1.4与1.5或者其他版本,是否固件兼容? 如果不兼容的话,建议builds的name还是加上版本号,例如esp-s3-lcd-ev-board-1p4,发布版本时会打包生成 v1.6.0_esp-s3-lcd-ev-board-1p4.zip。 固件不兼容,需要使用不同的build name,防止OTA升级时使用了同一个固件。

虾哥,1.4和1.5PCB的差别是在IO接口 和16MB PSRAM上。 1.4PCB 和1.5PCB。要分别设定不同的CONFIG配置。可以学习面包板LCD。

@ourkix
Copy link
Contributor Author

ourkix commented Apr 30, 2025

{
    "target": "esp32s3",
    "builds": [
        {
            "name": "esp-s3-lcd-ev-board",
            "sdkconfig_append": [
                "ESP_S3_LCD_EV_Board_1p4=y"
            ]
        }
    ]
}

1.4与1.5或者其他版本,是否固件兼容? 如果不兼容的话,建议builds的name还是加上版本号,例如esp-s3-lcd-ev-board-1p4,发布版本时会打包生成 v1.6.0_esp-s3-lcd-ev-board-1p4.zip。 固件不兼容,需要使用不同的build name,防止OTA升级时使用了同一个固件。

固件上面由于引脚不同,是不兼容的,builds改为这样是否可行

{
    "target": "esp32s3",
    "builds": [
        {
            "name": "esp-s3-lcd-ev-board_1p4",
            "sdkconfig_append": [
                "CONFIG_ESP_S3_LCD_EV_Board_1p4=y"
            ]
        },
        {
            "name": "esp-s3-lcd-ev-board_1p5",
            "sdkconfig_append": [
                "CONFIG_ESP_S3_LCD_EV_Board_1p5=y"
            ]
        }
    ]
} 

@78
Copy link
Owner

78 commented Apr 30, 2025

用 esp-s3-lcd-ev-board-1p4 和 esp-s3-lcd-ev-board-1p5 吧 。
下划线在 scripts 的脚本里用来 split('_') 分离版本号和board name了,所以可能会有麻烦。

@ourkix
Copy link
Contributor Author

ourkix commented Apr 30, 2025

用 esp-s3-lcd-ev-board-1p4 和 esp-s3-lcd-ev-board-1p5 吧 。 下划线在 scripts 的脚本里用来 split('_') 分离版本号和board name了,所以可能会有麻烦。

好的,改好上传了

{
    "target": "esp32s3",
    "builds": [
        {
            "name": "esp-s3-lcd-ev-board-1p4",
            "sdkconfig_append": [
                "CONFIG_ESP_S3_LCD_EV_Board_1p4=y"
            ]
        },
        {
            "name": "esp-s3-lcd-ev-board-1p5",
            "sdkconfig_append": [
                "CONFIG_ESP_S3_LCD_EV_Board_1p5=y"
            ]
        }
    ]
} 

@78 78 merged commit f590e49 into 78:main Apr 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants