Introducing Arduino’s new storage libraries: Streamline data management for your projects
At Arduino, we’re always on a mission to make development easier and more accessible. That’s why we’re excited to introduce two new libraries, Arduino_POSIXStorage and Arduino_UnifiedStorage, designed to simplify how you handle data and storage in your Arduino projects. These libraries empower you to do that faster, and with less complexity.
Simplified data management with Arduino_POSIXStorage
Imagine having an easy way to manage data and files without the headache of low-level operations. Arduino_POSIXStorage is here to simplify that for you. Especially if you’re familiar with the POSIX standard for file operations you will feel right at home. If POSIX doesn’t ring a bell, it’s the standard used for file system functions in Linux, macOS, FreeBSD, or similar operating systems.
What can Arduino_POSIXStorage do for you?
- Simplified storage access: No need to wrestle with complex storage operations. Arduino_POSIXStorage provides a straightforward way to manage SD cards, and USB storage.
- Your choice of file systems: Whether you prefer FAT32 or LittleFS, you have the freedom to choose the file system that suits your project best.
- Hotplug support: Detect and manage USB mass storage devices as you plug them in and out for added convenience.
User-friendly data management with Arduino_UnifiedStorage
Managing data and files shouldn’t be complicated. Arduino_UnifiedStorage takes the complexity out of the equation. Being based on Arduino_POSIXStorage, it offers the same functionality and adds some additional features. For those not familiar with the POSIX set of file functions, this library offers a user-friendly API in the usual Arduino style.
Which additional features does Arduino_UnifiedStorage offer?
- Unified storage interface: Gain streamlined access to internal storage, SD cards, and USB storage with a user-friendly interface.
- Effortless file handling: Easily move within files and check available data, making file navigation a breeze.
- Robust file and folder actions: Rename, delete, copy, and paste files and folders with confidence.
- Smooth cross-medium data transfer: Move data between different storage types while controlling how overwriting works.
- Advanced file navigation: Navigate through folder structures with ease for straightforward file management.
- Partition support: Work with multiple partitions on internal QSPI storage for expanded storage options. Easily re-partition the storage according to your needs.
Real-world use cases: Simplify your projects
Let’s explore how these libraries can simplify real-world scenarios:
Use case 1: Automated data backup for remote monitoring systems
Imagine you’re building a remote monitoring system for an agricultural field or a remote weather station. These systems collect valuable data over time, but they also face the risk of data loss due to unforeseen circumstances like power outages or equipment failures.
With the Arduino_UnifiedStorage library, you can easily set up automated data backup routines. As your system collects data, it can periodically back up that data to an SD card or USB storage device using the library’s intuitive file management features. In the event of an issue, your valuable data remains safe and accessible for analysis.
Use case 2: Rapid firmware updates for IoT devices
If you’re working on an Internet of Things (IoT) project, you may need to install new firmware before deploying devices in the field. Or you may find yourself in a situation that does not allow for Over-the-Air updates on the deployed devices. However, this is crucial for fixing bugs, adding new features, or enhancing security.
With the Arduino_POSIXStorage library, you can streamline the process of firmware updates. Store the updated firmware on an SD card or USB drive, and your IoT device can detect and apply the update automatically. This simplifies the update process and reduces the risk of errors, ensuring your devices always run the latest software.
Use case 3: Data collection and machine learning motel training
Imagine you’re working on a project that involves collecting sensor data from various sensors in a smart environment — maybe it’s a smart home, an industrial automation system, or an environmental monitoring setup. Your goal is to use this data to train a machine learning model for predictive analysis or automation.
The Arduino_UnifiedStorage library can simplify the process of collecting, storing, and managing this sensor data. Use it to efficiently log sensor data to an SD card or USB storage device. With a rich dataset at your disposal, you can now use the collected sensor data to train machine learning models. Whether you’re developing predictive maintenance algorithms, anomaly detection systems, or smart automation routines, having easy access to high-quality data is essential.
Examples and testing: A hassle-free experience
Both libraries come with practical examples that help you dive right in, covering real-life scenarios such as data logging and storage backup. We’ve also rigorously tested these libraries to ensure they work seamlessly on various devices, giving you confidence in their performance and robustness.
Compatibility
The currently supported products are as follows:
- Arduino Portenta H7
- Arduino Portenta C33
- Arduino Opta
- Arduino Portenta Machine Control
In the future, we plan to expand support for additional Arduino boards.
Get started today
Ready to simplify data management in your Arduino projects? Download the Arduino_POSIXStorage and Arduino_UnifiedStorage libraries, explore the documentation, and dive into the examples. Whether you’re a beginner or an experienced developer, these libraries are designed to streamline your workflow and help you unlock new possibilities.
Installation
You can conveniently download the libraries in the Arduino IDE using its library manager or download them directly from the following URLs:
- https://github.com/arduino-libraries/Arduino_POSIXStorage
- https://github.com/arduino-libraries/Arduino_UnifiedStorage
Tip: You can find the API documentation of these libraries in the “docs” folder of the corresponding repository.
Join the conversation: Have questions or want to share your experiences with these libraries? Join the Arduino community on our forums and connect with fellow developers.
We can’t wait to see how these libraries empower your projects and help you take your Arduino development to the next level. Happy coding!