Skip to content

Commit

Permalink
Merge branch 'feat/support_mipi_dsi_lcd' into 'master'
Browse files Browse the repository at this point in the history
feat(bus & lcd): support MIPI-DSI LCD

Closes #119
Closes #39

See merge request ae_group/ESP32_Display_Panel!2
  • Loading branch information
Lzw655 committed Nov 8, 2024
2 parents fca144d + ab9ad35 commit 6df9145
Show file tree
Hide file tree
Showing 204 changed files with 6,129 additions and 1,333 deletions.
4 changes: 4 additions & 0 deletions .build-rules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ test_apps/lcd/qspi:
disable:
- if: SOC_GPSPI_SUPPORTED != 1

test_apps/lcd/mipi_dsi:
disable:
- if: SOC_MIPI_DSI_SUPPORTED != 1

test_apps/lcd/rgb:
disable:
- if: SOC_LCD_RGB_SUPPORTED != 1
Expand Down
15 changes: 15 additions & 0 deletions .gitlab/ci/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@
- IMAGE: espressif/idf:release-v5.1
- IMAGE: espressif/idf:release-v5.2
- IMAGE: espressif/idf:release-v5.3
- IMAGE: espressif/idf:release-v5.4

.build_esp32_p4_idf_release_version:
parallel:
matrix:
- IMAGE: espressif/idf:release-v5.3
- IMAGE: espressif/idf:release-v5.4

# Test apps
build_test_apps_lcd_3wire_spi_rgb:
Expand All @@ -59,6 +66,14 @@ build_test_apps_lcd_3wire_spi_rgb:
variables:
EXAMPLE_DIR: test_apps/lcd/3wire_spi_rgb

build_test_apps_lcd_mipi_dsi:
extends:
- .build_examples_template
- .build_esp32_p4_idf_release_version
- .rules:build:test_apps_lcd_mipi_dsi
variables:
EXAMPLE_DIR: test_apps/lcd/mipi_dsi

build_test_apps_lcd_qspi:
extends:
- .build_examples_template
Expand Down
16 changes: 16 additions & 0 deletions .gitlab/ci/rules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
.patterns-test_apps_lcd_3wire_spi_rgb: &patterns-test_apps_lcd_3wire_spi_rgb
- "test_apps/lcd/3wire_spi_rgb/**/*"

.patterns-test_apps_lcd_mipi_dsi: &patterns-test_apps_lcd_mipi_dsi
- "test_apps/lcd/mipi_dsi/**/*"

.patterns-test_apps_lcd_qspi: &patterns-test_apps_lcd_qspi
- "test_apps/lcd/qspi/**/*"

Expand Down Expand Up @@ -103,6 +106,19 @@
- <<: *if-dev-push
changes: *patterns-test_apps_lcd_3wire_spi_rgb

.rules:build:test_apps_lcd_mipi_dsi:
rules:
- <<: *if-protected
- <<: *if-label-build
- <<: *if-label-target_test
- <<: *if-trigger-job
- <<: *if-dev-push
changes: *patterns-build_system
- <<: *if-dev-push
changes: *patterns-component
- <<: *if-dev-push
changes: *patterns-test_apps_lcd_mipi_dsi

.rules:build:test_apps_lcd_qspi:
rules:
- <<: *if-protected
Expand Down
27 changes: 21 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,36 @@
# ChangeLog

## v0.1.9 - 2024-10-29
## v0.2.0 - 2024-11-08

* feat(board): add support for Waveshare ESP32-S3-Touch-LCD-2.1
### Enhancements:

## v0.1.8 - 2024-10-25
* feat(repo): support build on the esp-idf
* feat(bus & lcd): support MIPI-DSI LCD
* feat(lcd): add LCD controller EK79007
* feat(lcd): add LCD controller ILI9881C
* feat(panel): add support for MIPI-DSI LCD
* feat(board): add support for Waveshare ESP32-S3-Touch-LCD-2.1 @martinroger (#117)
* feat(board): add support for Espressif ESP32-P4-Function-EV-Board
* feat(examples): add MIPI-DSI LCD
* feat(examples): optimize anti-tear rotation in lvgl_port_v8
* feat(ci): update for MIPI-DSI LCD
* feat(test_apps): add MIPI-DSI LCD

* feat(board): add support for Waveshare ESP32-S3-Touch-LCD-1.85
### Bugfixes:

### Enhancements:
* fix(touch): release ISR semaphore when delete

## v0.1.7 - 2024-08-22
## v0.1.8 - 2024-10-25

### Enhancements:

* feat(board): add support for Waveshare ESP32-S3-Touch-LCD-1.85 @martinroger (#115)
* feat(docs): add additional information about screen drift issue

### Bugfixes:

* fix(examples): correct readme broken links

## v0.1.6 - 2024-07-30

### Enhancements:
Expand Down
23 changes: 18 additions & 5 deletions ESP_Panel_Board_Custom.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,6 @@
// |--------------|---------------|
#define ESP_PANEL_LCD_RGB_DATA_WIDTH (16) // | 8 | 16 |
#define ESP_PANEL_LCD_RGB_PIXEL_BITS (16) // | 24 | 16 |

#define ESP_PANEL_LCD_RGB_FRAME_BUF_NUM (1) // 1/2/3
#define ESP_PANEL_LCD_RGB_BOUNCE_BUF_SIZE (0) // Bounce buffer size in bytes. This function is used to avoid screen drift.
// To enable the bounce buffer, set it to a non-zero value. Typically set to `ESP_PANEL_LCD_WIDTH * 10`
// The size of the Bounce Buffer must satisfy `width_of_lcd * height_of_lcd = size_of_buffer * N`,
Expand All @@ -121,7 +119,6 @@
#define ESP_PANEL_LCD_RGB_IO_DE (17) // -1 if not used
#define ESP_PANEL_LCD_RGB_IO_PCLK (9)
#define ESP_PANEL_LCD_RGB_IO_DISP (-1) // -1 if not used

// | RGB565 | RGB666 | RGB888 |
// |--------|--------|--------|
#define ESP_PANEL_LCD_RGB_IO_DATA0 (10) // | B0 | B0-1 | B0-3 |
Expand Down Expand Up @@ -158,6 +155,22 @@
// The `mirror()` function will be implemented by LCD command if set to 1.
#endif

#elif ESP_PANEL_LCD_BUS_TYPE == ESP_PANEL_BUS_TYPE_MIPI_DSI

#define ESP_PANEL_LCD_MIPI_DSI_LANE_NUM (2) // ESP32-P4 supports 1 or 2 lanes
#define ESP_PANEL_LCD_MIPI_DSI_LANE_RATE_MBPS (1000) // Single lane bit rate, should consult the LCD supplier or check the
// LCD drive IC datasheet for the supported lane rate.
// ESP32-P4 supports max 1500Mbps
#define ESP_PANEL_LCD_MIPI_DSI_PHY_LDO_ID (3) // -1 if not used
#define ESP_PANEL_LCD_MIPI_DPI_CLK_MHZ (52)
#define ESP_PANEL_LCD_MIPI_DPI_PIXEL_BITS (ESP_PANEL_LCD_RGB565_COLOR_BITS_16)
#define ESP_PANEL_LCD_MIPI_DSI_HPW (10)
#define ESP_PANEL_LCD_MIPI_DSI_HBP (160)
#define ESP_PANEL_LCD_MIPI_DSI_HFP (160)
#define ESP_PANEL_LCD_MIPI_DSI_VPW (1)
#define ESP_PANEL_LCD_MIPI_DSI_VBP (23)
#define ESP_PANEL_LCD_MIPI_DSI_VFP (12)

#else

#error "The function is not ready and will be implemented in the future."
Expand Down Expand Up @@ -380,8 +393,8 @@
*
*/
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_MAJOR 0
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_MINOR 2
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_PATCH 3
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_MINOR 3
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_PATCH 0

#endif /* ESP_PANEL_USE_CUSTOM_BOARD */

Expand Down
6 changes: 4 additions & 2 deletions ESP_Panel_Board_Supported.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
* - BOARD_ESP32_S3_LCD_EV_BOARD_2 (ESP32-S3-LCD-EV-Board-2(v1.1-v1.4))): https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/user_guide_v1.4.html
* - BOARD_ESP32_S3_LCD_EV_BOARD_2_V1_5 (ESP32-S3-LCD-EV-Board-2(v1.5)): https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/user_guide.html
* - BOARD_ESP32_S3_USB_OTG (ESP32-S3-USB-OTG): https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-usb-otg/index.html
* - BOARD_ESP32_P4_FUNCTION_EV_BOARD (ESP32-P4-Function-EV-Board): https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/index.html
*
*/
// #define BOARD_ESP32_C3_LCDKIT
Expand All @@ -45,6 +46,7 @@
// #define BOARD_ESP32_S3_LCD_EV_BOARD_2
// #define BOARD_ESP32_S3_LCD_EV_BOARD_2_V1_5
// #define BOARD_ESP32_S3_USB_OTG
// #define BOARD_ESP32_P4_FUNCTION_EV_BOARD

/*
* Elecrow (https://www.elecrow.com):
Expand Down Expand Up @@ -101,7 +103,7 @@
*
*/
#define ESP_PANEL_BOARD_SUPPORTED_FILE_VERSION_MAJOR 0
#define ESP_PANEL_BOARD_SUPPORTED_FILE_VERSION_MINOR 5
#define ESP_PANEL_BOARD_SUPPORTED_FILE_VERSION_PATCH 1
#define ESP_PANEL_BOARD_SUPPORTED_FILE_VERSION_MINOR 6
#define ESP_PANEL_BOARD_SUPPORTED_FILE_VERSION_PATCH 0

#endif
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Below is the list of [supported development boards](docs/Board_Instructions.md):

| **Manufacturer** | **Board Model** |
| ---------------- | --------------- |
| [Espressif](docs/Board_Instructions.md#espressif) | ESP32-C3-LCDkit, ESP32-S3-BOX, ESP32-S3-BOX-3, ESP32-S3-BOX-3B, ESP32-S3-BOX-3(beta), 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 |
| [Espressif](docs/Board_Instructions.md#espressif) | ESP32-C3-LCDkit, ESP32-S3-BOX, ESP32-S3-BOX-3, ESP32-S3-BOX-3B, ESP32-S3-BOX-3(beta), 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, ESP32-P4-Function-EV-Board |
| [Elecrow](docs/Board_Instructions.md#elecrow) | CrowPanel 7.0" |
| [M5Stack](docs/Board_Instructions.md#m5stack) | M5STACK-M5CORE2, M5STACK-M5DIAL, M5STACK-M5CORES3 |
| [Jingcai](docs/Board_Instructions.md#shenzhen-jingcai-intelligent) | ESP32-4848S040C_I_Y_3 |
Expand Down
2 changes: 1 addition & 1 deletion README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ ESP32_Display_Panel 的功能框图如下所示,主要包含以下特性:

| **厂商** | **开发板型号** |
| -------- | -------------- |
| [Espressif](docs/Board_Instructions.md#espressif) | ESP32-C3-LCDkit, ESP32-S3-BOX, ESP32-S3-BOX-3, ESP32-S3-BOX-3B, ESP32-S3-BOX-3(beta), 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 |
| [Espressif](docs/Board_Instructions.md#espressif) | ESP32-C3-LCDkit, ESP32-S3-BOX, ESP32-S3-BOX-3, ESP32-S3-BOX-3B, ESP32-S3-BOX-3(beta), 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, ESP32-P4-Function-EV-Board |
| [M5Stack](docs/Board_Instructions.md#m5stack) | M5STACK-M5CORE2, M5STACK-M5DIAL, M5STACK-M5CORES3 |
| [Elecrow](docs/Board_Instructions.md#elecrow) | CrowPanel 7.0" |
| [Jingcai](docs/Board_Instructions.md#shenzhen-jingcai-intelligent) | ESP32-4848S040C_I_Y_3 |
Expand Down
10 changes: 10 additions & 0 deletions docs/Board_Contribution_Guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Board Contribution Guide

* [中文版本](./Board_Contribution_Guide_CN.md)

## Table of Contents

- [Board Contribution Guide](#board-contribution-guide)
- [Table of Contents](#table-of-contents)
- [Contribution Guidelines](#contribution-guidelines)
- [File Modifications](#file-modifications)
- [Adaptation Process](#adaptation-process)

## Contribution Guidelines

1. The development board must at least ensure its hardware schematic is open-source, providing a link or file for reference.
Expand Down
10 changes: 10 additions & 0 deletions docs/Board_Contribution_Guide_CN.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# 开发板贡献指南

* [English Version](./Board_Contribution_Guide.md)

## 目录

- [开发板贡献指南](#开发板贡献指南)
- [目录](#目录)
- [贡献说明](#贡献说明)
- [文件修改](#文件修改)
- [适配流程](#适配流程)

## 贡献说明

1. 开发板至少需要确保其硬件原理图开源,并提供链接或文件。
Expand Down
2 changes: 2 additions & 0 deletions docs/Board_Instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
| <img src="https://docs.espressif.com/projects/esp-dev-kits/en/latest/_images/ESP32-S3-LCD-EV-Board_480x480.png" width="150"> | [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 | 480x480 | I2C | FT5x06 |
| <img src="https://docs.espressif.com/projects/esp-dev-kits/en/latest/_images/ESP32-S3-LCD-EV-Board_800x480.png" width="150"> | [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 | 800x480 | I2C | GT1151 |
| <img src="https://docs.espressif.com/projects/esp-dev-kits/en/latest/_images/pic_product_esp32_s3_otg.png" width="150"> | [ESP32-S3-USB-OTG](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-usb-otg/index.html) | SPI | ST7789 | 240x240 | - | - |
| <img src="https://www.espressif.com/sites/default/files/dev-board/ESP32-P4-Function-EV-Board_L_2.png" width="150"> | [ESP32-P4-Function-EV-Board](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/index.html) | MIPI-DSI | EK79007 | 1024x600 | I2C | GT911 |

### [Elecrow](https://www.elecrow.com/)

Expand Down Expand Up @@ -62,6 +63,7 @@ Below are recommended configurations for developing GUI applications on differen
| ESP32-S3-LCD-EV-Board | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | **See Note 1** | 16M Flash (3MB) |
| ESP32-S3-LCD-EV-Board-2 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | **See Note 1** | 16M Flash (3MB) |
| ESP32-S3-USB-OTG | ESP32-S3-USB-OTG | - | - | - | - | 8M with spiffs |
| ESP32-P4-Function-EV-Board | ESP32P4 Dev Module | Enabled | QIO | 16MB | Disabled | 16M Flash (3MB) |
| M5STACK-M5CORE2 | M5Stack-Core2 | Enabled | - | - | - | Default |
| M5STACK-M5DIAL | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Disabled | Default |
| M5STACK-M5CORES3 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | Default 4MB with spiffs |
Expand Down
12 changes: 12 additions & 0 deletions docs/FAQ.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# FAQ

* [中文版本](./FAQ_CN.md)

## Table of Contents

- [FAQ](#faq)
- [Table of Contents](#table-of-contents)
- [Where is the directory for Arduino libraries?](#where-is-the-directory-for-arduino-libraries)
- [How to Install ESP32\_Display\_Panel in Arduino IDE?](#how-to-install-esp32_display_panel-in-arduino-ide)
- [Where are the installation directory for arduino-esp32 and the SDK located?](#where-are-the-installation-directory-for-arduino-esp32-and-the-sdk-located)
- [How to fix screen drift issue when driving RGB LCD with ESP32-S3?](#how-to-fix-screen-drift-issue-when-driving-rgb-lcd-with-esp32-s3)
- [How to Use ESP32\_Display\_Panel on PlatformIO?](#how-to-use-esp32_display_panel-on-platformio)

## Where is the directory for Arduino libraries?

You can find and modify the directory path for Arduino libraries by selecting `File` > `Preferences` > `Settings` > `Sketchbook location` from the menu bar in the Arduino IDE.
Expand Down
12 changes: 12 additions & 0 deletions docs/FAQ_CN.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# 常见问题解答

* [English Version](./FAQ.md)

## 目录

- [常见问题解答](#常见问题解答)
- [目录](#目录)
- [Arduino 库的目录在哪儿?](#arduino-库的目录在哪儿)
- [如何在 Arduino IDE 中安装 ESP32\_Display\_Panel?](#如何在-arduino-ide-中安装-esp32_display_panel)
- [arduino-eps32 的安装目录以及 SDK 的目录在哪儿?](#arduino-eps32-的安装目录以及-sdk-的目录在哪儿)
- [使用 ESP32-S3 驱动 RGB LCD 时出现画面漂移问题的解决方案](#使用-esp32-s3-驱动-rgb-lcd-时出现画面漂移问题的解决方案)
- [如何在 PlatformIO 上使用 ESP32\_Display\_Panel?](#如何在-platformio-上使用-esp32_display_panel)

## Arduino 库的目录在哪儿?

您可以在 Arduino IDE 的菜单栏中选择 `File` > `Preferences` > `Settings` > `Sketchbook location` 来查找和修改 Arduino 库的目录路径。
Expand Down
Loading

0 comments on commit 6df9145

Please sign in to comment.