What if the SD card or LittleFS partition of your ESP32 looked like a folder on your other devices, without Wi-Fi, a web server or a USB cable?

TinyBLEFS joins a family of small, header-only libraries for moving data on and off Arduino boards: TinyNBD exports their storage as a linux network block device, TinyFTP reads and writes remote files over FTP (client and server) and TinySMB shares them with Windows, macOS and Linux as an SMB file share. Now files get a Bluetooth route too.

TinyBLEFS makes that possible: a header-only C++ library. A board shares its file system over BLE, and any other board (or your Linux PC) mounts it and uses the familiar Arduino File API.

What you get

  • Several servers, one namespace. Each server announces its name and shows up under /<name>.
  • Read and write. Open, list, create, delete, rename, copy between servers.
  • Bring your own BLE library. Adapters for NimBLE, ArduinoBLE, Pico W and SimpleBLE; a tiny transport interface for the rest.
  • Bring your own file system. LittleFS, SPIFFS, FFat, SD, SD_MMC, TinyFATFS, or std::filesystem on Linux.
  • More than one client at a time, with file locking so readers and writers don’t collide.
  • Linux tools: tinyblefs to browse and copy files from the shell, tinyblefs-server to share a PC directory.

How fast?

Between two ESP32 boards we measured 50–55 KB/s. Through a PC with an old Bluetooth 4.0 adapter it is about 9 KB/s, which is a limit of that controller, not of the library.

Status

This is a proof of concept: the protocol and the API may still change, and it has only had first tests on real hardware (ESP32, ESP32-S3, Pico W, UNO R4 WiFi). Feedback and bug reports are very welcome.

Further Info: https://github.com/pschatzmann/TinyBLEFS

Categories: Arduino

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *