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::filesystemon Linux. - More than one client at a time, with file locking so readers and writers don’t collide.
- Linux tools:
tinyblefsto browse and copy files from the shell,tinyblefs-serverto 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
0 Comments