Skip to content
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

request add waveshare ESP32-S3-LCD-1.47 #122

Open
springeye opened this issue Nov 10, 2024 · 6 comments
Open

request add waveshare ESP32-S3-LCD-1.47 #122

springeye opened this issue Nov 10, 2024 · 6 comments

Comments

@springeye
Copy link

First of all, thank you very much for providing this library, which allows me to successfully run waveshare's ESP32-S3-Touch-LCD-4.3

I am a beginner. I don't know much about custom development boards. So can you please add support https://www.waveshare.com/wiki/ESP32-S3-LCD-1.47

@Lzw655
Copy link
Collaborator

Lzw655 commented Nov 11, 2024

Hi @springeye,

thank you very much for using this library. However, since I don't have the hardware for this development board, I'm unable to perform functional testing. Perhaps @martinroger and @Y1hsiaochunnn could help us with this.

@martinroger
Copy link
Contributor

Hi @springeye , I don't have the hardware but I can try to give it a look later tonight (CET). Have you ever used this library or is it your first time?
What is your preferred IDE?

@springeye
Copy link
Author

springeye commented Nov 11, 2024

@martinroger
I'm using this library for the first time, I'm using platformio(framework = arduino)

@martinroger
Copy link
Contributor

@springeye perfect. I prepared a branch of one of my "sandbox" repos for you to try and see if it works on your hardware : https://github.com/martinroger/WS-ESP32S3-RoundLCDTouch1_85/tree/springeye1_47

Please note that this contains everything that should be needed :

  • Board JSON definition file
  • Platformio pointing to a version of the ArduinoESP >3.0.6
  • Simple main.cpp file that does a B-G-R line test to check LCD functionality and shows one way to initialise the LCD
  • In the include folder, ESP_Panel_Board_Custom.h configured correctly (I hope).

image

Some caveats :

  • In the configuration file, I set some custom LCD init commands as per what Waveshare is doing in their original demo software :
    {                                                                           \
        ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(120, 0x11),                           \
        {0x36, (uint8_t []){0x00}, 1, 0},                                       \
        {0x3A, (uint8_t []){0x05}, 1, 0},                                       \
        {0xB0, (uint8_t []){0x00, 0xE8}, 2, 0},                                 \
        {0xB2, (uint8_t []){0x0C, 0x0C, 0x00, 0x33, 0x33}, 5, 0},               \
        {0xB7, (uint8_t []){0x35}, 1, 0},                                       \
        {0xBB, (uint8_t []){0x35}, 1, 0},                                       \
        {0xC0, (uint8_t []){0x2C}, 1, 0},                                       \
        {0xC2, (uint8_t []){0x01}, 1, 0},                                       \
        {0xC3, (uint8_t []){0x13}, 1, 0},                                       \
        {0xC4, (uint8_t []){0x20}, 1, 0},                                       \
        {0xC6, (uint8_t []){0x0F}, 1, 0},                                       \
        {0xD0, (uint8_t []){0xA4, 0xA1}, 2, 0},                                 \
        {0xE0, (uint8_t []){0xF0, 0x00, 0x04, 0x04, 0x04, 0x05, 0x29, 0x33, 0x3E, 0x38, 0x12, 0x12, 0x28, 0x30}, 14, 0}, \
        {0xE1, (uint8_t []){0xF0, 0x07, 0x0A, 0x0D, 0x0B, 0x07, 0x28, 0x33, 0x3E, 0x36, 0x14, 0x14, 0x29, 0x32}, 14, 0}, \
        ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(0, 0x21),                             \
        ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(120, 0x11),                           \
        ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(0, 0x29),                             \
    }

... it might work without it.

  • I am unsure if/how the touch is handled on this unit. Please report, but I think this current library is not designed to handle this type of touch.
  • I didn't implement anything for the RGB LED (you can use the builtin neopixelWrite()) or the SD card (there are many libraries for this)

How to :
Please clone the repo on your computer, switch to the springeye1_47 branch and open it with VSCode. It should take 5-10 minutes (and requires internet) to install the framework packages. Once Platformio is done and ready, compile and flash and open a Serial Monitor to your board and report what comes out in the console. If it doesn't work or constantly reboots, please let us know here.

@Y1hsiaochunnn
Copy link
Contributor

@martinroger Thank you for your work. In fact, the register initialization content should be retained. This is the recommended configuration of the screen, and it may affect the display if it is lost or modified

@springeye
Copy link
Author

My development board was damaged by my daughter last night, so I bought a new one for verification (the delivery takes about 2-3 days).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants