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 +[![Arduino Lint](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/arduino_lint.yml/badge.svg)](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/arduino_lint.yml) [![pre-commit](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/pre-commit.yml) [![Build Test Apps](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/build_test.yml/badge.svg)](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.
Block Diagram
@@ -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 @@ +[![Arduino Lint](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/arduino_lint.yml/badge.svg)](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/arduino_lint.yml) [![pre-commit](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/pre-commit.yml) [![Build Test Apps](https://github.com/esp-arduino-libs/esp-display-panel/actions/workflows/build_test.yml/badge.svg)](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