Skip to content

Commit

Permalink
Merge pull request #1 from Y1hsiaochunnn/master
Browse files Browse the repository at this point in the history
Migrate the project and update some component support
  • Loading branch information
Y1hsiaochunnn authored Jan 3, 2025
2 parents afc6de6 + 2f942b3 commit f60a963
Show file tree
Hide file tree
Showing 93 changed files with 8,329 additions and 2 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/upload_component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Push components to Espressif Component Service

on:
push:
branches:
- master

jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
submodules: 'recursive'
- name: Upload components to component service
uses: espressif/upload-components-ci-action@v1
with:
directories: >
display/lcd/esp_lcd_jd9165;
display/lcd/esp_lcd_jd9365_8;
display/lcd/esp_lcd_jd9365_10_1;
display/lcd/esp_lcd_hx8394;
display/lcd/esp_lcd_dsi;
namespace: "waveshare"
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}
156 changes: 154 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,154 @@
# Waveshare-ESP32-components
waveshare componets For ESP Component Registry
# Waveshare ESP32 Board Support Packages and Drivers

Welcome to the repository for Waveshare ESP32 products! This repository is designed to provide resources, drivers, and
support packages for Waveshare's ESP32-based boards and compatible display modules. It aims to simplify development and
accelerate your project setup.

---

## 📦 Repository Contents

### 1. **Board Support Packages (BSP)**

| Board | supported |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
| [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"> ||
| [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"> | 🕒 |
| [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"> | 🕒 |
| [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"> | 🕒 |
| [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"> | 🕒 |

### 2. **Display Drivers**

| Product ID | Dependency | tested |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|--------|
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [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) ||
| [: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) ||

## 📚 Documentation

Each library and support package comes with detailed documentation and examples. Key highlights include:

- **Initialization Guides:** Step-by-step instructions for setting up your board and peripherals.
- **Examples:**
- The driver library code provides the simplest low-level drivers
- BSP sample programs can be queried in different product wikis, and will be synchronized in
the [ESP32-display-support](https://github.com/waveshareteam/ESP32-display-support)
- **Code Comments:** Inline documentation for better understanding.

---

## 🚀 Getting Started

### Prerequisites

- **Hardware:**
- Waveshare ESP32 boards
- Supported display modules
- Compatible touch controllers(Optional)
- **Software:**
- [ESP-IDF](https://github.com/espressif/esp-idf)(Each product has a recommended version on the wiki as well as
sample routines)

[//]: # (### Setup)

[//]: # ()

[//]: # (1. Clone the repository:)

[//]: # ()

[//]: # ()

[//]: # (2. Install required dependencies:)

[//]: # ()

[//]: # ()

[//]: # (3. Flash the example projects:)


---

## 🌟 Features

- **LVGL Support:**
- Widgets, animations, and custom UI components for Waveshare displays.
- **Optimized Drivers:**
- DMA and double buffering for smooth graphics.
- **Peripheral Utilities:**
- Simplified access to RTC, I/O expanders, and power management ICs.
- **Arduino-Compatible Libraries:**
- Easy porting of code using the Arduino ecosystem.

---

## 🔧 Configuration

You can view some of the configurations that have been added via menuconfig, which will allow you to verify the
functionality directly

---

## 📂 Directory Structure

```
.
├── bsp/ # Board support packages
├── display/ # Display drivers
└── README.md # Project overview (this file)
```

---

## 🛠️ Contributing

We welcome contributions! Here’s how you can help:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Commit your changes with clear descriptions.
4. Submit a pull request for review.

---

## 🧩 Issues and Support

If you encounter any issues:

- Check the [Issues](https://github.com/waveshareteam/Waveshare-ESP32-components/issues) section.
- Create a new issue with detailed information.
- Refer to the documentation for troubleshooting tips.

---

## 📜 License

This repository is licensed under the Apache License License. See the `LICENSE` file for details.

---

## 🙌 Acknowledgments

- Waveshare for their excellent hardware platforms and software support
- The Espressif Team for their continuous support.
- Open-source contributors who make these projects possible.

---

Thank you for using Waveshare-ESP32-components! 🚀

8 changes: 8 additions & 0 deletions bsp/esp32_p4_nano/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

idf_component_register(
SRCS "esp32_p4_nano.c"
INCLUDE_DIRS "include"
PRIV_INCLUDE_DIRS "priv_include"
REQUIRES driver
PRIV_REQUIRES esp_lcd usb spiffs fatfs
)
150 changes: 150 additions & 0 deletions bsp/esp32_p4_nano/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
menu "Board Support Package(ESP32-P4)"

config BSP_ERROR_CHECK
bool "Enable error check in BSP"
default y
help
Error check assert the application before returning the error code.

menu "I2C"
config BSP_I2C_NUM
int "I2C peripheral index"
default 1
range 0 1
help
ESP32P4 has two I2C peripherals, pick the one you want to use.

config BSP_I2C_FAST_MODE
bool "Enable I2C fast mode"
default y
help
I2C has two speed modes: normal (100kHz) and fast (400kHz).

config BSP_I2C_CLK_SPEED_HZ
int
default 400000 if BSP_I2C_FAST_MODE
default 100000
endmenu

menu "I2S"
config BSP_I2S_NUM
int "I2S peripheral index"
default 1
range 0 2
help
ESP32P4 has three I2S peripherals, pick the one you want to use.
endmenu

menu "uSD card - Virtual File System"
config BSP_SD_FORMAT_ON_MOUNT_FAIL
bool "Format uSD card if mounting fails"
default n
help
The SDMMC host will format (FAT) the uSD card if it fails to mount the filesystem.

config BSP_SD_MOUNT_POINT
string "uSD card mount point"
default "/sdcard"
help
Mount point of the uSD card in the Virtual File System

endmenu

menu "SPIFFS - Virtual File System"
config BSP_SPIFFS_FORMAT_ON_MOUNT_FAIL
bool "Format SPIFFS if mounting fails"
default n
help
Format SPIFFS if it fails to mount the filesystem.

config BSP_SPIFFS_MOUNT_POINT
string "SPIFFS mount point"
default "/spiffs"
help
Mount point of SPIFFS in the Virtual File System.

config BSP_SPIFFS_PARTITION_LABEL
string "Partition label of SPIFFS"
default "storage"
help
Partition label which stores SPIFFS.

config BSP_SPIFFS_MAX_FILES
int "Max files supported for SPIFFS VFS"
default 5
help
Supported max files for SPIFFS in the Virtual File System.
endmenu

menu "Display"
config BSP_LCD_DPI_BUFFER_NUMS
int "Set number of frame buffers"
default 1
range 1 3
help
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.

config BSP_DISPLAY_LVGL_AVOID_TEAR
bool "Avoid tearing effect"
depends on BSP_LCD_DPI_BUFFER_NUMS > 1
default "n"
help
Avoid tearing effect through LVGL buffer mode and double frame buffers of RGB LCD. This feature is only available for RGB LCD.

choice BSP_DISPLAY_LVGL_MODE
depends on BSP_DISPLAY_LVGL_AVOID_TEAR
prompt "Select LVGL buffer mode"
default BSP_DISPLAY_LVGL_FULL_REFRESH
config BSP_DISPLAY_LVGL_FULL_REFRESH
bool "Full refresh"
config BSP_DISPLAY_LVGL_DIRECT_MODE
bool "Direct mode"
endchoice

config BSP_DISPLAY_BRIGHTNESS_LEDC_CH
int "LEDC channel index"
default 1
range 0 7
help
LEDC channel is used to generate PWM signal that controls display brightness.
Set LEDC index that should be used.

choice BSP_LCD_COLOR_FORMAT
prompt "Select LCD color format"
default BSP_LCD_COLOR_FORMAT_RGB565
help
Select the LCD color format RGB565/RGB888.

config BSP_LCD_COLOR_FORMAT_RGB565
bool "RGB565"
config BSP_LCD_COLOR_FORMAT_RGB888
bool "RGB888"
endchoice

choice BSP_LCD_TYPE
prompt "Select LCD type"
default BSP_LCD_TYPE_1280_800_WAVESHARE_10_1
help
Select the LCD.

config BSP_LCD_TYPE_1024_600
bool "LCD 7-inch 1024x600 - ek79007"
config BSP_LCD_TYPE_1280_800
bool "LCD 1280x800 - ili9881c"
config BSP_LCD_TYPE_1280_800_WAVESHARE_10_1
bool "Waveshare 1280x800 10.1inch Display"
endchoice

config BSP_LCD_MIPI_DSI_LANE_BITRATE_MBPS
int "MIPI DSI lane bitrate (Mbps)"
default 1500
range 600 1500
help
Set the lane bitrate for the MIPI DSI interface in Mbps.
Adjust this value based on the display's requirements and capabilities.
Try 840, 860, 933, 1000, 1200, 1500.


endmenu

endmenu
Loading

0 comments on commit f60a963

Please sign in to comment.