Объем flash-памяти зависит от конкретной модели и производителя модуля.

Если кратко: чаще всего встречаются модули с 4 МБ или 8 МБ flash-памяти, но бывают и от 2 МБ до 16 МБ и даже больше.

Давайте разберем подробнее.

1. Встроенная (в чип) vs. Внешняя flash-память

  • ESP32 (чип, например, ESP32-D0WDQ6): Сам по себе чип ESP32 не имеет встроенной flash-памяти. Ему обязательно нужна внешняя память для хранения прошивки и данных.

  • ESP32-PICO-D4: Это исключение. Этот чип имеет встроенную flash-память объемом 4 МБ.

  • Модули ESP32 (например, ESP-WROOM-32, ESP32-DevKitC): Это готовые платы, куда чип ESP32 уже запаян вместе с необходимой внешней flash-памятью. Именно поэтому объем памяти зависит от модуля.

2. Распространенные объемы памяти у популярных модулей

Производитель Espressif и другие компании выпускают модули с разным объемом памяти. Вот самые популярные конфигурации:

 
Модуль (на примере Espressif) Типичный объем Flash-памяти Для чего подходит
ESP-WROOM-32 (самый распространенный) 4 МБ Стандартные проекты, работа с Wi-Fi/Bluetooth, средние проекты на MicroPython.
ESP-WROOM-32E 4 МБ Обновленная версия WROOM-32.
ESP-WROOM-32D 4 МБ Аналогично.
ESP-WROOM-32U 4 МБ Имеет внешнюю антенну, но память та же.
ESP32-S2 4 МБ Часто 4 МБ, но есть вариации.
ESP32-C3 4 МБ Часто 4 МБ, но есть вариации.
ESP-WROVER серии 8 МБ (также имеет 8 МБ PSRAM) Более сложные проекты: обработка изображений, аудио, веб-серверы с большим количеством контента, крупные проекты на MicroPython/Arduino.
Модули от сторонних производителей (например, от LilyGO, TTGO, AI Thinker) Часто 4 МБ или 16 МБ Могут быть любые варианты. Например, модули для работы с дисплеями часто имеют 16 МБ.

3. Как узнать объем flash-памяти на вашей плате?

Есть несколько надежных способов:

  1. Посмотреть на маркировку чипа flash-памяти. Рядом с основным чипом ESP32 на плате находится еще один чип (обычно 8-ногый) — это и есть flash-память. Сфотографируйте его маркировку и поищите в Google (например, "GD25Q32 datasheet"). Цифры в названии часто указывают на объем:

    • 25Q32 — 32 / 8 = 4 МБ

    • 25Q64 — 64 / 8 = 8 МБ

    • 25Q128 — 128 / 8 = 16 МБ

  2. Воспользоваться кодом в Arduino IDE:

    void setup() {
      Serial.begin(115200);
      Serial.print("Flash Size: ");
      // Функция возвращает размер в байтах, делим на 1024*1024 для перевода в МБ
      Serial.print(ESP.getFlashChipSize() / (1024.0 * 1024.0));
      Serial.println(" MB");
    }
    
    void loop() {}

    Загрузите этот скетч, откройте Монитор порта, и он покажет обнаруженный объем.

  3. Воспользоваться кодом в PlatformIO или ESP-IDF:
    Можно использовать команды esptool.py — утилиты для работы с ESP32.
    Подключите плату и выполните в командной строке:

    esptool.py flash_id

    Это команда покажет подробную информацию о чипе flash, включая его производителя и размер.

4. На что влияет объем flash-памяти?

  • Размер прошивки: Чем больше функционала, тем больше занимает скомпилированный код. Прошивка с Wi-Fi, Bluetooth, файловой системой (SPIFFS/LittleFS) и несколькими библиотеками легко может занимать 1.5-2 МБ.

  • Файловая система: Часть flash-памяти выделяется под файловую систему (как жесткий диск в компьютере), где можно хранить HTML-страницы, картинки, конфиги, данные логов и т.д. Чем больше памяти, тем больше места под файлы.

  • Прошивка OTA (Over-The-Air): Для обновления прошивки "по воздуху" нужно место для хранения двух прошивок (текущей и новой), что требует как минимум в 2 раза больше места.

Итог: Самый частый вариант — 4 МБ. Но если вы покупаете плату, всегда уточняйте этот параметр у продавца или в технической документации (datasheet) на конкретный модуль.