You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
6
11
12
+
7
13
8
14
## Examples
9
-
*[**examples/SimpleStorageWriteRead**](https://github.com/arduino-libraries/Arduino_UnifiedStorage/blob/main/examples/SimpleStorageWriteRead/SimpleStorageWriteRead.ino) - Write/read simple data from &sd, USB and internal storage
15
+
16
+
*[**examples/SimpleStorageWriteRead**](https://github.com/arduino-libraries/Arduino_UnifiedStorage/blob/main/examples/SimpleStorageWriteRead/SimpleStorageWriteRead.ino) - Write/read simple data from SD, USB and internal storage
17
+
10
18
*[**examples/AdvancedUSBInternalOperations**](https://github.com/arduino-libraries/Arduino_UnifiedStorage/blob/main/examples/AdvancedUSBInternalOperations/AdvancedUSBInternalOperations.ino) - Navigate file structure and demonstrate file operations between USB and internal storage
19
+
11
20
*[**examples/BackupInternalPartitions**](https://github.com/arduino-libraries/Arduino_UnifiedStorage/blob/main/examples/BackupInternalPartitions/BackupInternalPartitions.ino) - Back up all partitions on the internal storage to a USB Mass Storage device.
12
21
22
+
*[**examples/Logger**](https://github.com/arduino-libraries/Arduino_UnifiedStorage/blob/main/examples/Logger/Logger.ino) - This example demonstates how you can log sensor data into its internal storage and detect the insertion of a USB drive. When a USB drive is connected, it selectively transfers only the new data to the USB mass storage device. Even if you remove the USB drive, the device continues to log data in its internal storage. This capability is particularly valuable for accumulating training data required for embedded machine learning applications.
23
+
24
+
*[**examples/InternalStoragePartitioning**](https://github.com/arduino-libraries/Arduino_UnifiedStorage/blob/main/examples/InternalStoragePartitioning/InternalStoragePartitioning.ino) - Demonstrates how you can use the Arduino_UnifiedStorage library to create and read partitions on the Internal QSPI Storage.
25
+
13
26
## 👀 Instructions
14
-
1. Download and install this library
15
-
2. Check compatibility with your platform
16
-
17
27
28
+
1. Download and install this library
29
+
2. Check compatibility with your platform
30
+
3. Check out the examples or read read the documentation [here](./docs).
18
31
19
32
## ✨ Features
33
+
20
34
* Access files and directories on internal storage, SD cards, and USB mass storage devices.
21
35
* Read and write data to files.
22
36
* Create, remove, and rename files and directories.
@@ -25,19 +39,38 @@ The Arduino_UnifiedStorage library provides a unified interface to access differ
25
39
* Manipulate files and folders from one storage medium to another
26
40
* Format partitions and drives (FAT and LittleFS)
27
41
* Create and modify partitions on the internal storage
42
+
* Register callbacks whenever a USB Mass Storage device has been inserted or removed
43
+
* Get verbose output of every action the library performs for seamless debugging
44
+
45
+
28
46
29
47
## Compatibility
48
+
30
49
This library has been tested with the following STM32 and Renesas based Arduino boards. The availability of storage mediums depends on the hardware interfaces:
31
-
* Portenta Machine Control: USB and Internal QSPI Flash
32
-
* Portenta H7 + Portenta Breakout: USB, &sd, and QSPI
33
-
* Portenta H7 + Vision Shield: SD and QSPI
34
-
* Portenta C33 + Portenta Breakout: USB, &sd, and QSPI
35
-
* Portenta C33 + Vision Shield: SD and QSPI
36
-
* Opta: Internal QSPI Flash and USB
37
50
51
+
***Portenta Machine Control**: USB and Internal QSPI Flash
52
+
***Portenta H7 + Portenta Breakout**: USB, &sd, and QSPI
53
+
***Portenta H7 + Vision Shield**: SD and QSPI
54
+
***Portenta C33 + Portenta Breakout**: USB, &sd, and QSPI
55
+
***Portenta C33 + Vision Shield**: SD and QSPI
56
+
***Opta**: Internal QSPI Flash and USB
57
+
58
+
59
+
60
+
The library allows you to connect a USB drives in a couple of different ways:
38
61
39
-
Note: Due to an unforeseen compatibility issue on the Portenta Breakout Board, inserting a USB drive on the USB-A port of the breakout board may occasionally cause a reboot on Portenta C33 boards. You can work around this issue by connecting your USB Mass Storage device through a USB hub. This limitation only affects Portenta C33 boards.
62
+
***Use the USB-C port on the board**: however you have to make sure you are not using the Serial functionality on the same port to avoid conflicts
63
+
***Connect to the USB-A port** on the breakout board
64
+
***Use a USB Hub**, however, we cannot guarantee compatibility with every USB Hub on the market especially the USB-C hubs with advanced features like Ethernet or HDMI.
65
+
66
+
Due to the extremely large selection of USB Mass Storage devices on the market, we cannot guarantee compatibility with your USB thumb drive. However, we had great results with drives from reputable brands such as Kingston, SanDisk, Samsung, etc.
67
+
68
+
**Note:** Due to an unforeseen compatibility issue on the Portenta Breakout Board, inserting a USB drive on the USB-A port of the breakout board may occasionally cause a reboot on Portenta C33 boards. You can work around this issue by connecting your USB Mass Storage device through a USB hub. Please note that the USB Callback functionality on the Portenta C33 boards might also be affected by this issue.
69
+
70
+
This limitation only affects Portenta C33 boards.
40
71
41
72
## 📖 Documentation
42
73
43
-
For more information about this library please read the documentation [here](./docs).
74
+
75
+
76
+
For more information about this library please read the documentation [here](./docs).
0 commit comments