You are viewing a static version of the site. Enable JavaScript to benefit from the
full functionality of this site and enable such things as forum posting.
trouble adding libraries
solarJack:
I simply need to add LittleFS.h to my libraries.. downloaded the github repository that included a LittleFs.java..
put that in the Library folder..
doesnt recognize it there..
the plugins thing --no help--
??????
jack
matt:
Which version of UECIDE are you using, and which "libraries" folder did you put it in? Also, what is the directory tree of the library like?
ullix:
Congrats to the new forum!
I was looking for LittleFS for quite some time and finally managed successful first steps on Arduino and even uecide!
I dont know whether all is relevant, but these were my steps: I upgraded Arduino from 1.8.12 to 1.8.13. Then upgraded all libs that were upgradable. Then I installed 'LittleFS_esp32' via the Arduino Lib manager.
On Arduino I ran the LittleFS examples on a ESP32-Pico -- it worked immediately.
Then I ran the very same scripts on uecide -- it failed!
Actually, I (think I) understand the failure, but not why it worked on Arduino. :-/
Currently I believe that LittleFS needs a SPIFFS partition, but I only had a FFat one on the ESP. Still, it worked on Arduino. Strange. And I followed up and verified via esptool that the partition had NOT been changed to a SPIFFS one!
On Uecide it failed to mount LittleFS (because it was still only a FFat partition). But after I added a partition.csv file with a SPIFFS definition for one LittleFS example file, or selected in the uecide options the SPIFFS partition scheme for the other one, it works on uecide too!
It remains strange, though.
matt:
ESP32 support on UECIDE is still somewhat iffy . I'm using arduino-cli
for compiling ESP32 projects these days.
matt:
Are you using the same LittleFS library between the two installations?
matt:
Looking at the source code the littlefs library (if it's the same you you have - there seems to be two - LITTLEFS
and esp32_littleflash
) looks specifically for a partition called spiffs
to mount.
ullix:
As I said, only a single install via the Arduino Lib Manager: see attached pic clip, and the full lib copied from Arduino also attached. The only LittlleFS* file on my system.
Did it only a few hours ago and when it failed on uecide looked for info on your side and saw this post, so, do not have much experience.
ullix:
My uecide is still 0.11.8 and plugin manager has no updates to offer.
matt:
Yeah, that's the one I was looking at. It has:
static constexpr const char LFS_NAME[] = "spiffs";
so can only ever look for an SPIFFS partition.
ullix:
I agree. Don't know what happened in my first tests supposedly showing to also work with FFat.
The FS thingy has long bothered me.
SPIFFS is simply "A Flash memory catastrophe" (https://forum.arduino.cc/index.php?topic=648987 in German), FFat did work, but seemed to be picky on power-loss situations. I was hoping for LittleFS for its claimed "Power-loss resilience". Now I can at least report that it performs as good as FFat and better with even shorter max writing times, see attached graph.
I'll find out how LittleFS behaves in a real project.
ullix:
For completeness: The claimed “Power-loss resilience” is something I still needed to test. So I ramped up my saving rate to 10 times per sec and then bugged the CPU by pulling the USB-power plug or by hitting the reset button. I tried hard, but no filesystem corruption!
LittleFS is here to stay. Highly recommended!
matt:
Nice. I guess I should look into command line tools for manipulating LittleFS images.
matt:
Ugh. That's nasty. Maybe it's time to port btrfs or ext4 to Arduino ;)
ullix:
Yeah. You do it with Java, I'll try Python. But if too difficult, we'll ask Bill; he'll do it in Basic...
matt:
No, he won't. He'll wait until one of us does it, then he'll steal it off us.
ullix:
;-)
One comment: the ability to add a file 'partitions.csv' to the source files was very helpful juggling the file systems, as I just did. Please, make sure to keep this feature!
matt:
That is a feature of the core making use of generic systems in UECIDE. It will stay regardless unless I actively remove it from the core, which I'm not likely to.