diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19607706..13cc6736 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,7 @@ idf_component_register(
REQUIRES
driver
esp_lcd
+ esp-io-expander
)
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-missing-field-initializers -Wno-narrowing)
diff --git a/ESP_Panel_Conf_Template.h b/ESP_Panel_Conf_Template.h
index 5dbec7d1..06669cfb 100644
--- a/ESP_Panel_Conf_Template.h
+++ b/ESP_Panel_Conf_Template.h
@@ -39,7 +39,7 @@
#define ESP_PANEL_USE_LCD (0)
#if ESP_PANEL_USE_LCD
/**
- * LCD IC name. Choose one of the following:
+ * LCD controller name. Choose one of the following:
* - ST7262
* - ST7789
* - GC9503
diff --git a/README.md b/README.md
index 068d93f2..2c5411ea 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,19 @@
-# esp-display-panel
+[](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/arduino_lint.yml) [](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/pre-commit.yml) [](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/build_test.yml)
-esp-display-panel is a versatile Arduino library designed to drive display panels with ESP32. It is primarily developed for various [Espressif development boards](#espressif-development-boards), and can also be used for custom boards.
+# ESP Display Panel
-esp-display-panel is based on [arduino-esp32](https://github.com/espressif/arduino-esp32) and [Espressif Components Registry](https://components.espressif.com/), with various components encapsulated using C++.
+* [中文版](./README_CN.md)
+
+esp-display-panel is an Arduino library designed for driving display screens using ESP32 SoCs. It can be used not only for developing various [Espressif development boards](#espressif-development-boards) but also for custom board development.
+
+esp-display-panel encapsulates various components from the [Espressif Components Registry](https://components.espressif.com/). It is developed based on [arduino-esp32](https://github.com/espressif/arduino-esp32) and can be easily downloaded and integrated into the Arduino IDE.
## Overview
-The block diagram of esp-display-panel is shown in the figure below, mainly comprising the following features:
+The block diagram of esp-display-panel is shown in the figure below, it primarily includes the following features:
* Supports various Espressif development boards.
-* Supports custom boards.
+* Supports custom board.
* Supports multiple types of drivers, including Bus, LCD, Touch, Backlight.

@@ -37,11 +41,11 @@ The block diagram of esp-display-panel is shown in the figure below, mainly comp
### Bus
-| **Bus** | **Version** |
-| ------------------------------------------------------------------------------------------------------ | ----------- |
-| I2C | - |
-| SPI | - |
-| [3-wire SPI + RGB]((https://components.espressif.com/components/espressif/esp_lcd_panel_io_additions)) | v1.0.0 |
+| **Bus** | **Version** |
+| ---------------------------------------------------------------------------------------------------- | ----------- |
+| I2C | - |
+| SPI | - |
+| [3-wire SPI + RGB](https://components.espressif.com/components/espressif/esp_lcd_panel_io_additions) | v1.0.0 |
### LCD Controller
@@ -66,7 +70,7 @@ The block diagram of esp-display-panel is shown in the figure below, mainly comp
## How to Use
-To use a library in Arduino IDE, please refer to the [docs](https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries) for IDE v1.x.x or the [docs](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-installing-a-library) for IDE v2.x.x.
+For information on how to use the library in the Arduino IDE, please refer to the documentation for [Arduino IDE v1.x.x](https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries) or [Arduino IDE v2.x.x](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-installing-a-library).
### Examples
@@ -80,16 +84,15 @@ Here are some examples of using esp-display-panel. To access them in the Arduino
### Detailed Usage
-Here are the details of how to use esp-display-panel.
+The following provides a comprehensive guide on how to use esp-display-panel.
### Configure esp-display-panel
-esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. When esp-display-panel is installed, follow these configuration steps:
+esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, follow these configuration steps:
-1. Go to the directory of the installed Arduino libraries.
-2. Go to the `esp-display-panel` folder, copy `ESP_Panel_Conf_Template.h` and place it out of `esp-display-panel` folder. It should be at the same level as the `esp-display-panel` folder. Then rename it as `ESP_Panel_Conf.h`.
-
-Finally, the layout of the Arduino Libraries folder with `ESP_Panel_Conf.h` should look like this:
+1. Navigate to the directory where Arduino libraries are installed.
+2. Navigate to the `esp-display-panel` folder, copy `ESP_Panel_Conf_Template.h` and place the copy outside the `esp-display-panel` folder at the same directory level. Then rename the copied file as `ESP_Panel_Conf.h`.
+3. Finally, the layout of the Arduino Libraries folder with `ESP_Panel_Conf.h` appear as follows:
```
Arduino
@@ -102,38 +105,41 @@ Arduino
### Configure Supported Board
-Please refer to the list of [Supported Boards](#supported-boards--drivers) to verify whether the current board is compatible.
+Please refer to the [Supported Boards](#supported-boards--drivers) list to check if the current board is compatible. Otherwise, please refer to the section on [Configuring Unsupported Boards](#configure-unsupported-board).
-Open `ESP_Panel_Conf.h` and uncomment one of the following macros to select an supported development board. Taking `ESP32_S3_BOX` as an example:
+1. Open `ESP_Panel_Conf.h` file. First, set the macro `ESP_PANEL_USE_SUPPORTED_BOARD` to `1` (default is `1`). Then, according to the name of your target development board, uncomment the macro definitions in the format `ESP_PANEL_BOARD_` below,
+2. The following code takes *ESP32_S3_BOX* development board as an example:
```c
+ ...
// #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT
#define ESP_PANEL_BOARD_ESP32_S3_BOX
// #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE
+ ...
```
-After that, refer to [Use Library](#use-library) to use the library in the sketch.
+3. After that, refer to the [APIs](#apis) section to use the library in the sketch.
### Configure Unsupported Board
-Since esp-display-panel library can only utilize the internally supported drivers, please ensure that the LCD, Touch, and required Bus for the custom board are present in the list of [Supported Drivers](#supported-boards--drivers).
+Since esp-display-panel library can only utilize the internally supported drivers, please ensure that the **LCD**, **Touch**, and **Bus** for the custom board are present in the list of [Supported Drivers](#supported-boards--drivers).
-Open `ESP_Panel_Conf.h`. Firstly, set the macro `ESP_PANEL_USE_SUPPORTED_BOARD` to `0`, as below:
+1. Open `ESP_Panel_Conf.h` and set the macro `ESP_PANEL_USE_SUPPORTED_BOARD` to `0`, as shown below:
```c
#define ESP_PANEL_USE_SUPPORTED_BOARD (0)
```
-After that, modify the values of other macros as needed. They represent parameters that can be adjusted for LCD, Touch, and other devices initialization.
+2. Modify the values of other macros as needed. They represent parameters that can be adjusted for LCD, Touch, and other devices initialization.
-Here are some important macros for the **LCD**:
+* Here are some important macros for the **LCD**:
```c
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (0)
/**
- * LCD IC name. Choose one of the following:
+ * LCD controller name. Choose one of the following:
* - ST7262
* - ST7789
* - GC9503
@@ -189,7 +195,7 @@ Here are some important macros for the **LCD**:
#define ESP_PANEL_LCD_RST_LEVEL (0)
```
-Here are some important macros for the **LCD Touch**:
+* Here are some important macros for the **LCD Touch**:
```c
/* Set to 0 if not using LCD touch */
@@ -242,7 +248,7 @@ Here are some important macros for the **LCD Touch**:
#define ESP_PANEL_LCD_TOUCH_INT_LEVEL (0)
```
-Here are some important macros for the **backlight**:
+* Here are some important macros for the **backlight**:
```c
#define ESP_PANEL_USE_BL (0)
@@ -265,9 +271,11 @@ Here are some important macros for the **backlight**:
...
```
-### Use Library
+3. After configuring the `ESP_Panel_Conf.h` file, please refer to the [APIs](#apis) section to use the functionalities provided by esp-display-panel.
+
+### APIs
-Use the library in the sketch, and the following codes show the usage of common APIs:
+The following codes show the usage of common APIs:
```
#include
diff --git a/README_CN.md b/README_CN.md
new file mode 100644
index 00000000..fe677f79
--- /dev/null
+++ b/README_CN.md
@@ -0,0 +1,309 @@
+[](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/arduino_lint.yml) [](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/pre-commit.yml) [](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/build_test.yml)
+
+# ESP Display Panel
+
+* [English Version](./README.md)
+
+esp-display-panel 是为 ESP32 SoCs 设计用来驱动显示屏幕的 Arduino 库。它不仅可以用于开发多款[乐鑫开发板](#乐鑫开发板),也适用于开发自定义的开发板。
+
+esp-display-panel 封装了多种[乐鑫组件库](https://components.espressif.com/)中相关的组件,它需要基于 [arduino-esp32](https://github.com/espressif/arduino-esp32) 进行开发,并且可以直接从 Arduino IDE 中下载获取。
+
+## 概述
+
+esp-display-panel 的功能框图如下所示,主要包含了以下功能:
+
+* 支持多款乐鑫开发板。
+* 支持自定义的开发板。
+* 支持多种类型的设备驱动,包括接口总线、LCD、触摸、背光。
+
+
+
+## 依赖项版本
+
+| **esp-display-panel** | **arduino-esp32** | **esp-io-expander** |
+| :-------------------: | :---------------: | :-----------------: |
+| v0.x.x | >= v2.0.9 | >= v0.0.1 |
+
+## 支持的开发板和驱动
+
+### 乐鑫开发板
+
+| **图片** | **名称** | **LCD 接口** | **LCD 控制器** | **触摸接口** | **触摸控制器** |
+| :--------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | :--------------: | :------------: | :----------: | :------------: |
+|
| [ESP32-C3-LCDkit](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c3/esp32-c3-lcdkit/index.html) | SPI | GC9A01 | - | - |
+|
| [ESP32-S3-Box](https://github.com/espressif/esp-box/tree/master) | SPI | ILI9342 | I2C | TT21100 |
+|
| [ESP32-S3-Box-Lite](https://github.com/espressif/esp-box/tree/master) | SPI | ST7789 | - | - |
+|
| [ESP32-S3-EYE](https://github.com/espressif/esp-who/blob/master/docs/en/get-started/ESP32-S3-EYE_Getting_Started_Guide.md) | SPI | ST7789 | - | - |
+|
| [ESP32-S3-Korvo-2](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/user-guide-esp32-s3-korvo-2.html) | SPI | ILI9342 | I2C | TT21100 |
+|
| [ESP32-S3-LCD-EV-Board](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/index.html) | 3-wire SPI + RGB | GC9503 | I2C | FT5X06 |
+|
| [ESP32-S3-LCD-EV-Board-2](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/index.html) | RGB | ST7262E43 | I2C | GT1151 |
+|
| [ESP32-S3-USB-OTG](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-usb-otg/index.html) | SPI | ST7789 | - | - |
+
+### 接口总线
+
+| **接口总线** | **版本** |
+| ---------------------------------------------------------------------------------------------------- | -------- |
+| I2C | - |
+| SPI | - |
+| [3-wire SPI + RGB](https://components.espressif.com/components/espressif/esp_lcd_panel_io_additions) | v1.0.0 |
+
+### LCD 控制器
+
+| **LCD 控制器** | **版本** |
+| ------------------------------------------------------------------------------ | -------- |
+| ST7262 | - |
+| ST7789 | - |
+| [GC9503](https://components.espressif.com/components/espressif/esp_lcd_gc9503) | 1.0.0 |
+| [GC9A01](https://components.espressif.com/components/espressif/esp_lcd_gc9a01) | 1.0.1 |
+
+### 触摸控制器
+
+| **触摸控制器** | **版本** |
+| ---------------------------------------------------------------------------------------- | -------- |
+| [esp_lcd_touch](https://components.espressif.com/components/espressif/esp_lcd_touch) | 1.0.4 |
+| [CST816S](https://components.espressif.com/components/espressif/esp_lcd_touch_cst816s) | 1.0.3 |
+| [FT5x06](https://components.espressif.com/components/espressif/esp_lcd_touch_ft5x06) | 1.0.5~1 |
+| [GT1151](https://components.espressif.com/components/espressif/esp_lcd_touch_gt1151) | 1.0.5~1 |
+| [GT911](https://components.espressif.com/components/espressif/esp_lcd_touch_gt911) | 1.0.7~1 |
+| [TT21100](https://components.espressif.com/components/espressif/esp_lcd_touch_tt21100) | 1.0.7~1 |
+| [STMPE610](https://components.espressif.com/components/espressif/esp_lcd_touch_stmpe610) | 1.0.6 |
+
+## 如何使用
+
+关于如何在 Arduino IDE 中使用库,请参阅 [Arduino IDE v1.x.x](https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries) 或者 [Arduino IDE v2.x.x](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-installing-a-library) 的文档。
+
+### 示例
+
+以下是使用 esp-display-panel 的一些示例程序。在 Arduino IDE 中,可以通过点击菜单栏中的 `File -> Examples -> esp-display-panel` 来使用它们。 **每个示例及其目录下的 README 文件都提供了详细的使用说明,请在编译之前查看它们。**
+
+* Panel:
+ * [Draw Color Bar](examples/Panel/DrawColorBar/): 此示例演示如何绘制简单的彩条。
+ * [Read Touch Point](examples/Panel/ReadTouchPoint/): 此示例演示如何读取触摸点。
+* LVGL:
+ * [Porting](examples/LVGL/Porting/): 此示例演示如何移植 LVGL (v8.3.x)。
+
+### 详细使用说明
+
+以下是如何使用 esp-display-panel 的详细说明。
+
+### 配置 esp-display-panel
+
+esp-display-panel 具有自己的配置文件,称为 `ESP_Panel_Conf.h`。在安装 esp-display-panel 后,按照以下配置步骤进行操作:
+
+1. 进入 Arduino 存放库的目录。
+2. 进入 `esp-display-panel` 文件夹,将 `ESP_Panel_Conf_Template.h` 复制并放置在 `esp-display-panel` 文件夹之外。它应该与 `esp-display-panel` 文件夹在同一级别,然后将其重命名为 `ESP_Panel_Conf.h`。
+3. 最终,包含 `ESP_Panel_Conf.h` 的 Arduino 库所在文件夹的布局应如下所示:
+
+```
+Arduino
+ |-libraries
+ |-esp-display-panel
+ |-other_lib_1
+ |-other_lib_2
+ |-ESP_Panel_Conf.h
+```
+
+### 配置支持的开发板
+
+请参考[支持的开发板列表](#支持的开发板和驱动)来检查当前开发板是否兼容,否则请参考[配置不支持的开发板](#配置不支持的开发板)一节。
+
+1. 打开 `ESP_Panel_Conf.h` 文件,首先,将宏 `ESP_PANEL_USE_SUPPORTED_BOARD` 设置为 `1`(默认值为 `1`)。然后,根据目标开发板的名称在其下方将格式为 `ESP_PANEL_BOARD_` 的宏定义取消注释。
+2. 以 *ESP32_S3_BOX* 开发板为例,下面是修改后的 `ESP_Panel_Conf.h` 文件的部分内容:
+
+```c
+...
+// #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT
+#define ESP_PANEL_BOARD_ESP32_S3_BOX
+// #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE
+...
+```
+
+3. 之后,请参考[函数接口](#函数接口)一节使用 esp-display-panel 提供的功能。
+
+### 配置不支持的开发板
+
+由于 esp-display-panel 只能使用内部支持的驱动程序,请确认自定义开发板的 **LCD**、**触摸**和**接口总线**位于[支持的驱动程序列表](#supported-boards--drivers)中。
+
+1. 打开 `ESP_Panel_Conf.h` 文件,将宏 `ESP_PANEL_USE_SUPPORTED_BOARD` 设置为 `0`,如下所示:
+
+```c
+#define ESP_PANEL_USE_SUPPORTED_BOARD (0)
+```
+
+2. 根据需要修改其他宏定义的值,它们代表了 LCD、触摸和其他设备初始化时所用的可调参数。
+
+* 以下是 **LCD** 的一些重要宏定义:
+
+```c
+/* Set to 0 if not using LCD */
+#define ESP_PANEL_USE_LCD (0)
+
+/**
+ * LCD controller name. Choose one of the following:
+ * - ST7262
+ * - ST7789
+ * - GC9503
+ * - GC9A01
+ */
+#define ESP_PANEL_LCD_NAME ST7789
+
+/* LCD resolution in pixels */
+#define ESP_PANEL_LCD_H_RES (320)
+#define ESP_PANEL_LCD_V_RES (240)
+
+/* LCD Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_LCD_BUS_SKIP_INIT_HOST (0)
+/**
+ * LCD bus type. Choose one of the following:
+ * - 0: I2C (not supported yet)
+ * - 1: SPI
+ * - 2: I80 (not supported yet)
+ * - 3: RGB
+ */
+#define ESP_PANEL_LCD_BUS_TYPE (1)
+/**
+ * LCD bus parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/lcd.html for details.
+ */
+#define ESP_PANEL_LCD_BUS_HOST_ID (1)
+...
+
+/* LCD Color Settings */
+/* LCD color depth in bits */
+#define ESP_PANEL_LCD_COLOR_BITS (16)
+/*
+ * LCD Color Space. Choose one of the following:
+ * - 0: RGB
+ * - 1: BGR
+ */
+#define ESP_PANEL_LCD_COLOR_SPACE (0)
+#define ESP_PANEL_LCD_INEVRT_COLOR (0)
+
+/* LCD Transformation Flags */
+#define ESP_PANEL_LCD_SWAP_XY (0)
+#define ESP_PANEL_LCD_MIRROR_X (0)
+#define ESP_PANEL_LCD_MIRROR_Y (0)
+
+/* LCD Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_LCD_IO_RST (-1)
+#define ESP_PANEL_LCD_RST_LEVEL (0)
+```
+
+* 以下是 **LCD 触摸**的一些重要宏定义:
+
+```c
+/* Set to 0 if not using LCD touch */
+#define ESP_PANEL_USE_LCD_TOUCH (0)
+
+/**
+ * LCD Touch IC name. Choose one of the following:
+ * - CST816S
+ * - FT5x06
+ * - GT1151
+ * - GT911
+ * - TT21100
+ * - STMPE610
+ */
+#define ESP_PANEL_LCD_TOUCH_NAME TT21100
+
+/* LCD Touch resolution in pixels */
+#define ESP_PANEL_LCD_TOUCH_H_RES (ESP_PANEL_LCD_H_RES)
+#define ESP_PANEL_LCD_TOUCH_V_RES (ESP_PANEL_LCD_V_RES)
+
+/* LCD Touch Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_LCD_TOUCH_BUS_SKIP_INIT_HOST (0)
+/**
+ * LCD touch bus type. Choose one of the following:
+ * - 0: I2C
+ * - 1: SPI
+ */
+#define ESP_PANEL_LCD_TOUCH_BUS_TYPE (0)
+/**
+ * LCD touch bus parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/lcd.html for details.
+ */
+#define ESP_PANEL_LCD_TOUCH_BUS_HOST_ID (0)
+...
+
+/* LCD Touch Transformation Flags */
+#define ESP_PANEL_LCD_TOUCH_SWAP_XY (0)
+#define ESP_PANEL_LCD_TOUCH_MIRROR_X (0)
+#define ESP_PANEL_LCD_TOUCH_MIRROR_Y (0)
+
+/* LCD Touch Other Settings */
+#define ESP_PANEL_LCD_TOUCH_IO_RST (-1)
+#define ESP_PANEL_LCD_TOUCH_IO_INT (-1)
+#define ESP_PANEL_LCD_TOUCH_RST_LEVEL (0)
+#define ESP_PANEL_LCD_TOUCH_INT_LEVEL (0)
+```
+
+* 以下是**背光**的一些重要宏定义:
+
+```c
+#define ESP_PANEL_USE_BL (0)
+
+/* IO num of backlight pin */
+#define ESP_PANEL_LCD_IO_BL (45)
+
+/* If the backlight is on when high level, set to 1; otherwise to 0 */
+#define ESP_PANEL_LCD_BL_ON_LEVEL (1)
+
+/* Set to 1 if use PWM for backlight brightness control. */
+#define ESP_PANEL_LCD_BL_USE_PWM (0)
+
+/**
+ * Backlight LEDC Parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/ledc.html for details.
+ */
+#define ESP_PANEL_LCD_BL_PWM_TIMER (0)
+...
+```
+
+3. 配置好 `ESP_Panel_Conf.h` 文件后,就可以按照[函数接口](#函数接口)一节使用 esp-display-panel 提供的功能。
+
+### 函数接口
+
+以下代码展示了常用函数接口的用法:
+
+```
+#include
+
+// Create an ESP_Panel object
+ESP_Panel *panel = new ESP_Panel();
+
+// Initialize and start the ESP_Panel object
+panel->init();
+panel->begin();
+
+// Get the LCD object and operate it
+panel->getLcd()->setCallback(callback, NULL);
+panel->getLcd()->drawBitmap(0, 0, width, height, color);
+
+// Get the LCD touch object and operate it
+panel->getLcdTouch()->readData();
+bool touched = panel->getLcdTouch()->getTouchState();
+if(touched) {
+ TouchPoint point = panel->getLcdTouch()->getPoint();
+ Serial.printf("Touch point: x %d, y %d\n", point.x, point.y);
+}
+
+// Get the backlight object and operate it
+panel->getBacklight()->on();
+panel->getBacklight()->off();
+panel->getBacklight()->setBrightness(50);
+
+// Release the ESP_Panel object
+delete panel;
+```
diff --git a/docs/_static/.$block_diagram.drawio.bkp b/docs/_static/.$block_diagram.drawio.bkp
new file mode 100644
index 00000000..649aecae
--- /dev/null
+++ b/docs/_static/.$block_diagram.drawio.bkp
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/_static/block_diagram.drawio b/docs/_static/block_diagram.drawio
index edfef4e1..feb9a33d 100644
--- a/docs/_static/block_diagram.drawio
+++ b/docs/_static/block_diagram.drawio
@@ -1,4 +1,4 @@
-
+
@@ -79,10 +79,10 @@
-
+
-
+
diff --git a/docs/_static/block_diagram.png b/docs/_static/block_diagram.png
index 62c3c31b..9c862697 100644
Binary files a/docs/_static/block_diagram.png and b/docs/_static/block_diagram.png differ
diff --git a/library.properties b/library.properties
index fe42eccb..c62aad77 100644
--- a/library.properties
+++ b/library.properties
@@ -1,7 +1,7 @@
name=esp-display-panel
version=0.0.1
-author=lzw655
-maintainer=lzw655
+author=lzw655
+maintainer=espressif
sentence=esp-display-panel is a library for various devices in display panel driven by ESP32
paragraph=Currently supported boards:ESP32-C3-LCDkit,ESP32-S3-Box,ESP32-S3-Box-Lite,ESP32-S3-EYE,ESP32-S3-Korvo-2,ESP32-S3-LCD-EV-Board,ESP32-S3-LCD-EV-Board-2,ESP32-S3-USB-OTG. Currently supported devices: Bus,LCD,LCD Touch,Backlight. Currently supported Bus: I2C,SPI,3-wire SPI + RGB. Currently supported LCD controllers: ST7262,ST7789,GC9503,GC9A01. Currently supported Touch controllers: CST816S,FT5x06,GT1151,GT911,TT21100,STMPE610.
category=Other
diff --git a/src/ESP_Panel_Conf_Internal.h b/src/ESP_Panel_Conf_Internal.h
index ab21b5bb..74a513f9 100644
--- a/src/ESP_Panel_Conf_Internal.h
+++ b/src/ESP_Panel_Conf_Internal.h
@@ -85,7 +85,7 @@
#if ESP_PANEL_USE_LCD
/**
- * LCD IC name.
+ * LCD controller name.
*/
#ifndef ESP_PANEL_LCD_NAME
#if defined(ESP_PANEL_LCD_CONTROLLER_ST7262) || CONFIG_ESP_PANEL_LCD_CONTROLLER_ST7262
diff --git a/src/board/esp32_c3_lcdkit.h b/src/board/esp32_c3_lcdkit.h
index 622ddba7..2341f9cc 100644
--- a/src/board/esp32_c3_lcdkit.h
+++ b/src/board/esp32_c3_lcdkit.h
@@ -13,7 +13,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME GC9A01
diff --git a/src/board/esp32_s3_box.h b/src/board/esp32_s3_box.h
index bcd6adb0..68b8a633 100644
--- a/src/board/esp32_s3_box.h
+++ b/src/board/esp32_s3_box.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME ST7789
diff --git a/src/board/esp32_s3_box_lite.h b/src/board/esp32_s3_box_lite.h
index 6e052b03..9ffbb8d9 100644
--- a/src/board/esp32_s3_box_lite.h
+++ b/src/board/esp32_s3_box_lite.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME ST7789
diff --git a/src/board/esp32_s3_eye.h b/src/board/esp32_s3_eye.h
index 5e2a19b6..77439fdb 100644
--- a/src/board/esp32_s3_eye.h
+++ b/src/board/esp32_s3_eye.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME ST7789
diff --git a/src/board/esp32_s3_korvo_2.h b/src/board/esp32_s3_korvo_2.h
index b62ab587..ba918fa9 100644
--- a/src/board/esp32_s3_korvo_2.h
+++ b/src/board/esp32_s3_korvo_2.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME ST7789
diff --git a/src/board/esp32_s3_lcd_ev_board.h b/src/board/esp32_s3_lcd_ev_board.h
index 1267a9f6..086960db 100644
--- a/src/board/esp32_s3_lcd_ev_board.h
+++ b/src/board/esp32_s3_lcd_ev_board.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME GC9503
diff --git a/src/board/esp32_s3_lcd_ev_board_2.h b/src/board/esp32_s3_lcd_ev_board_2.h
index 6c028db6..73efa2bc 100644
--- a/src/board/esp32_s3_lcd_ev_board_2.h
+++ b/src/board/esp32_s3_lcd_ev_board_2.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME ST7262
diff --git a/src/board/esp32_s3_usb_otg.h b/src/board/esp32_s3_usb_otg.h
index 6e3e48bf..81084533 100644
--- a/src/board/esp32_s3_usb_otg.h
+++ b/src/board/esp32_s3_usb_otg.h
@@ -12,7 +12,7 @@
/* Set to 0 if not using LCD */
#define ESP_PANEL_USE_LCD (1)
/**
- * LCD IC name.
+ * LCD controller name.
*/
#define ESP_PANEL_LCD_NAME ST7789
diff --git a/test_apps/main/idf_component.yml b/test_apps/main/idf_component.yml
index c59ad896..78faafa4 100644
--- a/test_apps/main/idf_component.yml
+++ b/test_apps/main/idf_component.yml
@@ -1,3 +1,5 @@
## IDF Component Manager Manifest File
dependencies:
- idf: "==4.4.5"
\ No newline at end of file
+ idf: "==4.4.5"
+ esp-arduino-libs/esp-io-expander:
+ git: https://github.com/esp-arduino-libs/esp-io-expander.git