13.Add hardware partition configuration option in Arduino IDE

The flash memory of the ESP32 board has 16M, and the range of the storage address expressed in hexadecimal is 0x0-0x01000000.

This is the partition table that has been configured by the system, as shown in the figure below:

The storage location of this partition table file on the computer:

C:\Users\{YourUserName}\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.*\tools\partitions\large_spiffs_16MB.csv

It can be seen from the above partition table: APP0 area and APP1 area are 4.5M each; the data area is SPIFFS, and the size is 6.9M.

But in the Arduino IDE, this configuration is not included in the hardware partition configuration options of the ESP32 Dev Module:

We need to add this configuration to the ESP32 Dev Module.

Open the development board configuration file:

C:\Users\{YourUserName}\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.*\boards.txt

Locate the name of the development board: esp32.name=ESP32 Dev Module, as shown in the figure below:

The line of text in the ESP32 Dev Module partition configuration in the configuration file:

esp32.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728

Add the following 3 lines of text below this line:

esp32.menu.PartitionScheme.large_spiffs=BiBoard V0(4.5 MB APP with OTA /6.9 MB SPIFFS)
esp32.menu.PartitionScheme.large_spiffs.build.partitions=large_spiffs_16MB
esp32.menu.PartitionScheme.large_spiffs.upload.maximum_size=4685824

The following explains the meaning of the three lines of text:

esp32.menu.PartitionScheme.large_spiffs=BiBoard V0(4.5 MB APP with OTA /6.9 MB SPIFFS)

The name of the ESP32 partition configuration, we named it BiBoard V0 (4.5M APP with OTA /6.9 MB SPIFFS), or it can be replaced with other names you are familiar with.

esp32.menu.PartitionScheme.large_spiffs.build.partitions=large_spiffs_16MB

The partition configuration file information is the file large_spiffs_16MB.csv . You can also write a partition file to adjust the file size of the APP and data area.

esp32.menu.PartitionScheme.large_spiffs.upload.maximum_size=4685824

This line of text specifies that the maximum upload program size is 4685824 bytes.

Let's try to compile a simple program to test whether the above configuration is set successfully.

Reopen the Arduino IDE, we can see the BiBoard just configured:

After compiling the program, the result is as shown in the figure below:

Compilation is complete, using 213KB of Flash (4%), and the maximum usable size is 4,685,824 bytes.

In this passage, “4685824 bytes” is specified in the third line of text just added to the configuration file.

If you use Arduino IDE 2.0.*, the partition option may not appear automatically. To fix:

  1. Select File > Quit from the Arduino IDE menu to close all active Arduino windows and quit the process.

  2. Delete the "User data" folder:

    • Windows:

      • C:\Users\<user name>\AppData\Roaming\arduino-ide\
    • Linux:

      • ~/.config/arduino-ide/
    • macOS:

      • ~/Library/Application Support/arduino-ide/
  3. Restart the Arduino IDE.

The custom board options menus should now reflect any changes that were made to boards.txt.

So far, you have completed the configuration of the development board with the largest flash memory space in Arduino IDE.

Last updated