If you've got an ESP32-P4 board with a MIPI-DSI screen, you may have seen this. Your program saves a setting, writes a file or takes an update over the air, and the whole screen blinks black or blue for a moment. Every single time.
It isn't your code and it isn't your board. It caught me out on my own Waveshare 4.3-inch P4, so I went looking.
What was going on
The screen driver needs to keep feeding the panel, and while the chip writes to flash it can't. On a P4 with a DSI panel, that gap is long enough to see. Espressif's ESP-IDF has an option that keeps the panel fed through a flash write, but the Arduino core for the P4 was built with it switched off. Arduino users had no way to turn it on.
What we did about it
- LCD Wizard's exports. Every Arduino export for a P4 DSI board keeps the picture going through flash writes, and every ESP-IDF export switches Espressif's option on. Both ran on my 4.3. Without the fix it blinks. With it, in my notes from the test, "the green is solid AF".
- Everyone else. I reported it to Espressif as arduino-esp32 issue 13026 and offered the fix as esp32-arduino-lib-builder pull request 407. Espressif merged it on 26 October 2026 and closed the issue.
So once a core built with that change reaches you, every Arduino sketch on a P4 DSI screen gets the steady picture, whether or not it came from LCD Wizard. That's the bit I'm chuffed about.
If you're hitting it now
There's a page that explains the cause and the fix in full, for anyone, with or without LCD Wizard: ESP32-P4 DSI screen flickers when writing to flash. Every DSI board page links to it too, from the Waveshare 4.3 to the Elecrow CrowPanel Advanced 9-inch.
If you design in LCD Wizard you don't need to do anything. Export for a P4 DSI board and it's in there.
Why it matters to me
I spent years testing displays in fighter cockpits, where a screen that blinks is a fault, full stop. A panel that flashes when you save a setting is the same kind of fault. Finding it was half the job. Getting it fixed at the source, so nobody else has to find it, was the other half.


