Waveshare ESP32-S3-PICO with Waveshare ResTouch-PICO-LCD-3.5 fails DC/CS out of range #2842
-
Description of the problem. Waveshare makes a 3.5 LCD with touchscreen called the ResTouch-PICO-LCD-3.5. This HAT supports the 40 pin Pi Pico, Pi Pico W, Waveshare dev kits: ESP32-S2-Pico and WS ESP32-S3-Pico boards. I can successfully use TFT_eSPI with all the combinations except the S3 due to the limitation of the LCD DS and CS requiring a GPIO of 31 or less. I have even tried to breadboard the S3 to the LCD and change DC and CS to a lower GPIO. Still fails. No screen initialization at all. If any user actaully want to use the S3/LCD combination they are forced to use the pin/GPIO listed below. IDE TFT_eSPI library version Board package version Processor TFT driver Interface Connections: Pin LCD-3.5 PiPico S2-PICO S3-PICO Notes TFT_eSPI Test works works fails For each configuration I have created a custom user setup.h file. I know that GPIO 33/34 can be used for DC/CS, as I have compiled a Home Assistant sensor with ESPHome using |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 1 reply
-
These mappings of the SPI pins are supported:
GPIO above 31 can be used for DC, CS and RST This means the board should work if you swap the SCLK and MOSI connections. |
Beta Was this translation helpful? Give feedback.
-
Thank you for confirming that there is no restriction on which GPIO pin can be used for DC, CS and RST. As mentionned, I have tested the S2 with success, but the S3 eludes success. I have tested with and without HSPI. Here is my custom setup.h. I have tested loading the Read_User_Setup.ino to ensure the settings are read and validated via Serial. However, I only get a blank screen whenever I run any basic screen test, like UTFT_Demo_480x320.ino.
|
Beta Was this translation helpful? Give feedback.
-
I have already attempted your suggestion and the result is still a blank screen. What could I use to further debug this issue? Here is a photo where I have physically rewired CLK/MOSI, orange and yellow jumpers crossed over, per your instructions so that I force the LCD MOSI to GP35 and CLK to GP36 on the DEV board. Updated my custom setup.h per your suggestion. And here is the results of the diagnostic sketch:
Here is the hardcoded pinout of the ResTouchLCD: Here is the Waveshare ESP32-S3-PICO pinout: If I use the DEV board directly pin-for-pin on the LCD board, I am forced to use GP35 for CLK and CP36 for MOSI. This is where I initially started with the original setup.h sent earlier. --> CURIOUSLY....under IDE ESPhome the display does work with these hardcoded pin assignments! Here is my ESPhome configuration (shortened for brevity) where the display works and I am using CLK on 35 and MOSI on 36 due to the HAT pin assignments.
So, in conclusion I have attempted nearly all combinations that I can think of. I have tried:
Willing to provide any additional information that may prove useful. |
Beta Was this translation helpful? Give feedback.
-
I have done considerable testing and research into this issue. I noticed that there was a fix (#2725) in the github but that didn't show up in my local Arduino library. I thought I had the most recent version (v2.5.0), but the docs for the fix showed v2.5.30... I pulled a full clone of the library from Github locally and VOILA the Waveshare ResTouch-PICO-3.5 now functions with the S3! I am not sure if it is specific to the fix of 2725, but is it definitely whatever changed between lib version 2.5.0 and 2.5.31 that I downloaded. You can consider this issue closed. |
Beta Was this translation helpful? Give feedback.
-
Just a final note, I tested the WS ESP32-S3-PICO piggybacked directly to the WS ResTouch-PICO-LCD-35 to retest the MOSI/CLK pin configuration again. It works, so it appears that the SPI pins are fully configurable even though the WS designers swapped MOSI/CLK pins. Here is my working setup.h
I ran the full UTFTdemo as well as the diagnostics. Here is the results from the diagnostics.
|
Beta Was this translation helpful? Give feedback.
I have done considerable testing and research into this issue. I noticed that there was a fix (#2725) in the github but that didn't show up in my local Arduino library. I thought I had the most recent version (v2.5.0), but the docs for the fix showed v2.5.30... I pulled a full clone of the library from Github locally and VOILA the Waveshare ResTouch-PICO-3.5 now functions with the S3!
I am not sure if it is specific to the fix of 2725, but is it definitely whatever changed between lib version 2.5.0 and 2.5.31 that I downloaded. You can consider this issue closed.