Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
523993c
Adapt for LilyGO-T-Circle-S3 device
Llgok Jan 21, 2025
37c6c8e
Merge branch 'main' of https://github.com/78/xiaozhi-esp32
Llgok Jan 21, 2025
7fd7682
Adapt for LilyGO-T-Circle-S3 device
Llgok Jan 21, 2025
877aeab
Remove comments and modify the size of the lilygo-t-circle-s3 image
Llgok Jan 22, 2025
dba42fe
Modify the code style and format to Google C++
Llgok Jan 23, 2025
409811f
Modify the code style and format to Google C++
Llgok Jan 23, 2025
7e95fcf
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Jan 24, 2025
75c328c
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 22, 2025
5736cc8
Merge branch '78:main' into main
Llgok Apr 24, 2025
616f896
Fixed bugs in the LILYGO T-Circle-S3 board and added support for two …
Llgok Apr 24, 2025
c575445
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 24, 2025
ba0e770
Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora an…
Llgok Apr 24, 2025
b89b50a
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 24, 2025
5b01084
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 24, 2025
7ec6a76
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 24, 2025
78cd477
Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora an…
Llgok Apr 24, 2025
4d38455
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 24, 2025
7abaf71
Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora an…
Llgok Apr 24, 2025
2bac2fd
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Apr 24, 2025
3c78588
Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora an…
Llgok Apr 24, 2025
b750b95
Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora an…
Llgok Apr 24, 2025
ec398f8
Fix the color display issue for T-Display-S3-Pro-MVSRLora and LILYGO …
Llgok Apr 29, 2025
0a9d4c7
Merge branch '78:main' into main
Llgok May 17, 2025
3c4f726
Merge branch '78:main' into main
Llgok May 24, 2025
c9ce4fe
Merge branch '78:main' into main
Llgok May 26, 2025
7583e9b
Update T-CameraPlus-S3_V1.2 Version Xiaozhi Example
Llgok May 26, 2025
7dcf471
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Jun 3, 2025
adcbdb5
Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
Llgok Jun 5, 2025
b67449d
Resolve the issue where the camera on the T-CameraPlus-S3_V1.2 board …
Llgok Jun 5, 2025
78661c3
Merge branch '78:main' into main
Llgok Jun 5, 2025
2ebd7ab
Merge branch '78:main' into main
Llgok Jun 23, 2025
761abfc
Merge branch '78:main' into main
Llgok Jul 21, 2025
bf2a8c0
Enhance microphone reception volume
Llgok Jul 22, 2025
318b4c5
Merge branch '78:main' into main
Llgok Jul 22, 2025
7484165
fix the issue where voice wake-up is not working
Llgok Jul 23, 2025
a7d319b
fix the issue where voice wake-up is not working
Llgok Jul 23, 2025
0322713
Merge branch '78:main' into main
Llgok Aug 6, 2025
3c2da07
Merge branch '78:main' into main
Llgok Sep 29, 2025
acf708a
Merge branch '78:main' into main
Llgok Oct 7, 2025
c6b71be
Add LILYGO T-Display-P4 board adaptation
Llgok Oct 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions main/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,11 @@ elseif(CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA)
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_P4)
set(BOARD_TYPE "lilygo-t-display-p4")
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_MOVECALL_MOJI_ESP32S3)
set(BOARD_TYPE "movecall-moji-esp32s3")
set(BUILTIN_TEXT_FONT font_puhui_basic_20_4)
Expand Down
23 changes: 23 additions & 0 deletions main/Kconfig.projbuild
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,9 @@ choice BOARD_TYPE
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA_NO_BATTERY
bool "LILYGO T-Display-S3-Pro-MVSRLora_No_Battery"
depends on IDF_TARGET_ESP32S3
config BOARD_TYPE_LILYGO_T_DISPLAY_P4
bool "LILYGO T-Display-P4"
depends on IDF_TARGET_ESP32P4
config BOARD_TYPE_MOVECALL_MOJI_ESP32S3
bool "Movecall Moji 小智AI衍生版"
depends on IDF_TARGET_ESP32S3
Expand Down Expand Up @@ -383,6 +386,26 @@ choice BOARD_TYPE
depends on IDF_TARGET_ESP32S3
endchoice

choice
depends on BOARD_TYPE_LILYGO_T_DISPLAY_P4
prompt "Select the screen type"
default SCREEN_TYPE_HI8561
config SCREEN_TYPE_HI8561
bool "HI8561"
config SCREEN_TYPE_RM69A10
bool "RM69A10"
endchoice

choice
depends on BOARD_TYPE_LILYGO_T_DISPLAY_P4
prompt "Select the color format of the screen"
default SCREEN_PIXEL_FORMAT_RGB565
config SCREEN_PIXEL_FORMAT_RGB565
bool "RGB565"
config SCREEN_PIXEL_FORMAT_RGB888
bool "RGB888"
endchoice

choice ESP_S3_LCD_EV_Board_Version_TYPE
depends on BOARD_TYPE_ESP_S3_LCD_EV_Board
prompt "EV_BOARD Type"
Expand Down
42 changes: 42 additions & 0 deletions main/boards/lilygo-t-display-p4/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## LILYGO T-Display-P4

The T-Display-P4 is a versatile development board based on the ESP32-P4 core. Its features include:

1. **High Processing Power**: Equipped with the high-performance ESP32-P4 core processor, it can handle more complex graphics and video tasks, delivering smoother display performance.
2. **Low Power Design**: Offers multiple selectable power modes to effectively reduce energy consumption and extend battery life.
3. **High-Resolution Display**: Supports high resolution (default with a large MIPI interface screen at 540x1168px), providing sharp and clear visuals.
4. **Rich Peripheral Support**: Onboard peripherals include an HD MIPI touchscreen, ESP32-C6 module, speaker, microphone, LoRa module, GPS module, Ethernet, a linear vibration motor, an independent battery gauge for monitoring battery health and percentage, and an MIPI camera. Multiple GPIOs of both the ESP32-P4 and ESP32-C6 are exposed, enhancing the device's expandability.

Official github: [T-Display-P4](https://github.com/Xinyuan-LilyGO/T-Display-P4)

## Configuration

### ESP32P4 Configuration

* Set the compilation target to ESP32P4

idf.py set-target esp32p4

* Open menuconfig

idf.py menuconfig

* Select the board

Xiaozhi Assistant -> Board Type -> LILYGO T-Display-P4

* Select the screen type

Xiaozhi Assistant -> Select the screen type -> (Select the screen type you need to configure)

* Screen the screen pixel format

Xiaozhi Assistant -> Select the color format of the screen -> (Select the screen pixel format you need to configure)

* Build

idf.py build

### ESP32C6 Configuration

* Flash the slave example from the esp-hosted-mcu library for the target chip ESP32C6. The esp-hosted-mcu version must match the one used in the xiaozhi-esp32 library.
76 changes: 76 additions & 0 deletions main/boards/lilygo-t-display-p4/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_

#include <driver/gpio.h>

#include "t_display_p4_config.h"

#if defined CONFIG_SCREEN_PIXEL_FORMAT_RGB565
#define SCREEN_BITS_PER_PIXEL 16
#define SCREEN_COLOR_RGB_PIXEL_FORMAT LCD_COLOR_PIXEL_FORMAT_RGB565
#define LVGL_COLOR_FORMAT LV_COLOR_FORMAT_RGB565
#elif defined CONFIG_SCREEN_PIXEL_FORMAT_RGB888
#define SCREEN_BITS_PER_PIXEL 24
#define SCREEN_COLOR_RGB_PIXEL_FORMAT LCD_COLOR_PIXEL_FORMAT_RGB888
#define LVGL_COLOR_FORMAT LV_COLOR_FORMAT_RGB888
#else
#error "unknown macro definition, please select the correct macro definition."
#endif

// SCREEN
#if defined CONFIG_SCREEN_TYPE_HI8561
#define SCREEN_WIDTH HI8561_SCREEN_WIDTH
#define SCREEN_HEIGHT HI8561_SCREEN_HEIGHT
#define SCREEN_MIPI_DSI_DPI_CLK_MHZ HI8561_SCREEN_MIPI_DSI_DPI_CLK_MHZ
#define SCREEN_MIPI_DSI_HSYNC HI8561_SCREEN_MIPI_DSI_HSYNC
#define SCREEN_MIPI_DSI_HBP HI8561_SCREEN_MIPI_DSI_HBP
#define SCREEN_MIPI_DSI_HFP HI8561_SCREEN_MIPI_DSI_HFP
#define SCREEN_MIPI_DSI_VSYNC HI8561_SCREEN_MIPI_DSI_VSYNC
#define SCREEN_MIPI_DSI_VBP HI8561_SCREEN_MIPI_DSI_VBP
#define SCREEN_MIPI_DSI_VFP HI8561_SCREEN_MIPI_DSI_VFP
#define SCREEN_DATA_LANE_NUM HI8561_SCREEN_DATA_LANE_NUM
#define SCREEN_LANE_BIT_RATE_MBPS HI8561_SCREEN_LANE_BIT_RATE_MBPS

#elif defined CONFIG_SCREEN_TYPE_RM69A10
#define SCREEN_WIDTH RM69A10_SCREEN_WIDTH
#define SCREEN_HEIGHT RM69A10_SCREEN_HEIGHT
#define SCREEN_MIPI_DSI_DPI_CLK_MHZ RM69A10_SCREEN_MIPI_DSI_DPI_CLK_MHZ
#define SCREEN_MIPI_DSI_HSYNC RM69A10_SCREEN_MIPI_DSI_HSYNC
#define SCREEN_MIPI_DSI_HBP RM69A10_SCREEN_MIPI_DSI_HBP
#define SCREEN_MIPI_DSI_HFP RM69A10_SCREEN_MIPI_DSI_HFP
#define SCREEN_MIPI_DSI_VSYNC RM69A10_SCREEN_MIPI_DSI_VSYNC
#define SCREEN_MIPI_DSI_VBP RM69A10_SCREEN_MIPI_DSI_VBP
#define SCREEN_MIPI_DSI_VFP RM69A10_SCREEN_MIPI_DSI_VFP
#define SCREEN_DATA_LANE_NUM RM69A10_SCREEN_DATA_LANE_NUM
#define SCREEN_LANE_BIT_RATE_MBPS RM69A10_SCREEN_LANE_BIT_RATE_MBPS

#else
#error "unknown macro definition, please select the correct macro definition."
#endif

#define AUDIO_INPUT_SAMPLE_RATE 24000
#define AUDIO_OUTPUT_SAMPLE_RATE 24000

#define AUDIO_INPUT_REFERENCE true

#define AUDIO_I2S_GPIO_MCLK static_cast<gpio_num_t>(ES8311_MCLK)
#define AUDIO_I2S_GPIO_WS static_cast<gpio_num_t>(ES8311_WS_LRCK)
#define AUDIO_I2S_GPIO_BCLK static_cast<gpio_num_t>(ES8311_BCLK)
#define AUDIO_I2S_GPIO_DIN static_cast<gpio_num_t>(ES8311_ADC_DATA)
#define AUDIO_I2S_GPIO_DOUT static_cast<gpio_num_t>(ES8311_DAC_DATA)

#define AUDIO_CODEC_PA_PIN GPIO_NUM_NC
#define AUDIO_CODEC_I2C_SDA_PIN static_cast<gpio_num_t>(ES8311_SDA)
#define AUDIO_CODEC_I2C_SCL_PIN static_cast<gpio_num_t>(ES8311_SCL)
#define AUDIO_CODEC_ES8311_ADDR ES8311_CODEC_DEFAULT_ADDR

#define BOOT_BUTTON_GPIO GPIO_NUM_35

#define SCREEN_SWAP_XY false
#define SCREEN_MIRROR_X false
#define SCREEN_MIRROR_Y false

#define SCREEN_OFFSET_X 0
#define SCREEN_OFFSET_Y 0

#endif // _BOARD_CONFIG_H_
Loading