Data Storage

Official libraries

  • SD: Enables reading and writing on SD cards.

Contributed by the community

  • Adafruit FRAM I2C: Driver for Adafruit's I2C-Based EEPROM / FRAM Breakouts
  • Adafruit FRAM SPI: Driver for Adafruit's SPI-Based FRAM Breakouts
  • Adafruit SPIFlash: SPI Flash filesystem support for FAT and CircuitPython FS support from within Arduino
  • Adafruit TinyFlash: Barebones Winbond SPI flash library for Arduino and Trinket
  • arduino-NVM: Direct flash memory access, round robin virtual pages and EEPROM like memory. (Flash, VirtualPage, NVRAM)
  • Array: An array container similar to the C++ std::array
  • ArxContainer: C++ container-like classes (vector, map, etc.) for Arduino which cannot use STL
  • ArxSmartPtr: C++ smart pointer-like classes for Arduino which cannot use standard smart pointers
  • ArxTypeTraits: C++ type_traits for Arduino which cannot use it as default
  • astra_esp8266: Easily access a Cassandra database from an ESP8266.
  • AT24CM01: AT24CM01 EEPROM Library for Arduino Devices.
  • AT24Cxx: Library for Atmel's AT24Cxx Series EEPROMs.
  • BitReader: The BitReader library is an arduino library that allows one to read or write data which is not aligned on 8, 16 or 32 bits variables.
  • Ch376msc: A library for CH376 file manager control chip.
  • CircularBuffer: Arduino circular buffer library
  • ConfigTool: Save config variable and edit them online.
  • cQueue: Queue handling library (written in plain c)
  • DS2431: Arduino library for Maxim DS2431 1-Wire EEPROM
  • DueFlashStorage: DueFlashStorage saves non-volatile data for Arduino Due.
  • E24: E24xxx EEPROM library.
  • EDB: Extended Database Library
  • EdgeML: Data Collection tool for https://github.com/edge-ml.
  • EEPROM-Storage: Generic class to wrap an EEPROM variable on the Particle and Arduino platforms.
  • EEPROM32_Rotate: EEPROM wrapper for ESP32 that handles partition rotation
  • EEPROM_CAT25: Driver for On Semiconductor CAT25 SPI EEPROM chips for AVR, SAM3X (Due), and SAM M0+ (SAMD, SAML, SAMC) microcontrollers
  • EEPROM_Rotate: EEPROM wrapper for ESP8266 that handles sector rotation
  • EEPROMAdapter: This adapter can read and write AT28C64 and AT28C256 EEPROM chips using Arudino Mega. Creating converter PCB for this task recommended
  • EEPROMEx: Extension of the standard Arduino EEPROM library.
  • EEPROMTyped: The EEPROM Typed Library is a lightweight static library for reading and writing standard Arduino data types to the EEPROM.
  • EEvar: Allows to save your variables in EEPROM memory. Works with any POD (bool, int, float, custom structs) and String. Simple. Lightweight.
  • EEWrap: A convenient library allowing one to use the EEPROM just like RAM.
  • Effortless-SPIFFS: A class designed to make reading and storing data on the ESP8266 and ESP32 effortless.
  • ESP Logger: This library aims to provide an easy way to collect data
  • ESP32-PSRamFS: "ESP32 RamDisk for PSRAM and fs::FS"
  • ESP8266 Influxdb: InfluxDB Client for Arduino.
  • ESP_EEPROM: An improved EEPROM library for ESP8266
  • ESPWebDAV: WebDav server compatible with linux, macOS, windows.
  • extEEPROM: Arduino library to support external I2C EEPROMs.
  • EZPROM: A library to help organize EEPROM access.
  • FatFs: FAT file system based on open-source FatFS solution.
  • Feature-Variables: Persistent event driven variables aimed at making complex designs much simpler
  • Flash: A library to wrap accessing and writing to flash
  • FlashStorage: The FlashStorage library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of microcontrollers.
  • FlashStorage_RTL8720: The FlashStorage_RTL8720 library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of Realtek RTL8720DN, RTL8722DM, RTM8722CSM, etc.
  • FlashStorage_SAMD: The FlashStorage library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of SAMD21/SAMD51. It's using the buffered read and write to minimize the access to Flash. It now supports writing and reading the whole object, not just byte-and-byte.
  • FlashStorage_STM32: The FlashStorage_STM32 library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of STM32F/L/H/G/WB/MP1. It's using the buffered read and write to minimize the access to Flash. It now supports writing and reading the whole object, not just byte-and-byte. New STM32 core v2.0.0 is also supported now.
  • FlashStorage_STM32F1: The FlashStorage_STM32F1 library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of STM32F1/F3. It's using the buffered read and write to minimize the access to Flash. It now supports writing and reading the whole object, not just byte-and-byte. New STM32 core v2.0.0 is supported now.
  • FlashStringTable: Easy definition and use of Arduino flash-based (PROGMEM) global string.
  • Fram: FRAM library for Industruino
  • FRAM_I2C: Arduino library for I2C FRAM.
  • FS_Nano33BLE: Wrapper of FS (FATFS or LittleFS) for Arduino MBED nRF52840-based boards, such as Nano_33_BLE boards
  • I2C_24LC1025: Library for 24FC1025 I2C EEPROM
  • I2C_EEPROM: Library for I2C EEPROMS
  • IGB-FlashSst26: Spi Flash Memory Library for Microchip SST26 1,8V
  • IonDB: A powerful key-value store for all data storage needs.
  • KickSort: Arduino library for different sorting algorithms including quicksort, bubble sort, insertion sort, shell sort, and comb sort.
  • KonnektingFlashStorage: The FlashStorage library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of microcontrollers. NOTE: This is a fork of cmaglie's "FlashStorage" with some extra modifications to fit KONNEKTING needs.
  • LittleFS_esp32: LittleFS for esp32 based on esp_littlefs IDF component. Use esp32 core-provided LITTLEFS library instead of this one when available in future core releases.
  • LittleFS_Mbed_RP2040: Wrapper of LittleFS for Arduino MBED RP2040 boards
  • LittleFS_Portenta_H7: Wrapper of LittleFS for Arduino MBED Portenta_H7 boards
  • MCCI FRAM I2C: Driver for MCCI Catena's I2C-Based FRAM.
  • MD_CirQueue: Library for FIFO queue implemented as a Ring Buffer.
  • MicrochipSRAM: Access all Microchip SRAM chips
  • MissionList: An arduino queue library for storing commands to be executed
  • NanoBLEFlashPrefs: Substitute for the missing EEPROM storage on Arduino Nano 33 BLE and BLE Sense.
  • NVSRAM: Arduino library for Microchip 23LCV512 and 23LCV1024 NVSRAM.
  • OSFS: An Overly Simplified FileSystem for storing things, e.g. in the Arduino's EEPROM
  • PF: <h2>Petit FatFS for Arduino avr MCUs. to drive SD cards</h2>
  • PGMWrap: A convenient library allowing structures and variables stored in PROGMEM to be read directly.
  • Queue: Queue handling library.
  • RfidDb: A library that stores 32 bit identifiers and associated names to EEPROM which can be used to as a basis for RFID access control applications.
  • RingBuf: A library for buffering items into a ring (circular/FIFO) buffer
  • RingBufCPP: A library for buffering items into a ring (circular/FIFO) buffer
  • RingBuffer: This library allows to use ring buffer with and without interrupts.
  • RingEEPROM: The library increases the arduino EEPROM Write endurance
  • RogueMP3: A library to communicate with the Rogue Robotics MP3 Playback Modules.<br />
  • RogueSD: A library to communicate with the Rogue Robotics Data Storage Modules.<br />
  • RP2040_SD: This library enables you to use SPI SD cards with RP2040-based boards such as Nano_RP2040_Connect, RASPBERRY_PI_PICO using either RP2040 Arduino-mbed or arduino-pico core.
  • rrdtool: Round Robin Database Tool
  • RTCMemory: Efficiently manage the different levels of data persistence and speed offered by RAM, RTC memory, and flash memory on ESP8266.
  • RTCVars: This library eases the storage of variables in reset-safe RTC memory.
  • SD_card_logger: sending debugging logs to sd cards made easier
  • SdFat: FAT16/FAT32/exFAT file system.
  • SdFat - Adafruit Fork: FAT16/FAT32 file system for SD cards and QSPI Flash.
  • SdTerminal: Basic terminal interface for Arduino SD card logging/file management
  • SE_BasicUnit: Library for writing firmware of modules of expansion module of the AlphaSE system.
  • SE_EEPROM: The library is made to work with EEPROM. All data is saved in 3 copies to implement the possibility of automatic recovery in case of partial damage.
  • Seeed Arduino FS: A friendly library for file operation.
  • serialEEPROM: Arduino Library for I2C EEPROM
  • SerialFlash: Access SPI Serial Flash memory with filesystem-like functions
  • Settings Manager: Settings manager
  • settingsManager: Simple settings management for ESP8266
  • SFFS: Arduino FRAM file system for I2C/SPI FRAM breakout boards
  • Shox96 Progmem Compression: Compress short strings and messages using Shox96 technique and save space on Flash (PROGMEM)
  • SIKTEC_SdExplore: A light-weight companion library to easily scan / search for files
  • SmartCardReader: A Library with Samples for the Parallax Smart Card Reader.
  • Sodaq_dataflash: An Arduino library for the AT45DB dataflash as used on SODAQ boards.
  • SpaceTrek EasyStarterKit: EasyStarterKit by SpaceTrek
  • SparkFun External EEPROM Arduino Library: Library for I2C Communication with external EEPROMs
  • SparkFun Qwiic OpenLog: Library for the SparkFun Qwiic OpenLog
  • SparkFun SPI SerialFlash Arduino Library: A low level library for interfacing to serial flash ICs<br/><br/>
  • SPIExtension: SPI extension/wrapper for Arduino
  • SPIFlash_LowPowerLab: Simple Arduino library for SPI flash memory chips
  • SPIMemory: SPI Memory library for Arduino. (Formerly SPIFlash)
  • Sqlite Micro Logger: Log data into Sqlite database from any MCU having >2kb RAM
  • Sqlite3 for ESP8266: Sqlite3 library for ESP8266 Arduino core (includes Shox96 compression)
  • Sqlite3Esp32: Sqlite3 database library for ESP32 core
  • SRAM: Simple library for serial SRAM IC's
  • SRAM_23LC: Driver for Microchip Technology Inc. 23LC (23LCV, 23A, 23K) SPI SRAM chips for AVR, SAM3X (Due), and SAM M0+ (SAMD, SAML, SAMC) microcontrollers
  • SST25VF: Arduino Library for controlling the SST Nor Serial Flash SST25VF family.
  • SSVQueueStackArray: Queue/Stack storage based on array ring buffer.
  • STM32duino M95640-R: This library includes drivers for ST M95640-R EEPROM.
  • STM32duino MX25R6435F: Quad-SPI NOR Flash memory library.
  • STM32duino STM32SD: Enables reading and writing on SD card using SD card slot connected to the SDIO/SDMMC-hardware of the STM32 MCU. For slots connected to SPI-hardware use the standard Arduino SD library.
  • TinyDatabase_Arduino: A tiny database to manipulate EEPROM easily
  • uCDB: API for querying Constant DataBase file store.
  • Unishox Progmem Decompressor: Decompress short Unicode strings and messages compressed using Unishox technique and save space on Flash (PROGMEM)
  • UselessLib: This library is just for testing purpose of the Arduino Library indexer.
  • Vector: An array container similar to the C++ std::vector
  • virtmem: Virtual memory library to easily extend RAM.
  • WearLeveling: EEPROMWearLevel reduces EEPROM wear by writting a new value to an other EEPROM location.
  • WebConfig: A web based configuration editor.
  • Winbond W25N: Library for use with the Winbond W25N and W25M series SPI Flash ICs
  • ZEeprom: Library for eeprom AT24Cx