Skip to content

Consider moving from SPIFFS to LittleFS #276

Closed
@MallocArray

Description

@MallocArray

Consider changing from using SPIFFS to LittleFS for these devices.

Currently

#include "SPIFFS.h"
uses SPIFFS.h which ultimately limits us to the ESP board manager 2.x line. When using Board Manager for ESP v3.x there are multiple errors that stem from SPIFFS not working.

After looking around, it appears that SPIFFS is generally considered depreciated due to not being maintained, and that LittleFS is considered a near drop-in replacement and actively supported:

esp8266/Arduino#7095
esp8266/Arduino#7529
https://www.reddit.com/r/esp32/comments/y28m78/spiffs_deprecated_for_littlefs_in_the_past_but_no/

Related info on migrating from board v2.x to 3.x
https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html

Compiles correctly with ESP32 board v 2.0.11 or 2.0.17
Example of errors with v3.1.1

C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp: In member function 'void Configuration::saveConfig()':
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp:221:3: error: 'File' was not declared in this scope
  221 |   File file = SPIFFS.open(CONFIG_FILE_NAME, "w", true);
      |   ^~~~
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp:222:7: error: 'file' was not declared in this scope
  222 |   if (file && !file.isDirectory()) {
      |       ^~~~
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp: In member function 'void Configuration::loadConfig()':
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp:246:3: error: 'File' was not declared in this scope
  246 |   File file = SPIFFS.open(CONFIG_FILE_NAME);
      |   ^~~~
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp:247:7: error: 'file' was not declared in this scope
  247 |   if (file && !file.isDirectory()) {
      |       ^~~~
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp:256:5: error: 'SPIFFS' was not declared in this scope
  256 |     SPIFFS.format();
      |     ^~~~~~
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp: In member function 'bool Configuration::begin()':
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgConfigure.cpp:333:8: error: 'SPIFFS' was not declared in this scope
  333 |   if (!SPIFFS.begin(true)) {
      |        ^~~~~~
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgApiClient.cpp: In member function 'bool AgApiClient::postToServer(String)':
C:\Users\WDAGUtilityAccount\Documents\Arduino\libraries\arduino-master\src\AgApiClient.cpp:122:7: error: 'WiFi' was not declared in this scope
  122 |   if (WiFi.isConnected() == false) {
      |       ^~~~

exit status 1

Compilation error: exit status 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions