I am having a similar issue currently. I can get the login screen to show up on the display, and when I inspect it in the Chrome Devtools page, it allows me to type in the login info, but after typing 2 or 3 characters, the screen goes solid white and stays that way.
Edit:
Nevermind, It just kind of stopped doing it after several reboots, and now the white screen problem is no longer present.
I am having a different issue now though, I can’t seem to get any button presses or anything working. The touch input is functioning, because my touch events show up in the log output, and I can scroll the screen just fine. It just doesn’t work for pressing button, selecting anything in the sidebar, etc. There’s just no events or anything happening when I press anything, it’s like I’m not even touching it. It seems weird to me that I can still scroll up and down my dashboard with my finger though
I loaded the page through the chrome dev-tools just like I did when I had to log in, and I can’t interact with anything through that page either, I can just scroll up and down the page with my mousewheel.
Use “main” branch instead of "hardware_jpeg’. It’s 13 commits behind main and does not include any unique changes. I’d consider it outdated.
TBF, I’m not sure if hardware jpeg decoder is really being used in ESP32-P4 at the moment. But for the moment, just focus on getting it stable, if that means reverting to using a software decoder so be it.
Depending on your LCD resolution, you might want to bump up the tile size a bit. Maybe the sheer number of tiles to manage gives the whole solution issues to keep up?
I’ve had issues with setting ‘min_frame_interval’ to anything below 70. But I feel this might related to the screen resolution. My device has a 1280x800 LCD so drawing a whole frame is time intensive that’s for sure. Maybe you can get by with a lower number but start high and move down bit by bit.
Side note, on ESPHome 2026.01.0, I have a bootloop issue when setting cpu_frequency to 400MHz, Ihad to dial it down to 360MHz
I’m still experimenting if using larger tiles results in better refresh rates or not
It does seem to help out with screen tears tho
I’m trying to find the right settings here to maximize performance since I’m confident a ESP32-P4 with hardware JPEG decode and a good wifi (esp32-c6 has wifi 6) can take quite a mouthful. It just feels a bit too sluggish at the moment to be honest.
Oh and you might want to look into updating the firmware of the esp32 coprocessor in charge of wifi.
Documentation:
You need ESPHome 2026.01.0 at least and I found out the update will not start on its own even if the main ESP sees a new firmware
Enable debug logs, once connected press the check button (might not be required but does not hurt), then the “Perform update” button to apply the firmware update. Your system will reboot once complete.
Does anyone have working code for waveshare ESP32-S3-Touch-LCD-4 rev 3.0?
I found this, that seems to be exactly that, but it seems to fail properly setup the screen and ends up with solid yellow color. Maybe something has changed, allthou rev is the same?
This is a tangentally related question. But couldn’t this remote webview approach be used to make underpowered tablets display HA dashboards better?
In many underpowered tablets, the dashboards grind them to a crawl, it seems like this technique could prevent that. I haven’t seen any other projects that offer this.
What’s the recommended setup for 7 clients — one server instance for all panels (with unique device_id per display), or multiple server instances/ports? Any “known good” server/client settings for stability with many clients?
How do you handle the “first tap” when the backlight is OFF? Right now the first tap wakes the screen but also gets sent into the webview and clicks something unintentionally. Is there a way to ignore/disable touch while sleeping, or is the best practice to switch to a safe/blank “wake” view while the screen is off?
I’m also seeing occasional rendering glitches: e.g. when adjusting brightness, the slider animation sometimes “breaks apart” / tears / doesn’t redraw cleanly. Is there a reco
::contentReference[oaicite:0]{index=0}
There is an option to turn off the touch function. I have set it up so that when the display is off, the touch function is also off, and when the display is on, the touch function is reactivated.
(This only controls the transmission of the touch function.)
Can I display the camera on the dashboard? I’ve set everything up, but when I open any camera, I get a webrtc error. What am I doing wrong? Or is it impossible to view the cameras?