Skip to content

BLE FS Access #750

@geekbozu

Description

@geekbozu

Something looming on the horizon is to start getting assets and other files on the external memory and off the NRF52s internal memory is something we have wanted to accomplish for a while.

This brings the question of the best way to handle the FS access over BLE.
A few ideas have been talked about so far

Questions:

  • Are there other standards out there?
  • Which one seems like it will be the most easy to have companion applications implement?
  • Which ones might implement breaking changes to existing software?

I have looked into the DFU stuff done as including files as part of updates would be awesome...However doing so is likely to break compatibility with all current implementations of the DFU updater. This makes this not very well desired and FS updates will be much easier to handle through a separate channel. Which brings us to BLE FS in some form.

No matter what we have littlefs as a back end which makes this more of an exercise in how to expose the FS instead of implement one thankfully!

Updates

One of the major concerns here is handling updates. Once assets are not in internal flash anymore we have todo something to ensure they are available to the application. Modifying the DFU process would be ideal here for just that. However as above that is not the most convenient thing to do for anyone...
The current idea in my head is to make a new update package that just has the DFU zip internally, as well as the asset files. then gadgetbridge et al would just be updated to understand that package. Perform the DFU update then transfer the new files via BLE FS not ideal, but at least it would be transparent to the end users.

Lets discuss.

Obviously this is something that will have quite a few moving parts and effect how things are done internally for a while to come on this project. Lets discuss to make sure we pick something that will actually work for our needs now, And later.

Metadata

Metadata

Assignees

Labels

enhancementEnhancement to an existing app/featureneeds more workThis PR needs more workquestion/discussionThis is just a question, for ex. not an issue or a feature request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions