Skip to content

Commit f60a963

Browse files
Merge pull request #1 from Y1hsiaochunnn/master
Migrate the project and update some component support
2 parents afc6de6 + 2f942b3 commit f60a963

File tree

93 files changed

+8329
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+8329
-2
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Push components to Espressif Component Service
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
upload_components:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@master
13+
with:
14+
submodules: 'recursive'
15+
- name: Upload components to component service
16+
uses: espressif/upload-components-ci-action@v1
17+
with:
18+
directories: >
19+
display/lcd/esp_lcd_jd9165;
20+
display/lcd/esp_lcd_jd9365_8;
21+
display/lcd/esp_lcd_jd9365_10_1;
22+
display/lcd/esp_lcd_hx8394;
23+
display/lcd/esp_lcd_dsi;
24+
namespace: "waveshare"
25+
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}

README.md

Lines changed: 154 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,154 @@
1-
# Waveshare-ESP32-components
2-
waveshare componets For ESP Component Registry
1+
# Waveshare ESP32 Board Support Packages and Drivers
2+
3+
Welcome to the repository for Waveshare ESP32 products! This repository is designed to provide resources, drivers, and
4+
support packages for Waveshare's ESP32-based boards and compatible display modules. It aims to simplify development and
5+
accelerate your project setup.
6+
7+
---
8+
9+
## 📦 Repository Contents
10+
11+
### 1. **Board Support Packages (BSP)**
12+
13+
| Board | supported |
14+
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
15+
| [ESP32-P4-NANO](https://www.waveshare.com/esp32-p4-nano.htm)<br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/e/s/esp32-p4-nano-1.jpg"> ||
16+
| [ESP32-S3-Touch-AMOLED-1.8](https://www.waveshare.com/esp32-s3-touch-amoled-1.8.htm)<br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.net/photo/development-board/ESP32-S3-Touch-AMOLED-1.8/ESP32-S3-Touch-AMOLED-1.8-1.jpg"> | 🕒 |
17+
| [ESP32-S3-Touch-LCD-1.69](https://www.waveshare.com/esp32-s3-touch-lcd-1.69.htm)<br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/e/s/esp32-s3-touch-lcd-1.69-1.jpg"> | 🕒 |
18+
| [ESP32-S3-LCD-1.69](https://www.waveshare.com/esp32-s3-lcd-1.69.htm)<br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/e/s/esp32-s3-lcd-1.69-1.jpg"> | 🕒 |
19+
| [ESP32-S3-Touch-LCD-4 ](https://www.waveshare.com/esp32-s3-touch-lcd-4.htm)<br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/e/s/esp32-s3-touch-lcd-4-1.jpg"> | 🕒 |
20+
21+
### 2. **Display Drivers**
22+
23+
| Product ID | Dependency | tested |
24+
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|--------|
25+
| [2.8inch DSI LCD](https://www.waveshare.com/2.8inch-dsi-lcd.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/thumbnail/122x122/9df78eab33525d08d6e5fb8d27136e95/2/_/2.8inch-dsi-lcd-3.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
26+
| [3.4inch DSI LCD (C)](https://www.waveshare.com/3.4inch-dsi-lcd-c.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/3/_/3.4inch-dsi-lcd-c-1.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
27+
| [4inch DSI LCD (C)](https://www.waveshare.com/4inch-dsi-lcd-c.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/4/i/4inch-dsi-lcd-c-1.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
28+
| [4inch DSI LCD](https://www.waveshare.com/4inch-dsi-lcd.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/4/i/4inch-dsi-lcd-1.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
29+
| [5inch DSI LCD (D)](https://www.waveshare.com/5inch-dsi-lcd-d.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/5/i/5inch-dsi-lcd-d-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
30+
| [6.25inch DSI LCD](https://www.waveshare.com/6.25inch-dsi-lcd.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/6/_/6.25inch-dsi-lcd-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
31+
| [5inch DSI LCD (C)](https://www.waveshare.com/5inch-dsi-lcd-c.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/5/i/5inch-dsi-lcd-c-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
32+
| [7inch DSI LCD (C)](https://www.waveshare.com/7inch-dsi-lcd-c-with-case-a.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/7/i/7inch-dsi-lcd-c-4.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
33+
| [7.9inch DSI LCD](https://www.waveshare.com/7.9inch-dsi-lcd.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/7/_/7.9inch-dsi-lcd-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
34+
| [7inch DSI LCD (E)](https://www.waveshare.com/7inch-dsi-lcd-e.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/7/i/7inch-dsi-lcd-e-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
35+
| [8inch DSI LCD (C)](https://www.waveshare.com/8inch-dsi-lcd-c.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/8/i/8inch-dsi-lcd-c-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
36+
| [10.1inch DSI LCD (C)](https://www.waveshare.com/10.1inch-dsi-lcd-c.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/1/0/10.1inch-dsi-lcd-c-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
37+
| [8.8inch DSI LCD](https://www.waveshare.com/8.8inch-dsi-lcd.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/8/_/8.8inch-dsi-lcd-2.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
38+
| [11.9inch DSI LCD](https://www.waveshare.com/11.9inch-dsi-lcd.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/1/1/11.9inch-dsi-lcd-3.jpg"> | [waveshare/esp_lcd_dsi](display/lcd/esp_lcd_dsi) ||
39+
| [:101M-8001280-IPS-CT-K](https://www.waveshare.com/101m-8001280-ips-ct-k.htm) <br/><img style="width: 150px; height: auto; display: block; margin: 0 auto;" src="https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/1/0/101m-8001280-ips-ct-k-1.jpg"> | [waveshare/esp_lcd_jd9365_10_1](display/lcd/esp_lcd_jd9365_10_1) ||
40+
41+
## 📚 Documentation
42+
43+
Each library and support package comes with detailed documentation and examples. Key highlights include:
44+
45+
- **Initialization Guides:** Step-by-step instructions for setting up your board and peripherals.
46+
- **Examples:**
47+
- The driver library code provides the simplest low-level drivers
48+
- BSP sample programs can be queried in different product wikis, and will be synchronized in
49+
the [ESP32-display-support](https://github.com/waveshareteam/ESP32-display-support)
50+
- **Code Comments:** Inline documentation for better understanding.
51+
52+
---
53+
54+
## 🚀 Getting Started
55+
56+
### Prerequisites
57+
58+
- **Hardware:**
59+
- Waveshare ESP32 boards
60+
- Supported display modules
61+
- Compatible touch controllers(Optional)
62+
- **Software:**
63+
- [ESP-IDF](https://github.com/espressif/esp-idf)(Each product has a recommended version on the wiki as well as
64+
sample routines)
65+
66+
[//]: # (### Setup)
67+
68+
[//]: # ()
69+
70+
[//]: # (1. Clone the repository:)
71+
72+
[//]: # ()
73+
74+
[//]: # ()
75+
76+
[//]: # (2. Install required dependencies:)
77+
78+
[//]: # ()
79+
80+
[//]: # ()
81+
82+
[//]: # (3. Flash the example projects:)
83+
84+
85+
---
86+
87+
## 🌟 Features
88+
89+
- **LVGL Support:**
90+
- Widgets, animations, and custom UI components for Waveshare displays.
91+
- **Optimized Drivers:**
92+
- DMA and double buffering for smooth graphics.
93+
- **Peripheral Utilities:**
94+
- Simplified access to RTC, I/O expanders, and power management ICs.
95+
- **Arduino-Compatible Libraries:**
96+
- Easy porting of code using the Arduino ecosystem.
97+
98+
---
99+
100+
## 🔧 Configuration
101+
102+
You can view some of the configurations that have been added via menuconfig, which will allow you to verify the
103+
functionality directly
104+
105+
---
106+
107+
## 📂 Directory Structure
108+
109+
```
110+
.
111+
├── bsp/ # Board support packages
112+
├── display/ # Display drivers
113+
└── README.md # Project overview (this file)
114+
```
115+
116+
---
117+
118+
## 🛠️ Contributing
119+
120+
We welcome contributions! Here’s how you can help:
121+
122+
1. Fork the repository.
123+
2. Create a new branch for your feature or bug fix.
124+
3. Commit your changes with clear descriptions.
125+
4. Submit a pull request for review.
126+
127+
---
128+
129+
## 🧩 Issues and Support
130+
131+
If you encounter any issues:
132+
133+
- Check the [Issues](https://github.com/waveshareteam/Waveshare-ESP32-components/issues) section.
134+
- Create a new issue with detailed information.
135+
- Refer to the documentation for troubleshooting tips.
136+
137+
---
138+
139+
## 📜 License
140+
141+
This repository is licensed under the Apache License License. See the `LICENSE` file for details.
142+
143+
---
144+
145+
## 🙌 Acknowledgments
146+
147+
- Waveshare for their excellent hardware platforms and software support
148+
- The Espressif Team for their continuous support.
149+
- Open-source contributors who make these projects possible.
150+
151+
---
152+
153+
Thank you for using Waveshare-ESP32-components! 🚀
154+

bsp/esp32_p4_nano/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
idf_component_register(
3+
SRCS "esp32_p4_nano.c"
4+
INCLUDE_DIRS "include"
5+
PRIV_INCLUDE_DIRS "priv_include"
6+
REQUIRES driver
7+
PRIV_REQUIRES esp_lcd usb spiffs fatfs
8+
)

bsp/esp32_p4_nano/Kconfig

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
menu "Board Support Package(ESP32-P4)"
2+
3+
config BSP_ERROR_CHECK
4+
bool "Enable error check in BSP"
5+
default y
6+
help
7+
Error check assert the application before returning the error code.
8+
9+
menu "I2C"
10+
config BSP_I2C_NUM
11+
int "I2C peripheral index"
12+
default 1
13+
range 0 1
14+
help
15+
ESP32P4 has two I2C peripherals, pick the one you want to use.
16+
17+
config BSP_I2C_FAST_MODE
18+
bool "Enable I2C fast mode"
19+
default y
20+
help
21+
I2C has two speed modes: normal (100kHz) and fast (400kHz).
22+
23+
config BSP_I2C_CLK_SPEED_HZ
24+
int
25+
default 400000 if BSP_I2C_FAST_MODE
26+
default 100000
27+
endmenu
28+
29+
menu "I2S"
30+
config BSP_I2S_NUM
31+
int "I2S peripheral index"
32+
default 1
33+
range 0 2
34+
help
35+
ESP32P4 has three I2S peripherals, pick the one you want to use.
36+
endmenu
37+
38+
menu "uSD card - Virtual File System"
39+
config BSP_SD_FORMAT_ON_MOUNT_FAIL
40+
bool "Format uSD card if mounting fails"
41+
default n
42+
help
43+
The SDMMC host will format (FAT) the uSD card if it fails to mount the filesystem.
44+
45+
config BSP_SD_MOUNT_POINT
46+
string "uSD card mount point"
47+
default "/sdcard"
48+
help
49+
Mount point of the uSD card in the Virtual File System
50+
51+
endmenu
52+
53+
menu "SPIFFS - Virtual File System"
54+
config BSP_SPIFFS_FORMAT_ON_MOUNT_FAIL
55+
bool "Format SPIFFS if mounting fails"
56+
default n
57+
help
58+
Format SPIFFS if it fails to mount the filesystem.
59+
60+
config BSP_SPIFFS_MOUNT_POINT
61+
string "SPIFFS mount point"
62+
default "/spiffs"
63+
help
64+
Mount point of SPIFFS in the Virtual File System.
65+
66+
config BSP_SPIFFS_PARTITION_LABEL
67+
string "Partition label of SPIFFS"
68+
default "storage"
69+
help
70+
Partition label which stores SPIFFS.
71+
72+
config BSP_SPIFFS_MAX_FILES
73+
int "Max files supported for SPIFFS VFS"
74+
default 5
75+
help
76+
Supported max files for SPIFFS in the Virtual File System.
77+
endmenu
78+
79+
menu "Display"
80+
config BSP_LCD_DPI_BUFFER_NUMS
81+
int "Set number of frame buffers"
82+
default 1
83+
range 1 3
84+
help
85+
Let DPI LCD driver create a specified number of frame-size buffers. Only when it is set to multiple can the avoiding tearing be turned on.
86+
87+
config BSP_DISPLAY_LVGL_AVOID_TEAR
88+
bool "Avoid tearing effect"
89+
depends on BSP_LCD_DPI_BUFFER_NUMS > 1
90+
default "n"
91+
help
92+
Avoid tearing effect through LVGL buffer mode and double frame buffers of RGB LCD. This feature is only available for RGB LCD.
93+
94+
choice BSP_DISPLAY_LVGL_MODE
95+
depends on BSP_DISPLAY_LVGL_AVOID_TEAR
96+
prompt "Select LVGL buffer mode"
97+
default BSP_DISPLAY_LVGL_FULL_REFRESH
98+
config BSP_DISPLAY_LVGL_FULL_REFRESH
99+
bool "Full refresh"
100+
config BSP_DISPLAY_LVGL_DIRECT_MODE
101+
bool "Direct mode"
102+
endchoice
103+
104+
config BSP_DISPLAY_BRIGHTNESS_LEDC_CH
105+
int "LEDC channel index"
106+
default 1
107+
range 0 7
108+
help
109+
LEDC channel is used to generate PWM signal that controls display brightness.
110+
Set LEDC index that should be used.
111+
112+
choice BSP_LCD_COLOR_FORMAT
113+
prompt "Select LCD color format"
114+
default BSP_LCD_COLOR_FORMAT_RGB565
115+
help
116+
Select the LCD color format RGB565/RGB888.
117+
118+
config BSP_LCD_COLOR_FORMAT_RGB565
119+
bool "RGB565"
120+
config BSP_LCD_COLOR_FORMAT_RGB888
121+
bool "RGB888"
122+
endchoice
123+
124+
choice BSP_LCD_TYPE
125+
prompt "Select LCD type"
126+
default BSP_LCD_TYPE_1280_800_WAVESHARE_10_1
127+
help
128+
Select the LCD.
129+
130+
config BSP_LCD_TYPE_1024_600
131+
bool "LCD 7-inch 1024x600 - ek79007"
132+
config BSP_LCD_TYPE_1280_800
133+
bool "LCD 1280x800 - ili9881c"
134+
config BSP_LCD_TYPE_1280_800_WAVESHARE_10_1
135+
bool "Waveshare 1280x800 10.1inch Display"
136+
endchoice
137+
138+
config BSP_LCD_MIPI_DSI_LANE_BITRATE_MBPS
139+
int "MIPI DSI lane bitrate (Mbps)"
140+
default 1500
141+
range 600 1500
142+
help
143+
Set the lane bitrate for the MIPI DSI interface in Mbps.
144+
Adjust this value based on the display's requirements and capabilities.
145+
Try 840, 860, 933, 1000, 1200, 1500.
146+
147+
148+
endmenu
149+
150+
endmenu

0 commit comments

Comments
 (0)