Summary of New Arduino storage libraries introduced to simplify data management and storage
Arduino has released two new storage libraries: Arduino_POSIXStorage and Arduino_UnifiedStorage. POSIXStorage exposes POSIX-like file functions for SD and USB (FAT32 or LittleFS) with hotplug support; UnifiedStorage offers a unified, Arduino-style API for internal, SD, and USB storage with file/folder operations, cross-medium transfers, partition support, and advanced navigation. Both include practical examples, support Portenta/Opta/Nicla boards, and are available via the Arduino Library Manager or GitHub with API docs in each repo’s docs folder.
Parts used in theArduino_POSIXStorage and Arduino_UnifiedStorage:
- Arduino POSIXStorage library (Arduino_POSIXStorage)
- Arduino UnifiedStorage library (Arduino_UnifiedStorage)
- Arduino Portenta H7
- Arduino Portenta C33
- Arduino Opta
- Arduino Portenta Machine Control
- SD card storage (FAT32 or LittleFS)
- USB mass storage devices
- Internal QSPI storage (with partition support)
- Arduino IDE (Library Manager)
The development team at Arduino has this week introduced two new and exciting Arduino storage libraries in the form of Arduino_POSIXStorage and Arduino_UnifiedStorage. These additions are a big deal for anyone working on Arduino projects because they make handling data and storing information a lot easier. In simple terms, these libraries are tools that help developers manage and organize data in their projects without getting bogged down in complex details. Let’s dive into what these new tools bring to the table.

Arduino_POSIXStorage
“The Arduino_POSIXStorage Library complements the POSIX storage functions already included in the Renesas core and the Arduino_USBHostMbed5 library, and makes them available to sketches.”
Have you ever wished for a simpler way to handle data and files in your Arduino projects? Your wish has been granted with Arduino_POSIXStorage. This library is a boon, especially for those familiar with the POSIX standard, a cornerstone of file system functions in many operating systems like Linux and macOS. Even if you’re new to POSIX, Arduino_POSIXStorage is designed to be intuitive and user-friendly.
Key Features of Arduino_POSIXStorage:
- Ease of Storage Access: Managing SD cards and USB storage is now straightforward, eliminating the need to grapple with complex storage operations.
- Flexible File System Choices: Choose between FAT32 or LittleFS, tailoring the file system to your project’s needs.
- Hotplug Support: Enjoy the convenience of detecting and managing USB mass storage devices seamlessly.
Arduino_UnifiedStorage
“The Arduino_UnifiedStorage library provides a unified interface to access different types of storage, including internal storage, SD cards, and USB mass storage devices. It simplifies the handling of files and directories across multiple storage mediums on Portenta, Opta, and some Nicla boards.”
Building on the foundation of Arduino_POSIXStorage, Arduino_UnifiedStorage further demystifies data and file management. This library is perfect for those seeking an approachable API in the familiar Arduino style. Other articles we have written that you may find of interest on the subject of Arduino :
- Arduino UNO R4 Minima vs UNO R4 WiFi boards
- Low-cost thermal camera built using Arduino
- Arduino IDE Nightly Builds Are Now Hourly
- DIY Arduino Wind Speed Meter Anemometer Project
- Arduino Day 2023 confirmed for March 25th
Noteworthy Features of Arduino_UnifiedStorage:
- Unified Storage Interface: This feature provides streamlined access to internal storage, SD cards, and USB storage through a user-friendly interface.
- Effortless File Handling: Navigate files easily and check available data, simplifying file management.
- Robust File and Folder Actions: Confidently rename, delete, copy, and paste files and folders.
- Smooth Cross-Medium Data Transfer: Transfer data between different storage types with control over overwriting.
- Advanced File Navigation: Navigate through folder structures with ease.
- Partition Support: Work with multiple partitions on internal QSPI storage, with the option to re-partition according to your needs.
How These Libraries Simplify Projects
Let’s delve into some practical applications of these libraries:
- Automated Data Backup for Remote Monitoring Systems: For projects like agricultural monitoring or weather stations, these libraries can automate data backup routines, safeguarding data against loss due to power outages or equipment failures.
- Rapid Firmware Updates for IoT Devices: Update IoT device firmware efficiently, even in situations where Over-the-Air updates are not feasible. This ensures devices are always up-to-date with the latest software, enhancing security and functionality.
- Data Collection and Machine Learning Model Training: Collect and manage sensor data in smart environments to train machine learning models. This facilitates the development of predictive maintenance algorithms, anomaly detection systems, or smart automation routines.
Both libraries come equipped with practical examples, catering to real-life scenarios like data logging and storage backup. They have been thoroughly tested across various devices, ensuring reliability and performance.
Compatibility and Getting Started
The libraries currently support Arduino Portenta H7, Arduino Portenta C33, Arduino Opta, and Arduino Portenta Machine Control, with plans to extend support to more boards.
To get started, you can download these libraries through the Arduino IDE’s library manager or directly from their respective GitHub repositories for Arduino_POSIXStorage and Arduino_UnifiedStorage . Remember to check out the API documentation in the “docs” folder of each repository for more detailed guidance.
Source: New Arduino storage libraries introduced to simplify data management and storage
- What does Arduino_POSIXStorage provide?
It complements POSIX storage functions and makes them available to sketches for managing SD cards and USB storage with FAT32 or LittleFS and hotplug support. - What does Arduino_UnifiedStorage provide?
It offers a unified interface to access internal storage, SD cards, and USB mass storage, simplifying file and directory handling on supported boards. - Which file systems can I use with Arduino_POSIXStorage?
FAT32 or LittleFS. - Does Arduino_UnifiedStorage support transferring data between different storage types?
Yes, it supports cross-medium data transfer with control over overwriting. - Which Arduino boards are currently supported?
Arduino Portenta H7, Arduino Portenta C33, Arduino Opta, and Arduino Portenta Machine Control. - Are there examples included with the libraries?
Yes, both libraries include practical examples for scenarios like data logging and storage backup. - Where can I get the libraries?
You can download them via the Arduino IDE Library Manager or from their GitHub repositories. - Is partitioning supported on internal storage?
Yes, Arduino_UnifiedStorage supports partitions on internal QSPI storage and can re-partition as needed. - Do the libraries support hotplugging USB mass storage devices?
Arduino_POSIXStorage provides hotplug support for USB mass storage devices. - Where can I find API documentation?
API documentation is available in the docs folder of each repository on GitHub.
