According to the documentation of the esp32doit-devkit-v1 has 4MB of flash memory. Not all of it can be used for your application(s) because bootloader, nvs, phy_config, etc. need someof it.
Quoting the from the partition tables documentation the default partition size for an application (e.g. factory
or ota_1
or ota_2
) is 1M
. Seen here in the example for “Factory app, two OTA definitions”
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x4000,
otadata, data, ota, 0xd000, 0x2000,
phy_init, data, phy, 0xf000, 0x1000,
factory, app, factory, 0x10000, 1M,
ota_0, app, ota_0, 0x110000, 1M,
ota_1, app, ota_1, 0x210000, 1M,
Meaning the 1M
--> 10124 * 1024 --> 1048576 (Bytes) (refer to your screenshot).
The firmware you are building consumes 1060221
Bytes which is greater than this (default) partition size...
This is probably due to the fact that in your partition table the size for ota_1
and ota_2
is set to 1984K
(1984 * 1024 --> 2031616Bytes) and in combination with the other necessary partitions and the offset due to the booatloader is exceeding the 4MB flash (roughly estimated).
I assume a check during the creation of the partition table prevents overuse and sets the partition size back to the default size.
Try to use the following partition table and increase the partition size for ota_1
and ota_2
if necessary
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, , 0x4000,
otadata, data, ota, , 0x2000,
phy_init, data, phy, , 0x1000,
ota_0, app, ota_0, , 1200K,
ota_1, app, ota_1, , 1200K,