ESP32 16MB Partition/Framework version question

Hi there,

I’m using an ESP32-Wroom-32E, 16MB version, I’ve been compiling with arduino version 3.4.0, which was the latest when I started my project.

After updating to any newer version (I haven’t tracked down the exact number it breaks on), any custom partition setup that totals over 4MB usage fails to run. The build starts, completes, uploads without any complaint, but simply will not run any code. This is reproduceable for me on any project, even a truly minimal one file project like this.

#include <Arduino.h>

void setup()
{
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println("Hello!");
}
void loop()
{
}

The terminal gets this far, but will not proceed any further. Reverting to an earlier framework gets it working again. I have LED’s attatched to my board that do not light up, so I presume my code isn’t running at all.

Writing at 0x000e669a... (100 %)
Wrote 897936 bytes (520603 compressed) at 0x00010000 in 13.0 seconds (effective 551.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
============================================================================================== [SUCCESS] Took 57.44 seconds ==============================================================================================
--- Terminal on COM7 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H

My ideal partition table looks like this, but I’ll take anything I can get over 8MB right now

partitions.csv -

# Name    ,  Type  ,  SubType  ,  Offset  ,    Size    ,    Flags
nvs       ,  data  ,  nvs      ,  0x9000  ,    0x5000  ,
otadata   ,  data  ,  ota      ,          ,    0x2000  ,
ota_0     ,  app   ,  ota_0    ,          ,  0x400000  ,   
ota_1     ,  app   ,  ota_1    ,          ,  0x400000  ,   
littlefs  ,  data  ,  spiffs   ,          ,  0x7A4240  ,   

Before - Working

platformio.ino

[env:esp32dev]
board = esp32dev
framework = arduino
platform = https://github.com/platformio/platform-espressif32/archive/refs/tags/v3.4.0.zip
monitor_speed = 115200
monitor_port = COM7
upload_port = COM7

After - Not working

platformio.ino

[env:esp32dev]
board = esp32dev
framework = arduino
platform = https://github.com/platformio/platform-espressif32/archive/refs/tags/v5.1.1.zip
monitor_speed = 115200
monitor_port = COM7
upload_port = COM7

Is there anything obviously wrong with my partition layout or platformio file?
I’d appreciate any pointers.

Please file an issue at Issues · platformio/platform-espressif32 · GitHub.

Okay, i’ve done so, may I please leave this thread up to see if anyone on here can help?

1 Like

Partition.csv is invalid. See Partition Table — Arduino-ESP32 2.0.6 documentation

As example this one will work

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x2F0000,
app1,     app,  ota_1,   0x300000, 0x2F0000,
spiffs,   data, spiffs,  0x5F0000,0xA10000,
2 Likes