Skip to content

feat(bus & lcd): support mipi-dsi LCD #119

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 11 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading