Not enough DMA-able memory - ili9341


A frustrated newbie.

I have a generic ESP32 - WROVER (8 MB SPIRAM) module. I’ve downloaded lv-micropython with micropython 1.18

I’ve built a version with ESPIDF v4.3 for Generic_SPIRAM.

But I cannot get past the :Not enough DMA-able memory to allocate display buffer" issue with the ili9341

I have searched the 'net for any users of this combination, but have not been able find anyone using this in 2022.

With current lvgl and v1.18 micropython, is it still possible to use this display? Do I need to change some compie directives of configuration files?

Thanks for any hints.

Cheers, Barry

Hi @haybarry !

Yes, of course it’s possible.
I’m not sure why you don’t have enough DMAable RAM.
I’m using ESP32 WROVER with SPIRAM and have no issues with ili9341.

  • Do you use latest version of lv_micropython from GitHub?
  • Did you remember to update git submodules?
  • Did you change anything in lv_micropython? Did you add or change anything that might consume more RAM?
  • I didn’t try ESPIDF v4.3 (although it might work).
    The officially supported versions for Micropython v1.18 are v4.0.2 and v4.4 (142bb32c50fa9875b8b69fa539a2d59559460d72)
  • Do run anything after boot but before initializing the display? Try to initialize the display first (before wifi init, for example).

You can reduce the required DMAable RAM by setting a higher value for factor (try 8, 16, 32, 64, etc.), but this comes at expense of performance.

See: Not enough DMA-able memory to allocate display buffer

Thank you Amirgon for your suggestions.

I went back to a clean system and followed the procedure to clone the repository and build lv_micropython. I have uploaded the binaries to my ESP32-WROVER. But now I have a build that continually resets.

Before I raise the white flag, do you, or anyone, have a working binary for ESP32-WROVER on generic board with ili9341 that they could share?

Thanks in advance


I had more or less the same problems, I used a esp32-wrover with spiram together with a wemos-d1 tft shield TFT I2C Connector Shield — WEMOS documentation.

when i scanned the touch panel, the esp did a hard reset :frowning: .
it turned out that the CS pin for the touch was the same as the CS for the spiram,… boom …

after selecting an other pin for the touch CS, it works for me.