Hallo zusammen,
ich möchte euch meine neue, Open-Source-Bibliothek EEPROMWearLevel V1.0.0 vorstellen. Sie wurde speziell für die Arduino-Plattform (z.B. Nano, Uno) entwickelt und soll zwei zentrale Probleme beim Speichern von Daten im EEPROM lösen.
Warum diese Bibliothek?
Ideal für alle, die Konfigurationsdaten, Betriebsstundenzähler oder einfache Messprotokolle sicher und einfach im EEPROM speichern wollen.
Ihr kennt das Problem: EEPROMs sind zwar praktisch, aber mit ihrer geringen Speichergröße und der Begrenzung auf 100.000 Schreibzyklen oft nur beschränkt nutzbar. Wenn man diesen Speicher wirklich unbedarft verwenden und ihn als langlebiges Medium ernsthaft in Erwägung ziehen will, muss man sich etwas einfallen lassen, um die Lebenszeit drastisch zu verlängern.
Genau diesen Versuch habe ich gewagt! Ich gebe zu, es war nicht ganz einfach, die Wear-Leveling-Logik mit CRC und dem Ringpuffer stabil zu implementieren.
Lizenz: LGPL-2.1 (Open Source).
Maximale Lebensdauer (Wear-Leveling)
Die EEPROMWearLevel-Bibliothek habe ich entwickelt, um die Lebensdauer des EEPROM eures Arduino-Mikrocontrollers zu maximieren und gleichzeitig die Datenintegrität zu garantieren.
Verlängert die EEPROM-Lebensdauer (Wear-Leveling)
Euer EEPROM hat pro Zelle nur ca. 100.000 Schreibzyklen. Standardmäßig ist dieser Speicher in wenigen Jahren verbraucht, wenn ihr Konfigurationsdaten ständig an die gleiche Stelle schreibt oder auch sehr oft schreibt.
Die Lösung: Die Bibliothek nutzt die gesamte EEPROM-Partition als Ringpuffer. Jeder Schreibvorgang wandert automatisch zum nächsten verfügbaren Sektor.
Vorteil: Die Lebensdauer wird um den Faktor der Sektoranzahl verlängert. Bei einem Nano (1024 Bytes) und 32-Byte-Datensätzen hält euer Speicher ca. 32-mal länger.
Szenario (100 Schreibvorgänge/Tag) Lebensdauer Ohne Bibliothek (Immer dieselbe Zelle) ca. 2,7 Jahre Mit EEPROMWearLevel ca. 87,6 Jahre
Datenintegrität & Protokollierung: Jeder Datensatz wird mit einer CRC-8-Prüfsumme gespeichert, was die Integrität der gelesenen Daten gewährleistet. Die neu hinzugefügte Log-Funktionalität (loadSectorData) ermöglicht das chronologische Auslesen aller historischen Einträge. Das Testen dieser neuen Funktion durch die Community ist willkommen.
Die Bibliothek fügt eurem Code diese Funktionalität hinzu
- Einfaches Speichern von Werten, Strings etc. im EEPROM
- Absicherung der Daten durch CRC-Prüfsumme
- Einfaches Lesen der zuletzt gespeicherten Daten
- Fehlerbehandlung und Zustandsdiagnose
- Log-Lesefunktionalität (NEU)
Download und Mitarbeit (Empfehlung)
GitHub ist der beste Ort für den Download und die Versionskontrolle. Dort findet ihr die v1.0.0 als Release, alle Beispiele und die vollständige Dokumentation:
https://github.com/automatician/EEPROMWearLevel.git
https://github.com/automatician/EEPR...tags/1.0.0.zip
Ich freue mich über jeden, der die Bibliothek testet! Fragen, Feedback und natürlich Pull Requests sind auf GitHub herzlich willkommen.
Viele Grüße!
Mit freundlichem Gruß
Moppi
Lesezeichen