FAT Festplatte mit Arduino

Hallo Leute,

SD-Karten kann man ja mit Arduino beschreiben und lesen, aber ist es auch möglich Festplatten mit FAT16(32) Formatierung zu lesen und zu beschreiben über USB ?

Dabei würde ein Zugriff auf das Root-Verzeichnis reichen und auch die 8+3 Namenbeschränkung wäre nicht störend.
Eine komplette Dateisystem-Index-Strucktur muss nicht verwaltet werden.

Für so ein Projekt brauchst Du einen Arduino, der auch als USB Master arbeiten kann (Leonardo?...).Und möglichst mit ausreichend Speicher, um die komplette FAT im RAM zu halten.

Die FAT Dateisysteme sind seit den langen Dateinamen tricky geworden, mach Dich erst mal schlau, wie die Verzeichnisse abgespeichert werden.

komplette FAT im RAM

Könnte das nicht irgend wie per Streaming umgangen werden ? (Buffer?)

Eigentlich würde mir so eine Lösung reichen:

Ich schreibe an einen festen Speicherbereich auf die Festplatte (Größe wird Zugewiesen)
Ich lese von dieser Speicheradresse.
(Dabei darf sich diese aber nicht ändern und auch nicht geschützt sein)

Ist so etwas möglich ?

Dabei ist mir ein Dateisystem eigentlich egal.

Naja. ich werde das mal zu gegebener Zeit mit einem USB-Host-Shield testen.

Aber schön wäre halt wenn der benötigte Speicher für die Verwaltung des Dateisystems und Festplattenzugriffs nicht zu hoch wäre.

Deshalb meine Frage: Ist es auch ohne die Dateisystemverwaltung möglich.
Also ein Zugriff ähnlich wie auf den RAM-Speicher.
Nur das dieser eben nicht flüchtig ist.
Es soll auch keine .txt oder etc. erstellt werden, die von jedem System der Welt gelesen werden kann.
Es soll quasi gar keine Datei erstellt werden, sondern nur an festen Speicherbereichen Daten geschrieben werden. Das Programm kennt dann diese Speicherbereiche und soll von diesen lesen können.

Ist so etwas möglich ?

Wenn ein Zugriff auf eine HDD technisch nicht möglich ist, wäre auch ein USB-Stick möglich.
So ein Stick ist doch ähnlich einer SD-Karte aufgebaut.

BluetoothHamster:
Wenn ein Zugriff auf eine HDD technisch nicht möglich ist, wäre auch ein USB-Stick möglich.
So ein Stick ist doch ähnlich einer SD-Karte aufgebaut.

Und warum nimmst du nicht gleich eine SD-Card ?
Die kannst du doch anschließend zu einem USB-Stick machen.

Könnte man diesen USB/SD-Kartenstick dann über USB beschreiben und lesen ?

Also kein normaler SPI-BUS.

BluetoothHamster:
Könnte man diesen USB/SD-Kartenstick dann über USB beschreiben und lesen ?

Also kein normaler SPI-BUS.

Vom PC ja, im Arduino nimmst du nur die SD-Card.

Naja,
ich werde mal zu gegebener Zeit ein bisschen probieren.

Ansonsten ist mit Arduino ja verdammt viel möglich.

Hi

Wie viel willst Du denn speichern?
Bin in den Anfängen um mit FRAM 'zu spielen'. Habe selber 256kbit (32768x8bit), womit sich 32kB 'am Stück' oder 'egal wohin' speichern lassen (sollen, da von mir ungetestet, bin aber bester Hoffnung!)
Beliebig oft beschreib/lesbar, Datenerhalt auch spannungslos, sau schnell, keine Wartezyklen nötig.
Sowohl Parallel, SPI und I2C sind verfügbar - zumindest Parallel und I2C auf eBay gefunden (und I2C erstanden).

Tommy hatte im Nachbarforum auch einen Sketch dazu erstellt, Den ich mir, die Tage, zu Gemüte führen werde.

MfG

Wenn Du einen Rasberry zwischen Arduino und Festplatte schaltet dann ist es möglich.

Ansonsten ist das vergebliche Liebesmüh.
Auch verstehe ich nicht zu was Du soviel Speicher brauchst.
Der Arduino kann gar nicht soviel Daten produzieren, daß Du irgendwann einen Festplatte (sagen wir größer 10G) vollbekommst.

Andererseits wenn Du soviele Daten lesen willst damit diese auf einer Festplatte landen müssen, weil eine 64G SDHC Karte zu klein st dann ist Arduino di falsche Wahl.

Grüße Uwe

Ne ne und wieder ne....

Su viel Speicher brausch dan ah wieder net.

Das mit dem direkten schreiben und lesen würde mir genügen und ich würde gerne auf den ganzen unnötigen Speicheroverhead die so eine Bibliothek mit bringt verzichten.

So ein Arduino hat ja nicht ganz so viel Speicher.

Das ist Grund 1 und Grund 2:

Ich möchte die flexible Möglichkeit per USB (USB-Anschluß kann man auch leichter aus einem Gehäuse herausführen/sieht schöner aus.)

Dieser USB-Anschluss könnte dann auch anderweitig mit seinen 2 Daten-Adern am Arduino angeschlossen sein.)

Grund 3: Naja die Gesamtgröße der zu speichernden Daten übersteigt den EEPROM und ist fortlaufend.
(insgesamt könnten schon einige Megabyte benötigt werden.)

Hi

Megabyte ist aber schon eine Hausnummer - klingt nach Log-File für Umweltdaten.

MfG

Nicht ganz, es ist komplizierter...

Es handelt sich um binär-codierte-Bilder die auf einen Bildschirm dargestellt werden sollen.

Da würde ich den Arduino als falsche Hardwareentscheidung einstufen.

Gruß Tommy

Die Bilder werden nicht vom Arduino decodiert.
Dieser verwaltet die Bilder und fügt weitere Informationen hinzu.
Über Funk dient er dann als Vermittler.
Ein Smartphone oder PC kann die Base64-Bilder dann über eine Software decodieren und anzeigen.
(Die max. Größe eines Bildes ist nicht über 100 kB)

Tommy56:
Da würde ich den Arduino als falsche Hardwareentscheidung einstufen.

Gruß Tommy

Diese Meinung teile ich ganz.
Nimm einen Raspberry. Der hat schon alles einen USB-Stick oder SD Karte zu verwenden und das was Du willst zu machen.

Bei einem Arduino mit Zusatzhardware für SD oder USB-Host bist Du schnell teuerer als mit dem Raspberry.

Grüße Uwe