ILI9xxx display - blank screen after update to 2025.2 ESPHome

EDIT: Already logged as an issue. Workaround is to add color_palette: 8BIT to the device.. Workaround is to add psram: to the yaml config. The ILI9xxx used to enable PSRAM by default, after this update it no longer does. The 8BIT workaround seems to work for smaller displays but not for 320x240 ILI9488 3.2 inch.

Looks like 16BIT is the default but there was some undocumented detection of PSRAM that switched on 8BIT mode even if you left the default on. At least I think that’s what the breaking change fixed. :smiley:

After update to 2025.2 the screen does not display any objects, simply a white background (all pixels on). Reverting to an older ESPHome build fixes the issue so not a hardware problem.

Going to recompile under 2025.2, just putting this out there for any “me too’s” before I do some more testing and log issue on Github.

Which reminds me - better check if one already open.

Further edit - this only seems to work for some (not me).

Yes, the ili9xxx component used to auto load psram which isn’t a Good Idea since it’s not an absolute requirement. The logs (serial) would have more info on what failed.

Yeah - wasn’t really communicated very well, either in the release notes, the PR or the doco.

The logs only give half a clue:

[15:16:31][E][display:017]: Could not allocate buffer for display!

Yeah, it should have been flagged as a breaking change. Sorry.

This “change” cost me literally an entire day lost to tearing apart my prototype, tracing circuit board traces, swapping ESPs, etc. trying to debug what had happened. Serial logs were of NO help.

Then figuring out how to roll back to 2024-12-4, another giant PITA since I don’t backup add-ons.

Stupid me had Auto Update turned on as my default in ESPHome. Lesson learned. The hard way.

So is there a “fix” for this or are we stuck on 2024-12-4 for now?

`

Apparently there will not be a “fix”, this change was done on purpose so that the display code complies with ESPHome coding rules.

So - 8 bit mode is no longer automatically turned on, you need to do that manually if you run short of memory.

color_palette: 8BIT

Also PSRAM is no longer enabled automatically for these displays, again if you need it you have to turn it on manually.

psram:

I believe that’s how it's going to stay, change will not be reverted.

So update to 2025.2, I have for all my displays and they work fine.

I tried the 8 bit part and that did not work. I can try the PSRAM: bit and see if that solves it. It would have helped if this was documented clearly. It wasn’t - I also scoured the docs looking for a solution,

The release notes and docs have been updated with more details.

1 Like

I see the new notes. But doesn’t the psram section only apply to ESP32 boards that have psram like the S2/S3 boards? I am using an ESP32 WROOM (esp32D1Mini) with no psram…

My ili9341 works great on 2024-12-4. So I’m still questioning if it will work on the new release without psram.

WROVER and some WROOM boards have PSRAM, not just S2 and S3. There can be up to 2MB PSRAM on a WROOM board.

But if it worked before, and doesn’t work with 8BIT and PSRAM enabled - then personally I would be logging a new ticket.

If it works now without PSRAM it will continue to do so. You may need to specifically request 8 bit mode since that was previously being silently enabled if there was insufficient memory. But nothing changed that can’t be set with some config options.

Ok, I’ll give it a shot. I have a backup of EspHome 2025-12-4 now (!)

Ok, on an ESP32 Mini D1 (ESP32-WROOM-32) I can report that the only thing necessary to fix this is this problem is

display:
  - platform: ili9xxx
    id: mydisplay
    model: TFT 2.4 #ILI9341 
    color_palette: 8BIT    #REQUIRED for 2025.2 Esphome to work.

This chip must not have PSRAM as the psram: component does nothing.

Hopefully this helps someone else.

3 Likes

This was exactly what I needed! Awesome work! Thanks.

1 Like