diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 6ebfe606..409022da 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -14,6 +14,7 @@ jobs: [ "sdkconfig.defaults.esp32_c3_lcdkit", "sdkconfig.defaults.esp32_s3_box", + "sdkconfig.defaults.esp32_s3_box_3", "sdkconfig.defaults.esp32_s3_box_lite", "sdkconfig.defaults.esp32_s3_eye", "sdkconfig.defaults.esp32_s3_korvo_2", diff --git a/ESP_Panel_Conf_Template.h b/ESP_Panel_Conf_Template.h index 06669cfb..66101f15 100644 --- a/ESP_Panel_Conf_Template.h +++ b/ESP_Panel_Conf_Template.h @@ -15,6 +15,7 @@ * Supported Boards. * - ESP32-C3-LCDkit: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c3/esp32-c3-lcdkit/index.html * - ESP32-S3-Box: https://github.com/espressif/esp-box/tree/master + * - ESP32-S3-Box-3: https://github.com/espressif/esp-box/tree/master * - ESP32-S3-Box-Lite: https://github.com/espressif/esp-box/tree/master * - ESP32-S3-EYE: https://github.com/espressif/esp-who/blob/master/docs/en/get-started/ESP32-S3-EYE_Getting_Started_Guide.md * - ESP32-S3-Korvo-2: https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/user-guide-esp32-s3-korvo-2.html @@ -26,6 +27,7 @@ */ // #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT // #define ESP_PANEL_BOARD_ESP32_S3_BOX +// #define ESP_PANEL_BOARD_ESP32_S3_BOX_3 // #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE // #define ESP_PANEL_BOARD_ESP32_S3_EYE // #define ESP_PANEL_BOARD_ESP32_S3_KORVO_2 diff --git a/Kconfig b/Kconfig index 7c78a494..164166b3 100644 --- a/Kconfig +++ b/Kconfig @@ -25,6 +25,10 @@ menu "ESP Panel Configuration" bool "ESP32-S3-Box" help 320x240, LCD: ILI9342, Touch: TT21100 + config ESP_PANEL_BOARD_ESP32_S3_BOX_3 + bool "ESP32-S3-Box-3" + help + 320x240, LCD: ILI9342, Touch: TT21100 config ESP_PANEL_BOARD_ESP32_S3_BOX_LITE bool "ESP32-S3-Box-Lite" help diff --git a/README.md b/README.md index 2c5411ea..4f7f013a 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ The block diagram of esp-display-panel is shown in the figure below, it primaril | :--------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | :--------------: | :----------------: | :-----------: | :------------------: | | | [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-3](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 | @@ -103,9 +104,9 @@ Arduino |-ESP_Panel_Conf.h ``` -### Configure Supported Board +4. Please refer to the [Supported Boards List](#supported-boards--drivers) to check if the current board is compatible. If it is compatible, please navigate to the "[For Supported Boards](#for-supported-board)" section; Otherwise, navigate to the "[For Unsupported Boards](#for-unsupported-board)" section. -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). +#### For Supported Board 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: @@ -118,9 +119,9 @@ Please refer to the [Supported Boards](#supported-boards--drivers) list to check ... ``` -3. After that, refer to the [APIs](#apis) section to use the library in the sketch. +3. After that, navigate to the "[Use APIs](#use-apis)" section to use the library in the sketch. -### Configure Unsupported Board +#### For Unsupported Board 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). @@ -271,9 +272,9 @@ Since esp-display-panel library can only utilize the internally supported driver ... ``` -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. +3. After configuring the `ESP_Panel_Conf.h` file, please navigate to the "[Use APIs](#use-apis)" section to check the functions provided by esp-display-panel. -### APIs +### Use APIs The following codes show the usage of common APIs: diff --git a/README_CN.md b/README_CN.md index fe677f79..b6102bf2 100644 --- a/README_CN.md +++ b/README_CN.md @@ -32,6 +32,7 @@ esp-display-panel 的功能框图如下所示,主要包含了以下功能: | :--------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | :--------------: | :------------: | :----------: | :------------: | | | [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-3](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 | @@ -103,9 +104,9 @@ Arduino |-ESP_Panel_Conf.h ``` -### 配置支持的开发板 +4. 请参考[支持的开发板列表](#支持的开发板和驱动)来检查当前开发板是否兼容,如果兼容请跳转至“[对于支持的开发板](#对于支持的开发板)”一节,否则跳转至“[对于不支持的开发板](#对于不支持的开发板)”一节。 -请参考[支持的开发板列表](#支持的开发板和驱动)来检查当前开发板是否兼容,否则请参考[配置不支持的开发板](#配置不支持的开发板)一节。 +#### 对于支持的开发板 1. 打开 `ESP_Panel_Conf.h` 文件,首先,将宏 `ESP_PANEL_USE_SUPPORTED_BOARD` 设置为 `1`(默认值为 `1`)。然后,根据目标开发板的名称在其下方将格式为 `ESP_PANEL_BOARD_` 的宏定义取消注释。 2. 以 *ESP32_S3_BOX* 开发板为例,下面是修改后的 `ESP_Panel_Conf.h` 文件的部分内容: @@ -114,13 +115,13 @@ Arduino ... // #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT #define ESP_PANEL_BOARD_ESP32_S3_BOX -// #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE +// #define ESP_PANEL_BOARD_ESP32_S3_BOX_3 ... ``` -3. 之后,请参考[函数接口](#函数接口)一节使用 esp-display-panel 提供的功能。 +3. 之后,请跳转至“[使用接口](#使用接口)”一节使用 esp-display-panel 提供的功能。 -### 配置不支持的开发板 +#### 对于不支持的开发板 由于 esp-display-panel 只能使用内部支持的驱动程序,请确认自定义开发板的 **LCD**、**触摸**和**接口总线**位于[支持的驱动程序列表](#supported-boards--drivers)中。 @@ -271,11 +272,11 @@ Arduino ... ``` -3. 配置好 `ESP_Panel_Conf.h` 文件后,就可以按照[函数接口](#函数接口)一节使用 esp-display-panel 提供的功能。 +3. 配置好 `ESP_Panel_Conf.h` 文件后,请跳转至“[使用接口](#使用接口)”一节查看 esp-display-panel 提供的函数。 -### 函数接口 +### 使用接口 -以下代码展示了常用函数接口的用法: +以下代码展示了常用函数接口的使用: ``` #include diff --git a/examples/LVGL/Porting/Porting.ino b/examples/LVGL/Porting/Porting.ino index abc32b7e..3a60e22d 100644 --- a/examples/LVGL/Porting/Porting.ino +++ b/examples/LVGL/Porting/Porting.ino @@ -3,62 +3,86 @@ * * ## How to Use * - * To use this example, you need to install `esp-display-panel` (includes its dependent libraries) and `LVGL(v8.3.x)` library first, + * To use this example, please firstly install esp-display-panel and its dependent libraries, * then follow the steps to configure: * * ### Configure esp-display-panel * - * 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: - * ``` - * Arduino - * |-libraries - * |-esp-display-panel - * |-other_lib_1 - * |-other_lib_2 - * |-ESP_Panel_Conf.h - * ``` - * 3. 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: - * ```c - * // #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT - * #define ESP_PANEL_BOARD_ESP32_S3_BOX - * // #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE - * ... - * ``` + * esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, + * follow these configuration steps: + * + * 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 + * |-libraries + * |-esp-display-panel + * |-other_lib_1 + * |-other_lib_2 + * |-ESP_Panel_Conf.h + * ``` + * + * 4. Please refer to [Supported Boards List](https://github.com/esp-arduino-libs/esp-display-panel#supported-boards--drivers) + * to check if the current board is compatible. If it is compatible, please navigate to the "For Supported Boards" section; + * Otherwise, navigate to the "For Unsupported Boards" section. + * + * #### For Supported Board + * + * 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 + * ... + * ``` + * + * #### For Unsupported Board + * + * Please refer to the [document](https://github.com/esp-arduino-libs/esp-display-panel#for-unsupported-board) for the details. * * ### Configure LVGL * - * 1. Go to the directory of the installed Arduino libraries - * 2. Go to the `lvgl` folder, copy `lv_conf_template.h` and place it out of `lvgl` folder. - * It should be at the same level as the `lvgl` folder. Then rename it as `lv_conf.h`. - * Finally, the layout of the Arduino Libraries folder with `lv_conf.h` should look like this: - * ``` - * Arduino - * |-libraries - * |-lv_conf.h - * |-lvgl - * |-other_lib_1 - * |-other_lib_2 - * ``` - * 3. Open `lv_conf.h` and change the first `#if 0` to `#if 1` to enable the content of the file. - * 4. Set the following configurations: - * ```c - * #define LV_COLOR_DEPTH 16 - * #define LV_COLOR_16_SWAP 1 // This configuration is not for RGB LCD. - * // Don't set it if using ESP32-S3-LCD-Ev-Board or ESP32-S3-LCD-Ev-Board-2 - * #define LV_MEM_CUSTOM 1 - * #define LV_MEMCPY_MEMSET_STD 1 - * #define LV_TICK_CUSTOM 1 - * #define LV_FONT_MONTSERRAT_12 1 - * #define LV_FONT_MONTSERRAT_16 1 - * #define LV_USE_DEMO_WIDGETS 1 - * #define LV_USE_DEMO_BENCHMARK 1 - * #define LV_USE_DEMO_STRESS 1 - * #define LV_USE_DEMO_MUSIC 1 - * ``` + * 1. Navigate to the directory where Arduino libraries are installed. + * 2. Navigate to the `lvgl` folder, copy `lv_conf_template.h` and place the copy outside the `lvgl` folder at the + * same directory level. Then rename the copied file as `lv_conf.h`. + * 3. Finally, the layout of the Arduino Libraries folder with `lv_conf.h` appear as follows: + * + * ``` + * Arduino + * |-libraries + * |-lv_conf.h + * |-lvgl + * |-other_lib_1 + * |-other_lib_2 + * ``` + * + * 4. Open `lv_conf.h` and change the first `#if 0` to `#if 1` to enable the content of the file. + * 5. Set the following configurations: + * + * ```c + * #define LV_COLOR_DEPTH 16 + * #define LV_COLOR_16_SWAP 1 // This configuration is not for RGB LCD. + * // Don't set it if using ESP32-S3-LCD-Ev-Board or ESP32-S3-LCD-Ev-Board-2 + * #define LV_MEM_CUSTOM 1 + * #define LV_MEMCPY_MEMSET_STD 1 + * #define LV_TICK_CUSTOM 1 + * #define LV_FONT_MONTSERRAT_12 1 + * #define LV_FONT_MONTSERRAT_16 1 + * #define LV_USE_DEMO_WIDGETS 1 + * #define LV_USE_DEMO_BENCHMARK 1 + * #define LV_USE_DEMO_STRESS 1 + * #define LV_USE_DEMO_MUSIC 1 + * ``` + * + * 6. For more information, please refer to [LVGL document](https://docs.lvgl.io/8.3/get-started/platforms/arduino.html). * * ### Configure Board * @@ -69,6 +93,7 @@ * | :---------------------: | :----------------: | :------: | :---------: | :---------: | :--------------: | :---------------------: | :---------------: | * | ESP32-C3-LCDkit | ESP32C3 Dev Module | Disabled | QIO | 4MB (32Mb) | Enabled | Default 4MB with spiffs | Info | * | ESP32-S3-Box | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | + * | ESP32-S3-Box-3 | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | * | ESP32-S3-Box-Lite | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | * | ESP32-S3-EYE | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Enabled | 8M with spiffs | Info | * | ESP32-S3-Korvo-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) | Info | diff --git a/examples/LVGL/Porting/README.md b/examples/LVGL/Porting/README.md index 601efacb..d53b265a 100644 --- a/examples/LVGL/Porting/README.md +++ b/examples/LVGL/Porting/README.md @@ -4,12 +4,15 @@ The example demonstrates how to port LVGL. ## How to Use -To use this example, you need to install `esp-display-panel` (includes its dependent libraries) and `LVGL(v8.3.x)` library first, then follow the steps to configure them. +To use this example, please firstly install esp-display-panel (includes its dependent libraries) and lvgl (v8.3.x) library, then follow the steps to configure them. ### Configure esp-display-panel -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: +esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, follow these configuration steps: + +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 @@ -20,19 +23,30 @@ To use this example, you need to install `esp-display-panel` (includes its depen |-ESP_Panel_Conf.h ``` -3. 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: +4. Please refer to [Supported Boards List](https://github.com/esp-arduino-libs/esp-display-panel#supported-boards--drivers) to check if the current board is compatible. If it is compatible, please navigate to the "For Supported Boards" section; Otherwise, navigate to the "For Unsupported Boards" section. + +#### For Supported Board + +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 ... ``` +#### For Unsupported Board + +Please refer to the [document](https://github.com/esp-arduino-libs/esp-display-panel#for-unsupported-board) for the details. + ### Configure LVGL -1. Go to the directory of the installed Arduino libraries -2. Go to the `lvgl` folder, copy `lv_conf_template.h` and place it out of `lvgl` folder. It should be at the same level as the `lvgl` folder. Then rename it as `lv_conf.h`. Finally, the layout of the Arduino Libraries folder with `lv_conf.h` should look like this: +1. Navigate to the directory where Arduino libraries are installed. +2. Navigate to the `lvgl` folder, copy `lv_conf_template.h` and place the copy outside the `lvgl` folder at the same directory level. Then rename the copied file as `lv_conf.h`. +3. Finally, the layout of the Arduino Libraries folder with `lv_conf.h` appear as follows: ``` Arduino @@ -43,8 +57,8 @@ To use this example, you need to install `esp-display-panel` (includes its depen |-other_lib_2 ``` -3. Open `lv_conf.h` and change the first `#if 0` to `#if 1` to enable the content of the file. -4. Set the following configurations: +4. Open `lv_conf.h` and change the first `#if 0` to `#if 1` to enable the content of the file. +5. Set the following configurations: ```c #define LV_COLOR_DEPTH 16 @@ -61,7 +75,7 @@ To use this example, you need to install `esp-display-panel` (includes its depen #define LV_USE_DEMO_MUSIC 1 ``` -5. See more details [here](https://docs.lvgl.io/8.3/get-started/platforms/arduino.html). +6. For more information, please refer to [LVGL document](https://docs.lvgl.io/8.3/get-started/platforms/arduino.html). ### Configure Board @@ -73,6 +87,7 @@ Go to the `Tools` in Arduino IDE to configure the following settings: | :---------------------: | :----------------: | :------: | :---------: | :---------: | :--------------: | :---------------------: | :---------------: | | ESP32-C3-LCDkit | ESP32C3 Dev Module | Disabled | QIO | 4MB (32Mb) | Enabled | Default 4MB with spiffs | Info | | ESP32-S3-Box | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | +| ESP32-S3-Box-3 | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | | ESP32-S3-Box-Lite | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | | ESP32-S3-EYE | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Enabled | 8M with spiffs | Info | | ESP32-S3-Korvo-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) | Info | diff --git a/examples/Panel/DrawColorBar/DrawColorBar.ino b/examples/Panel/DrawColorBar/DrawColorBar.ino index 77f836c7..e1461dd9 100644 --- a/examples/Panel/DrawColorBar/DrawColorBar.ino +++ b/examples/Panel/DrawColorBar/DrawColorBar.ino @@ -3,41 +3,62 @@ * * ## How to Use * - * To use this example, you need to install `esp-display-panel` (including its dependent libraries) library first, + * To use this example, please firstly install esp-display-panel and its dependent libraries, * then follow the steps to configure: * * ### Configure esp-display-panel * - * 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: - * ``` - * Arduino - * |-libraries - * |-esp-display-panel - * |-other_lib_1 - * |-other_lib_2 - * |-ESP_Panel_Conf.h - * ``` - * 3. 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: - * ```c - * // #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT - * #define ESP_PANEL_BOARD_ESP32_S3_BOX - * // #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE - * ... - * ``` + * esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, + * follow these configuration steps: + * + * 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 + * |-libraries + * |-esp-display-panel + * |-other_lib_1 + * |-other_lib_2 + * |-ESP_Panel_Conf.h + * ``` + * + * 4. Please refer to [Supported Boards List](https://github.com/esp-arduino-libs/esp-display-panel#supported-boards--drivers) + * to check if the current board is compatible. If it is compatible, please navigate to the "For Supported Boards" section; + * Otherwise, navigate to the "For Unsupported Boards" section. + * + * #### For Supported Board + * + * 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 + * ... + * ``` + * + * #### For Unsupported Board + * + * Please refer to the [document](https://github.com/esp-arduino-libs/esp-display-panel#for-unsupported-board) for the details. * * ### Configure Board * * Below are recommended configurations for developing GUI applications on various development boards. - * These settings can be adjusted based on specific requirements. Go to the `Tools` in Arduino IDE to configure the following settings: + * These settings can be adjusted based on specific requirements. Navigate to the `Tools` in Arduino IDE to configure + * the following settings: * * | Supported Boards | Selected Board: | PSRAM: | Flash Mode: | Flash Size: | USB CDC On Boot: | Partition Scheme: | Core Debug Level: | * | :---------------------: | :----------------: | :------: | :---------: | :---------: | :--------------: | :---------------------: | :---------------: | * | ESP32-C3-LCDkit | ESP32C3 Dev Module | Disabled | QIO | 4MB (32Mb) | Enabled | Default 4MB with spiffs | Info | * | ESP32-S3-Box | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | + * | ESP32-S3-Box-3 | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | * | ESP32-S3-Box-Lite | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | * | ESP32-S3-EYE | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Enabled | 8M with spiffs | Info | * | ESP32-S3-Korvo-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) | Info | diff --git a/examples/Panel/DrawColorBar/README.md b/examples/Panel/DrawColorBar/README.md index 10f20dae..e8f8950c 100644 --- a/examples/Panel/DrawColorBar/README.md +++ b/examples/Panel/DrawColorBar/README.md @@ -4,12 +4,15 @@ The example demonstrates how to draw simple color bar. ## How to Use -To use this example, you need to install `esp-display-panel` (includes its dependent libraries) library first, then follow the steps to configure. +To use this example, please firstly install esp-display-panel and its dependent libraries, then follow the steps to configure: ### Configure esp-display-panel -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: +esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, follow these configuration steps: + +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 @@ -20,15 +23,25 @@ To use this example, you need to install `esp-display-panel` (includes its depen |-ESP_Panel_Conf.h ``` -3. 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: +4. Please refer to [Supported Boards List](https://github.com/esp-arduino-libs/esp-display-panel#supported-boards--drivers) to check if the current board is compatible. If it is compatible, please navigate to the "For Supported Boards" section; Otherwise, navigate to the "For Unsupported Boards" section. + +#### For Supported Board + +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 ... ``` +#### For Unsupported Board + +Please refer to the [document](https://github.com/esp-arduino-libs/esp-display-panel#for-unsupported-board) for the details. + ### Configure Board Below are recommended configurations for developing GUI applications on various development boards. These settings can be adjusted based on specific requirements. @@ -39,6 +52,7 @@ Go to the `Tools` in Arduino IDE to configure the following settings: | :---------------------: | :----------------: | :------: | :---------: | :---------: | :--------------: | :---------------------: | :---------------: | | ESP32-C3-LCDkit | ESP32C3 Dev Module | Disabled | QIO | 4MB (32Mb) | Enabled | Default 4MB with spiffs | Info | | ESP32-S3-Box | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | +| ESP32-S3-Box-3 | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | | ESP32-S3-Box-Lite | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | | ESP32-S3-EYE | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Enabled | 8M with spiffs | Info | | ESP32-S3-Korvo-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) | Info | diff --git a/examples/Panel/ReadTouchPoint/README.md b/examples/Panel/ReadTouchPoint/README.md index ff8baad6..d64e6794 100644 --- a/examples/Panel/ReadTouchPoint/README.md +++ b/examples/Panel/ReadTouchPoint/README.md @@ -4,12 +4,15 @@ The example demonstrates how to read touch point. ## How to Use -To use this example, you need to install `esp-display-panel` (includes its dependent libraries) library first, then follow the steps to configure. +To use this example, please firstly install esp-display-panel and its dependent libraries, then follow the steps to configure: ### Configure esp-display-panel -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: +esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, follow these configuration steps: + +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 @@ -20,15 +23,25 @@ To use this example, you need to install `esp-display-panel` (includes its depen |-ESP_Panel_Conf.h ``` -3. 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: +4. Please refer to [Supported Boards List](https://github.com/esp-arduino-libs/esp-display-panel#supported-boards--drivers) to check if the current board is compatible. If it is compatible, please navigate to the "For Supported Boards" section; Otherwise, navigate to the "For Unsupported Boards" section. + +#### For Supported Board + +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 ... ``` +#### For Unsupported Board + +Please refer to the [document](https://github.com/esp-arduino-libs/esp-display-panel#for-unsupported-board) for the details. + ### Configure Board Below are recommended configurations for developing GUI applications on various development boards. These settings can be adjusted based on specific requirements. @@ -39,6 +52,7 @@ Go to the `Tools` in Arduino IDE to configure the following settings: | :---------------------: | :----------------: | :------: | :---------: | :---------: | :--------------: | :---------------------: | :---------------: | | ESP32-C3-LCDkit | ESP32C3 Dev Module | Disabled | QIO | 4MB (32Mb) | Enabled | Default 4MB with spiffs | Info | | ESP32-S3-Box | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | +| ESP32-S3-Box-3 | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | | ESP32-S3-Box-Lite | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | | ESP32-S3-EYE | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Enabled | 8M with spiffs | Info | | ESP32-S3-Korvo-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) | Info | diff --git a/examples/Panel/ReadTouchPoint/ReadTouchPoint.ino b/examples/Panel/ReadTouchPoint/ReadTouchPoint.ino index d9f9a11c..824c69b5 100644 --- a/examples/Panel/ReadTouchPoint/ReadTouchPoint.ino +++ b/examples/Panel/ReadTouchPoint/ReadTouchPoint.ino @@ -3,31 +3,50 @@ * * ## How to Use * - * To use this example, you need to install `esp-display-panel` (including its dependent libraries)library first, + * To use this example, please firstly install esp-display-panel and its dependent libraries, * then follow the steps to configure: * * ### Configure esp-display-panel * - * 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: - * ``` - * Arduino - * |-libraries - * |-esp-display-panel - * |-other_lib_1 - * |-other_lib_2 - * |-ESP_Panel_Conf.h - * ``` - * 3. 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: - * ```c - * // #define ESP_PANEL_BOARD_ESP32_C3_LCDKIT - * #define ESP_PANEL_BOARD_ESP32_S3_BOX - * // #define ESP_PANEL_BOARD_ESP32_S3_BOX_LITE - * ... - * ``` + * esp-display-panel has its own configuration file called `ESP_Panel_Conf.h`. After installing esp-display-panel, + * follow these configuration steps: + * + * 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 + * |-libraries + * |-esp-display-panel + * |-other_lib_1 + * |-other_lib_2 + * |-ESP_Panel_Conf.h + * ``` + * + * 4. Please refer to [Supported Boards List](https://github.com/esp-arduino-libs/esp-display-panel#supported-boards--drivers) + * to check if the current board is compatible. If it is compatible, please navigate to the "For Supported Boards" section; + * Otherwise, navigate to the "For Unsupported Boards" section. + * + * #### For Supported Board + * + * 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 + * ... + * ``` + * + * #### For Unsupported Board + * + * Please refer to the [document](https://github.com/esp-arduino-libs/esp-display-panel#for-unsupported-board) for the details. * * ### Configure Board * @@ -38,6 +57,7 @@ * | :---------------------: | :----------------: | :------: | :---------: | :---------: | :--------------: | :---------------------: | :---------------: | * | ESP32-C3-LCDkit | ESP32C3 Dev Module | Disabled | QIO | 4MB (32Mb) | Enabled | Default 4MB with spiffs | Info | * | ESP32-S3-Box | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | + * | ESP32-S3-Box-3 | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | * | ESP32-S3-Box-Lite | ESP32-S3-Box | - | - | - | - | 16M Flash (3MB) | Info | * | ESP32-S3-EYE | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Enabled | 8M with spiffs | Info | * | ESP32-S3-Korvo-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) | Info | diff --git a/src/ESP_Panel_Conf_Internal.h b/src/ESP_Panel_Conf_Internal.h index 74a513f9..cea6c6da 100644 --- a/src/ESP_Panel_Conf_Internal.h +++ b/src/ESP_Panel_Conf_Internal.h @@ -56,6 +56,8 @@ #include "board/esp32_c3_lcdkit.h" #elif defined(ESP_PANEL_BOARD_ESP32_S3_BOX) || CONFIG_ESP_PANEL_BOARD_ESP32_S3_BOX #include "board/esp32_s3_box.h" + #elif defined(ESP_PANEL_BOARD_ESP32_S3_BOX_3) || CONFIG_ESP_PANEL_BOARD_ESP32_S3_BOX_3 + #include "board/esp32_s3_box_3.h" #elif defined(ESP_PANEL_BOARD_ESP32_S3_BOX_LITE) || CONFIG_ESP_PANEL_BOARD_ESP32_S3_BOX_LITE #include "board/esp32_s3_box_lite.h" #elif defined(ESP_PANEL_BOARD_ESP32_S3_EYE) || CONFIG_ESP_PANEL_BOARD_ESP32_S3_EYE diff --git a/src/board/esp32_s3_box_3.h b/src/board/esp32_s3_box_3.h new file mode 100644 index 00000000..e22b7ee8 --- /dev/null +++ b/src/board/esp32_s3_box_3.h @@ -0,0 +1,147 @@ +/* + * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef ESP32_S3_BOX_3_H +#define ESP32_S3_BOX_3_H + +/* For more information about it, please visit here: https://github.com/espressif/esp-box/tree/master */ + +/*-------------------------------- LCD Related --------------------------------*/ +/* Set to 0 if not using LCD */ +#define ESP_PANEL_USE_LCD (1) +/** + * LCD controller name. + */ +#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) +#define ESP_PANEL_LCD_SPI_IO_CS (5) +#define ESP_PANEL_LCD_SPI_IO_DC (4) +#define ESP_PANEL_LCD_SPI_MODE (0) +#define ESP_PANEL_LCD_SPI_CLK_HZ (40 * 1000 * 1000) +#define ESP_PANEL_LCD_SPI_TRANS_QUEUE_SZ (10) +#define ESP_PANEL_LCD_SPI_CMD_BITS (8) +#define ESP_PANEL_LCD_SPI_PARAM_BITS (8) +#define ESP_PANEL_LCD_SPI_IO_SCK (7) +#define ESP_PANEL_LCD_SPI_IO_MOSI (6) +#define ESP_PANEL_LCD_SPI_IO_MISO (-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 (1) +#define ESP_PANEL_LCD_INEVRT_COLOR (0) + +/* LCD Transformation Flags */ +#define ESP_PANEL_LCD_SWAP_XY (0) +#define ESP_PANEL_LCD_MIRROR_X (1) +#define ESP_PANEL_LCD_MIRROR_Y (1) + +/* LCD Other Settings */ +/* IO num of RESET pin, set to -1 if not use */ +#define ESP_PANEL_LCD_IO_RST (48) +#define ESP_PANEL_LCD_RST_LEVEL (1) + +/*-------------------------------- LCD Touch Related --------------------------------*/ +/* Set to 0 if not using LCD touch */ +#define ESP_PANEL_USE_LCD_TOUCH (1) +/** + * LCD Touch IC name. + */ +#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) +#define ESP_PANEL_LCD_TOUCH_I2C_CLK_HZ (400 * 1000) +#define ESP_PANEL_LCD_TOUCH_I2C_SCL_PULLUP (0) +#define ESP_PANEL_LCD_TOUCH_I2C_SDA_PULLUP (0) +#define ESP_PANEL_LCD_TOUCH_I2C_IO_SCL (18) +#define ESP_PANEL_LCD_TOUCH_I2C_IO_SDA (8) + +/* LCD Touch Transformation Flags */ +#define ESP_PANEL_LCD_TOUCH_SWAP_XY (0) +#define ESP_PANEL_LCD_TOUCH_MIRROR_X (1) +#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 (3) +#define ESP_PANEL_LCD_TOUCH_RST_LEVEL (0) +#define ESP_PANEL_LCD_TOUCH_INT_LEVEL (0) + +/*-------------------------------- Backlight Related --------------------------------*/ +#define ESP_PANEL_USE_BL (1) + +/* IO num of backlight pin */ +#define ESP_PANEL_LCD_IO_BL (47) + +/* 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 (1) + +/** + * 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) +#define ESP_PANEL_LCD_BL_PWM_CHANNEL (0) +#define ESP_PANEL_LCD_BL_PWM_RESOLUTION (10) +#define ESP_PANEL_LCD_BL_PWM_FREQ_HZ (5000) + +/*-------------------------------- Others --------------------------------*/ +/* Assert on error. Otherwise return error code */ +#define ESP_PANEL_CHECK_RESULT_ASSERT (0) +#endif diff --git a/test_apps/sdkconfig.defaults.esp32_s3_box_3 b/test_apps/sdkconfig.defaults.esp32_s3_box_3 new file mode 100644 index 00000000..bb00a218 --- /dev/null +++ b/test_apps/sdkconfig.defaults.esp32_s3_box_3 @@ -0,0 +1,6 @@ +CONFIG_IDF_TARGET="esp32s3" +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y +CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y +# CONFIG_ESP_TASK_WDT is not set +CONFIG_FREERTOS_HZ=1000 +CONFIG_ESP_PANEL_BOARD_ESP32_S3_BOX_3=y