Como inicializar LittleFS no Arduino no ESP32 (PlatformIO)

Para usar a biblioteca LittleFS que vem com Arduino no ESP32, use a seguinte função

init_filesystem.cpp
#include <LittleFS.h>

bool filesystemOK = false;

void InitFilesystem() {
  // Initialize LittleFS
  if (!LittleFS.begin(false /* false: Do not format if mount failed */)) {
    Serial.println("Failed to mount LittleFS");
    if (!LittleFS.begin(true /* true: format */)) {
      Serial.println("Failed to format LittleFS");
    } else {
      Serial.println("LittleFS formatted successfully");
      filesystemOK = true;
    }
  } else { // Initial mount success
    filesystemOK = true;
  }
}

Adicionalmente, você precisa configurar PlatformIO para usar LittleFS:

platformio.ini
board_build.filesystem = littlefs

Agora, em setup(), chame

init_filesystem_call.cpp
InitFilesystem();

Se você tem erros incluindo LittleFS.h, você pode precisar usar explicitamente uma versão recente de arduino-esp32 em platformio.ini:

platformio_platform_packages.ini
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.5

Caso você absolutamente precise usar uma versão mais antiga de arduino-esp32 que não suporta LittleFS out of the box, você pode usar a biblioteca lorol/LittleFS como delineado em nosso post anterior: Como inicializar LittleFS no PlatformIO no ESP32 usando a biblioteca lorol/LittleFS

Exemplo completo de platformio.ini:

platformio_example.ini
[env:esp32dev]
platform = espressif32
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.5
board = esp32dev
framework = arduino
board_build.filesystem = littlefs
monitor_speed = 115200

Check out similar posts by category: Arduino Embarcado ESP8266/ESP32 PlatformIO