Skip to main content

Partition Table Editor

The partition table is a key component for managing memory allocation on ESP32 and similar microcontroller devices. It defines the structure of memory, outlining where different applications, data, and configurations are stored in flash memory. Smowcode offers an easy-to-use interface to configure and customize the partition table according to your project requirements. This feature is accessible throught the sidebar.

parition_table

Partition Table Fields

The partition table in Smowcode includes the following fields:

  • Name

    • The label for a specific partition, used to identify its purpose.
    • Example: nvs, phy_init, factory.
  • Type Specifies the type of partition.

    • app: Stores the application code.
    • data: Used for data storage, such as nvs (Non-Volatile Storage) or phy (PHY initialization).
  • Subtype

    • A further categorization of the partition type.
    • For example, factory for the factory application or nvs for non-volatile storage.
  • Offset

    • Defines the starting address of the partition in the flash memory.
    • Example: 0xb000, 0x20000.
  • Size

    • Specifies the size of the partition in kilobytes (K) or megabytes (M).
    • Example: 24K, 4K, 0x380000.
  • Flags

    • Additional attributes for the partition, such as encryption.
    • Example: encrypt (for secure storage).
  • Actions

    • Options to modify or delete the partition in the table.

Predefined Partition Schemes

Smowcode provides several predefined partition schemes for ease of use. These include:

  • Starter: A basic partition table for small projects.
  • Single factory app no OTA: For applications without OTA (Over-the-Air) updates.
  • Single factory app (large) no OTA: Similar to the above but with more memory allocation for the app.
  • Factory app with two OTA definitions: For projects requiring two OTA partitions.
  • Single factory app (large) no OTA, encrypted NVS: Combines a large factory app partition with encrypted non-volatile storage (NVS).

You can also create custom partition tables based on your needs.

Additional Features

  • Add Partition: Add new partitions to the table as needed for your project.
  • Import/Export CSV: Easily import or export partition tables in CSV format to back up or share with others.

Example Partition Table

NameTypeSubtypeOffsetSizeFlagsActions
nvsdatanvs0xb00024KDelete
phy_initdataphy0x110004KDelete
factoryappfactory0x200000x380000Delete
nvs_keydatanvs_key4KencryptDelete

How to Use

  • Select a Partition Scheme: Choose a predefined scheme or create a custom table.
  • Add Partitions: Use the "Add Partition" button to include new partitions as per your project needs.
  • Modify Details: Edit the name, type, offset, size, and flags as required.
  • Export/Import CSV: Save your partition table or load an existing one using the CSV export/import feature.
  • Flashing Addresses: Ensure that the flashing addresses in your firmware are consistent with the entries in the partition table.

For more information, refer to the partition table documentation.

Note: Always ensure that flashing addresses are consistent with the entries in the partition table to avoid errors during firmware uploads.