This project demonstrates how to bring up the JD9365-based MIPI DSI display and GSL3680 capacitive touch controller on the JC8012P4A1 board using Arduino.
- 10.1" JD9365 800x1280 MIPI DSI LCD display
- GSL3680 I2C capacitive touch support
- Backlight control via PWM (GPIO 23)
- Display updates using Arduino_GFX + ESP32-P4 DSI peripheral
- Touchpoint visualization (draws circle on touch)
- Basic Wi-Fi connectivity
- Board: JC8012P4A1 (ESP32-P4-based dev board)
- Display: JD9365 over 2-lane MIPI DSI
- Touch: GSL3680 over I2C
- Backlight: Controlled via PWM on GPIO 23
- Optional: Camera support (not yet configured)
Function | GPIO |
---|---|
LCD Reset | 27 |
Backlight | 23 |
Touch SDA | 7 |
Touch SCL | 8 |
Touch RST | 22 |
Touch INT | 21 |
- Clone this repo and open in PlatformIO
- Copy-paste and adjust the following code into a new file
src/secrets.hpp
.
#pragma once
constexpr const char SSID[] = "network name";
constexpr const char PSK[] = "network password";
- Upload to the board — you should see the screen light up and respond to touch
Arduino_GFX
esp_lcd_touch
(for GSL3680 driver, via ESP-IDF integration)esp32-hal-ledc
(PWM backlight)
- Add double buffering or frame sync to reduce tearing
- Integrate camera (if supported)
- Optional: Add LVGL support with input & widgets