ESP32 WROVER Platform RAM size


#1

Hey there everyone,

I’ve been working on an IOT project that requires quite a lot of available memory (Wifi, Bluetooth, Amazon Web Services, and then some extra functionality on top of that) and recently we realized that we’d be hard pressed to make it all work within the 288KB of available heap space of the ESP32 WROOM boards through PlatformIO.

So we bought a few WROVER kits, and now we’re building to those. We were surprised however, to find they had an identical heap size to the WROOM kits when we built through PlatformIO. The WROVER has access to an additional 4MB of PSRAM, and I figure there’s no reason why it should be limited to a 288KB heap size.

Indeed, under Espressif32 boards, it seems like PlatformIO treats it identically to all the other ESP32 boards (http://docs.platformio.org/en/latest/platforms/espressif32.html)

So my question is this: (And please do forgive me for any ignorance on my part, I’m only learning as I’m going here)

Is there any way for me to get platformIO to register additional heap space on the WROVER and utilize it’s extra memory? Or, failing that, is it possible for me to adjust the available heap size at all on any ESP32 board? I know there’s more memory availble, looking at these partition tables. I just don’t know how to utilize it.


#2

I have the same problem, anyone that can help us?


#3

Is it possible with Arduino IDE?


#4

I can’t speak to the Arduino IDE, but I know I can adjust all of this when building through the ESP-IDF and using its make menuconfig tool.


#5

Hi @Mike_Daoust ! Could you please point out where you change RAM size in menuconfig?


#6

Sure thing, it’s just a flag under Component Config -> ESP32 Specific -> Support for External, SPI-connected RAM In addition, I found that “Allow external memory as an argument to xTaskCreateStatic” under SPI RAM Config was very helpful.

After setting that flag, a call to esp_get_free_heap_size() returned 4483492


#7

Hmm, I can’t see such options in 2.1.1 release, so I suppose you are using esp-idf from dev branch or at least 3.0-RC version? Currently, we support only stable versions of frameworks, therefore the external RAM config will be added when the official 3.0 version of the framework is released.


#8

Thanks @valeros ! Looking forward to that. I have everything working in Eclipse right now, but would much prefer working in PlatformIO. So I will wait for the stable release of ESP-IDF 3.0 for the time being.


#9

Would this option trickle down to the Arduino platform too?


#10

It shouldn’t, the Arduino framework uses a newer version of the esp-idf where this option might be enabled, but I’m not quite sure.


#11

Not that I capped the 1m mark, but it seems like a waste to have all that flash just for spiff access.


#12

In case anybody REALLY needs to access more RAM with their WROVER and can’t wait for PlatformIO support, I’ve made a tutorial here for how to do it in Eclipse:

http://advanceworx.ca/getting-the-most-from-your-esp32-wrover/

If you guys aren’t cool with me sharing tutorials about how NOT to use PlatformIO, let me know and I’ll be happy to retract it.


#13

But that would include plucking my eyes out and nailing my hands to a chair! :slight_smile:


#14

We are not Italian mafia :slight_smile: We respect all projects and do not make them competitors :wink:

Thank you very much for your blogpost! We will update PIO to ESP-IDF 3.0 when it is released. Please ping us if we will miss that!


#15

:laughing: :laughing: :laughing:


#16

@ivankravets & @valeros; Is it possible to push this feature?

The possibility to enable additional RAM would be great and probably widely valued.

best regards, Reza Anwar


#17

Sure, we wait for the final release of ESP-IDF 3.0.


#18

Thanks for taking the time to crate that tutorial!


#19

Hello - I’m new here and have been struggling trying to understand how to enable psRAM on a WEMOS WROVER board using PlatformIO IDE with VSCode on either Mac or Linux.

If I build the esp-idf from GitHub in a terminal on my Linux box (independent of using VSCode and PlatformIO-IDE
I can get the new menuconfig options to enable psRAM but I don’t understand how to get PlatformIO-IDE to integrate the newer esp-idf.

I have read this thread, but it seems as if the PlatformIO Team has not yet updated to the newer version

Does anyone here know if/when this will be happening? Thank you!!


#20

Does Pre-release 3.0-rc1count?
I wonder if it would be a good feature (unless I missed it if you have it already) to allow us to select what version to use.