SD-Karten Test (Fernziel: Data-Logger mit Übergabe an Datenbank)

Hallo interessierte SD-Karten-Gemeinde,

wie im Thread Sensordaten in TXT.Datei auf SD Karte speichern - Deutsch - Arduino Forum angekündigt, werde ich hier in einem neuen Thread, je nach Fortschritt oder Rückschlag von meinen Tests mit SD-Karten und -Modulen berichten.

Aufsetzpunkt aus o.a. Thread (05.01.2017):

Bin gerade auch dabei, mich mit dem Thema SD Speicher anzufreunden.
Meine Tests und Recherchen haben bislang ein diffuses Bild zu diesem Thema ergeben; die Arduino-Entwickler sammeln momentan viele Negativ-Feedbacks und versuchen, das Problem asap zu lösen.

Meine Erkenntnisse bisher:
Die Ergebnisse, ob man mit SDCards Erfolg hat oder nicht, sind abhängig von:

  1. IDE version (angeblich Probleme ab Version "1.6.8")
  2. SD Bibliotheks-Version (aktueller Vorschlag der Arduino-Entwickler: downgrade auf SD library 1.09, wenn man schon 1.10 drauf hat)
  3. Betriebssystem bzw. Formatier-Programm: Es wird davon abgeraten, eine SD-Karte mit Windows oder Mac und deren Bordmitteln oder Zusatzsoftware zu formatieren; vielmehr soll "SDFormatter" genommen werden (SDFormatter gibt es in Version 4.0 von der SD-Association, d.h. die Organisation, die die Standards von SD-Karten herausgibt).
  4. SD-Karten selbst, je nach Hersteller und verwendetem Standard (SD/SDHC/SDXC)

Testkonstellationen:

  • Test-Sketch: CardInfo (aus IDE-Beispielen) bzw. SdInfo (aus SdFat library)
  • angepasst bzgl. CS-Pin (Nano: 4; UNO mit Ethernet-Shield: 10)
  • pinMode(10, OUTPUT); digitalWrite (10, HIGH);
  • unterschiedliche Karten SD, SDHC 1GB, 4GB, 8GB von unterschiedlichen Herstellern
  • UNO mit Ethernet-Shield und integriertem SD-Karten-Modul
  • Nano mit SD-Card Board (Adafruit-Clone mit logic level shifter)

Meine Ergebnisse bislang
a) Unter IDE 1.8 / SD library 1.10 und 1.09 (jeweils für FatSD und SD getestet) wurden alle normal, d.h. mit meinem Mac oder Windows formatierten Karten NICHT initialisiert
b) Gleiches Ergebnis für mit SDFormatter formatierten Karten (kein Quickformat benutzt)
c) Gleiche Negativ-Erlebnisse für UNO/Ethernet-Shield bzw. Nano mit externem SDCard-Modul

Per Zufall habe ich dann noch einmal eine Karte mit dem SDFormatter neu formatiert und diesmal die Option "Interoperability" ausgewählt.
Resultat: BINGO !!!

Habe dann alle anderen SDKarten ebenso mit dieser Option formatiert und getestet (bislang nur auf dem Ethernet-Shield und mit SDInfo): Alles funktioniert!

Werde die Tests jetzt erweitern und berichten, wenn ich neue Erkenntnisse habe.

Fortsetzung am 06.01.2017:

Heute kam eine neue Test-Karte an: Transcend, 2GB (SD)
Testparameter: IDE 1.8.0; SD library v1.09; SdFat library Version vom 15.08.2016 (link)

-> Folgende Tests mit den Beispiel-Sketches durchgeführt, die mit der SdFat Bibliothek kommen:
0. Karte mit SDFormatter (Mac version 4.0) formatiert; Option: Interoperability ON (bei Windows: (vermutlich) "Format Size Adjustment ON"); Hardware: Nano Clone mit SD-Card-Modul (Clone mit logic level shifter)

  1. SdInfo: ok, d.h. alle SD-Karten-Infos detailliert angezeigt (siehe nachfolgendes Bild1)
  2. SdFormatter (Beispiel-Sketch! aus der Bibliothek): ok (einzelne Werte haben sich verändert ggü. Test 1; siehe Bild2)
  3. TimeStamp: ok
  4. directoryFunctions: ok
  5. ReadCSVArray: ok

Sieht also alles gut aus; danach wurde die gleiche Sequenz mit der gleichen Karte auf einem Uno mit Ethernet-Shield und SD-Card Modul onboard getestet; Karte zunächst mit dem SDFormatter-Programm und der o.a. Option "ON" neu formatiert (kein Quick-Format)

Ergebnis: Alle Tests von 1. - 5. sind fehlerfrei durchgelaufen

Jetzt werde ich einen Data-Logger mit BME280 aufbauen und folgende Werte auf die SD-Karte schreiben:

  • Temperatur
  • Luftdruck
  • Rel. Luftfeuchtigkeit
  • Taupunkt

Werde noch einen Zeitstempel generieren und mit fortlfd. Nummer alle 30sec CSV - Logdaten schreiben und diese dann in Calc (LibreOffice) einlesen.

Testbericht folgt.

Ich steure mal ein paar Infos von meinen Tests bei.

IDE: 1.65 SD-Lib: 1.0.5 (lt. library.properties)
Arduino Megs 2560 mit Ethernetshielt incl. Micro-SD-Reader

Karte: Micro SDHC 4 GB

  1. Test: Vorformatiert vom Hersteller FAT32
  2. Test: Vollformatierung unter Win7 FAT32

Beide Tests liefern bei SDinfo die gleichen Daten:

SDInfo.jpg

Es werden also auch Files mit langen Namen und Blanks richtig umgesetzt.
Files vom Mega und von Windows werden gelesen bzw. vom Mega geschrieben.

Gruß Tommy

@Tommy56,

das ist unfair :slight_smile:
Du arbeitest mit IDE 1.6.5. Da gab es noch keine Probleme mit den SD Cards.

Habe heute 1.8.1 installiert; da soll es auch mit "OS-formatierten SD-Cards" wieder klappen, weil man wohl gleichzeitig die SD Bib repariert habe.

Ich komme aber erst in ein paar Tagen wieder dazu, richtig nachvollziehbare und umfangreiche Tests durchzuführen. Mal sehen, ob tatsächlich 1.8.1 das ab ca. 1.6.9 fehlerhafte Handling mit SD-Cards wieder repariert.

SOlange mich nichts zwingt, werde ich wohl auch nicht wechseln und wenn, dann auf eine ZIP-Version, so dass die 1.6.5 erhalten bleibt.

Viel Erfolg. Ich drücke die Daumen, dass die 1.8.1 hält, was sie verspricht.

Gruß Tommy

und wenn, dann auf eine ZIP-Version, so dass die 1.6.5 erhalten bleibt.

Das macht mich neugierig - heißt das, man kann mehrere IDE's "parallel" auf seinem OS fahren?
Bzw. -> wie genau würde dann der Trick aussehen, (ohne VM) eine 2. oder 3. IDE parallel vorzuhalten?

Da ich auf einem Mac arbeite, werde ich das mal mit meinen beiden VM's (Win10 und Linux Mint) ausprobieren bzw. dort dann jeweils andere IDE's vorhalten (z.B. eine 1.6.5).

Ich habe es selbst noch nicht getestet, habe aber in einem Thread von Doc_Arduino gelesen, dass es gehen soll.

Evtl. kann er dazu genaueres sagen.

Gruß Tommy

Das geht völlig problemlos, mach ich bei mir auch.
Die Zips einfach in unterschiedliche Verzeichnisse entpacken und los geht's.

Ich kopiere mit Libs dann immer manuell in die jeweiligen Versionsverzeichnisse. Stört mich nicht wenn die mehrfach rumliege.

Das mit den zips habe ich bislang nicht gewusst. Man lernt in diesem Forum nie aus, toll. :slight_smile:
Werde ich nachher mal ausprobieren.
Frage noch: der Compiler kommt dabei nicht durcheinander, wenn man gleichnamige libs in diversen Unterverzeichnissen (zusammen mit der dann gestarteten IDE) vorhält?

Damit könnte man dann u.a. die unzählig gleichnamigen libs austesten, bis man eine stabile Kombination gefunden hat, und wirft den Schrott dann ratzfatz raus.

Frage noch: der Compiler kommt dabei nicht durcheinander, wenn man gleichnamige libs in diversen Unterverzeichnissen (zusammen mit der dann gestarteten IDE) vorhält?

Bitte lesen: portable
Damit kommen sich die Versionen nicht in die Quere.

@combie:
danke - da ich mit einem Mac unterwegs bin, war das mir bislang nicht aufgefallen.
Werde mal sehen, ob es irgendwo schon mal jemand geschafft hat, eine portable Version für Mac zu erstellen.

Ansonsten kommt die portable dann auf meine Win10 VM.

Hallo zusammen,

ich bin noch recht neu beim Thema arduino und möchte einen Datenlogger für Kraftsensoren an HX711 Modulen bauen. Die Sensoren beziehungsweise die HX711 Module funktionieren auch. Jedoch habe ich Probleme mit dem Modul für die SD-Karten.
Ich habe diesen Adapter

An einem Arduino Uno funktionieren meine Karten mit den entsprechenden Beispielen aus der librarie tadellos.
Schließe ich den Adapter an meinen Arduino Nano Clone an kommt immer die Meldung das die SD- Karte nicht initialisiert werden konnte. Ich habe schon verschiedene Pins (4 und 10) versucht. Muss ich etwas bezüglich des Nano beachten?
Kartenleser, Karte, librarie und IDE schließe ich durch die Funktion am Uno eigentlich aus?!

Vielen Dank im vorraus!

Deeter:
Vielen Dank im vorraus!

Warum kaperst du mit deiner Frage einen alten Thread ?
Da sich dein Problem total anders darstellt, ist es sehr viel besser einen eigenen, neuen Thread aufzumachen.
Da vermischt sich dann. Nichts und der ist auch besser im Web zu finden.

Okay sorry! Mache gleich einen neuen Thread auf.
Habe nur gut gemeint :wink: