Skip to content

Backward compatibility #2832

Closed
Closed
@mytrain

Description

@mytrain

Hardware:

Board: TTGO with OLED
Core Installation version: git dowloaded yesterday
IDE name: Arduino IDE
Flash Frequency: 80MHz
PSRAM enabled: No
Upload Speed: 115200
Computer OS: Windows

Description:

SPPIFS, EEPROM and NVS are not compatible with older version (my previous version of my IDE was a more than one year old version with SDK v3.0).

Let me provide some contextual information. I developing a network of connected object connecting to a master node. When connecting ESP32 is automatically updated with a version of the firmware stored by the master node. This design avoids interface issues when the connected object goes from one master node to another one that is not configured with the same version.
As a consequence a connected object can be updated with a newer or older version depending on the master node it is connecting to. Every thing was fine as far as I did not update my IDE (hardware/espressif/esp32/...).

With the newest version I found the following compatibility issues:

  1. EEPROM : located on nvs partition instead of specific partition. This makes retreival of old data impossible. However I can handle this point by keeping an old style default.csv and the old stype EEPROM.h/cpp code.

  2. NVS : Someting changed. When updating to a newer version it seems that forward compatibility is well managed as my ESP32 restarts correctly. However in case of updating with an older version (3.0) I've got the following Exception

assertion "false && "item should have been present in cache"" failed: file "/Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/nvs_flash/src/nvs_item_hash_list.cpp", line 85, function: void nvs::HashList::erase(size_t)
abort() was called at PC 0x400f0323 on core 0

  1. SPIFFS : Introduction of METADATA broke the SPIFFS structure. I need to format in both cases (update with newer or older version). I can handle it by detection of a failure to read files but it requires extra time for downloading all SPIFFS files from the master node.
    Is there any chance that SDKConfig option can remain unchanged in the future or that Arduino IDE introduce a way for recompliling SDK when changing option out of the box and without installing by myself the espressif IDF.

OK, this is not an conventional issue, and I'm not expecting a strait answer, but I wanted to open the debat on keeping this wonderfull piece of design (EPS32 on Arduino IDE) compatible with the past and the future.

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: StaleIssue is stale stage (outdated/stuck)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions