Ошибка SPIFFS upload failed появляется в консоли Arduino IDE в момент вызова инструмента ESP32 Sketch Data Upload (или ESP8266 Sketch Data Upload) и означает, что образ файловой системы не смог записаться во флеш-память микроконтроллера. Чаще всего причина — не в самой плате, а в отсутствующем плагине загрузки, неверно выбранной схеме разделов или занятом последовательном порту.
Ниже разберём, как устроен процесс загрузки SPIFFS, какие проверки выполнить в первую очередь и как исправить типовые сценарии сбоя. Инструкция подходит для плат на базе ESP8266 и ESP32, работающих в среде Arduino IDE (как версии 1.x, так и 2.x), с оговорками там, где поведение версий различается.
Как работает загрузка SPIFFS и где она ломается
Файловая система SPIFFS (Serial Peripheral Interface Flash File System) хранится в отдельном разделе флеш-памяти микроконтроллера. Когда вы выбираете пункт меню загрузки данных, IDE сначала упаковывает содержимое папки data вашего скетча в бинарный образ с помощью утилиты mkspiffs, а затем передаёт его на плату через инструмент esptool (для ESP32) или esptool-ck / esptool.py (для ESP8266).
Сбой может произойти на любом из трёх этапов: плагин загрузки не установлен или не найден, образ не собирается из-за проблем с файлами, либо плата не принимает данные из-за занятого порта, неверной скорости или отсутствия режима загрузки. Поэтому диагностику имеет смысл строить по цепочке — от среды разработки к железу.
💡Ошибка SPIFFS upload failed — это симптом, а не диагноз. Точную причину всегда подсказывает текст ошибки в консоли чуть выше итогового сообщения.