I designed an HMI using an ESP32 P4 Dev module and a Waveshare 7" 720x1280 DSI display. I designed the display horizontally in Squareline. However, when I upload the program to the ESP32, it appears vertically. I want to eliminate the stuttering and lag on the screen.
What have you tried so far?
I rotated the display 90 degrees to make it horizontal. However, there is extreme slowdown during screen transitions—there’s almost a 1–1.5-second delay. How can I resolve this?
I ran speed tests with various combinations: with or without double buffering, and with buffer sizes set to 10%, 25%, or 100%. I still couldn’t get a solution.
Is this screen only usable in portrait orientation?
Maybe try back do basic school. Simple Math you display require 800mBit/s pixel data , this exactly for only 30Hz refresh. For normal 60Hz twice more.
And your MCU PSRAM provide only 640mBit on ideal direct transfer. Realy max is around 500. Here you see is unreal tournament…
Technicaly with displays own memory and transfer only changes some HMI can work relative smooth. This all require very optimized use both cores and dma hw…
And ofcourse never use sw rotating display.
I don’t want to use software rotation either, because it causes excessive lag.
There are issues with screen transitions. If I turn off software rotation, I can achieve the performance I want.
But then I can’t use it in landscape mode. How can I do this?
I’ve attached the image of what I designed on the computer and the visual I saw after programming it.
I guess these panels doesn’t support hardware screen rotation feature. And even if the LCD driver could regarding this, the API doesn’t exist for this.
So I think only one way for you is software rotation or redesign UI to landscape mode.
When the screen orientation does not come by default at 0 degrees and you have to rotate it either by software, make sure to use RGB565 and not RGB888 because I experienced problems with a 4.3-inch GUITION screen that also had the MIPI-DSI interface because it was 480x800, that is, vertical, and I rotated it 90 degrees to make it 800x480. I experienced the FPS problem from 5fps to 9fps; I did the software rotation using ESP_LVGL_ADAPTER, which is the improved version of ESP_LV_PORT that uses BSP. Now, if you configure your screen to RGB888 and your screen is at 0 degrees, that is, direct, you do not experience the slow problem. I don’t know why that is; I still have to try rotating it myself through an algorithm. If you don’t mind about RGB888 you could use this ESP LVGL ADAPTER - - — ESP-IoT-Solution latest documentation and set to “RGB565”. Pls read PPA fix parch if you dont then error(freeze forever :V) pls, don’t waste your time as i did because didn’t read that part xD. You need at least ESP-IDF V5.5.(0-4) , don’t use V6.0.0 because isnt work the parch
Sorry I don’t speak english V: