# Access to littlefs?

**URL:** <https://community.particle.io/t/access-to-littlefs/48135>\
**Category:** BLE // NFC\
**Tags:** boron, argon, xenon\
**Created:** [March 1, 2019, 2:24am UTC](https://community.particle.io/t/access-to-littlefs/48135 "2019-03-01T02:24:01Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![tve](https://avatars.discourse-cdn.com/v4/letter/t/a587f6/32.png) [@tve](https://community.particle.io/u/tve)\
**Post date:** [March 1, 2019, 2:24am UTC](https://community.particle.io/t/access-to-littlefs/48135/1 "2019-03-01T02:24:01Z")

</div>

Are “system calls” to access the littlefs on the mesh devices forthcoming soonish or is that a ways out. I’m evaluating whether I need to go in and add some appropriate calls myself vs. wait a couple of weeks. (Yes, I know I can use a monolithic build, but no, it’s not a pleasant dev experience, or at least, I would rather go in and add the calls myself vs waiting that long every time.)

---

<div class="post-metadata">

**Author:** ![tve](https://avatars.discourse-cdn.com/v4/letter/t/a587f6/32.png) [@tve](https://community.particle.io/u/tve)\
**Post date:** [March 2, 2019, 3:53am UTC](https://community.particle.io/t/access-to-littlefs/48135/2 "2019-03-02T03:53:27Z")

</div>

Looks like there’s an amazing amount of interest 😜

I started the ball rolling: [https://github.com/particle-iot/device-os/pull/1706](https://github.com/particle-iot/device-os/pull/1706). That PR starts to export littlefs functions to user-level. I will be continuing on this to export all of them and start to make use of them.

There’s an additional piece of work, which I’m not sure I will tackle, which is to add a nice Arduino-style wrapper around this. For example, a clone of [https://github.com/espressif/arduino-esp32/blob/master/libraries/FS/src/FSImpl.h](https://github.com/espressif/arduino-esp32/blob/master/libraries/FS/src/FSImpl.h)

---

<div class="post-metadata">

**Author:** ![ParticleD](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/particled/32/17016_2.png) [@ParticleD](https://community.particle.io/u/ParticleD)\
**Post date:** [March 3, 2019, 12:25am UTC](https://community.particle.io/t/access-to-littlefs/48135/3 "2019-03-03T00:25:29Z")

</div>

I am not in the thick of things (I work remotely) but from what I’ve heard/seen in internal discussions, LittleFS is a medium-term thing – i.e. things like the BLE API are higher priorities. But it’s well known (e.g. with the product management team) that more than a couple folks would like access to (part of) the SPI flash memory.

---

<div class="post-metadata">

**Author:** ![tve](https://avatars.discourse-cdn.com/v4/letter/t/a587f6/32.png) [@tve](https://community.particle.io/u/tve)\
**Post date:** [March 3, 2019, 1:10am UTC](https://community.particle.io/t/access-to-littlefs/48135/4 "2019-03-03T01:10:50Z")

</div>

Thanks for the reply! Is there anything written up about how exposing LittleFS might look like? 'cause maybe I could get started in that direction from the get-go… Or someone to trade some messages about that topic with…

---

<div class="post-metadata">

**Author:** ![ParticleD](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/particled/32/17016_2.png) [@ParticleD](https://community.particle.io/u/ParticleD)\
**Post date:** [March 3, 2019, 6:23pm UTC](https://community.particle.io/t/access-to-littlefs/48135/5 "2019-03-03T18:23:10Z")

</div>

I don’t know how different our implementation will look, but you might have a gander at ARM’s Mbed LittleFS repo: [https://github.com/ARMmbed/littlefs](https://github.com/ARMmbed/littlefs)

---

<div class="post-metadata">

**Author:** ![tve](https://avatars.discourse-cdn.com/v4/letter/t/a587f6/32.png) [@tve](https://community.particle.io/u/tve)\
**Post date:** [March 3, 2019, 10:03pm UTC](https://community.particle.io/t/access-to-littlefs/48135/6 "2019-03-03T22:03:36Z")

</div>

?  
That code is already all in device-os. I’m just exposing it at user-level.

---

<div class="post-metadata">

**Author:** ![ParticleD](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/particled/32/17016_2.png) [@ParticleD](https://community.particle.io/u/ParticleD)\
**Post date:** [March 4, 2019, 8:21pm UTC](https://community.particle.io/t/access-to-littlefs/48135/7 "2019-03-04T20:21:33Z")

</div>

I didn’t know that. I’m not a system firmware expert.

---

<div class="post-metadata">

**Author:** ![lympik](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/32.png) [@lympik](https://community.particle.io/u/lympik)\
**Post date:** [May 13, 2019, 9:39am UTC](https://community.particle.io/t/access-to-littlefs/48135/8 "2019-05-13T09:39:56Z")

</div>

Any update on that?

---

<div class="post-metadata">

**Author:** ![tve](https://avatars.discourse-cdn.com/v4/letter/t/a587f6/32.png) [@tve](https://community.particle.io/u/tve)\
**Post date:** [May 29, 2019, 5:38am UTC](https://community.particle.io/t/access-to-littlefs/48135/9 "2019-05-29T05:38:18Z")

</div>

Update:

- I created a PR 3 months ago: [https://github.com/particle-iot/device-os/pull/1706](https://github.com/particle-iot/device-os/pull/1706)
- there have been exactly zero comments on the PR
- I have updated my fork to the latest develop branch and the changes continue to work fine
- I’m using my code heavily and it’s working great for me
- I don’t see a point updating my PR given that there is no interest and no feedback
- looks like this will be my one and only PR given that no-one at Particle cares to even say “thanks, but sorry, we’re not interested”

---

<div class="post-metadata">

**Author:** ![rickkas7](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rickkas7/32/8681_2.png) [@rickkas7](https://community.particle.io/u/rickkas7)\
**Post date:** [May 29, 2019, 9:06am UTC](https://community.particle.io/t/access-to-littlefs/48135/10 "2019-05-29T09:06:05Z")

</div>

Sorry, that slipped through the cracks. There’s now a more lengthy reply in the PR, but there are two issues that prevent merging it:

- We don’t want to expose LittleFS specifically, because we might want to switch to a different file system in the future. An abstract file system would be better.

- There are data structures allocated from the user firmware wrapper, which causes an incompatibility when user firmware is run on a newer version of device OS. The ABI is intended to allow user firmware compiled for an older version of Device OS to run on a newer version without modification.

---

<div class="post-metadata">

**Author:** ![tve](https://avatars.discourse-cdn.com/v4/letter/t/a587f6/32.png) [@tve](https://community.particle.io/u/tve)\
**Post date:** [June 3, 2019, 4:13am UTC](https://community.particle.io/t/access-to-littlefs/48135/11 "2019-06-03T04:13:31Z")

</div>

Thanks, makes sense. But doesn’t really help in the short-term…
