Go Down

Topic: Gibt es externen Flash speicher für den Arduino? (Read 1 time) previous topic - next topic

Tommy56

Ich hätte auch gern ein paar Millionen €. Das klappt aber auch nicht.
Du hast Lösungsansätze bekommen und gefunden.
Ansonsten kannst Du Spiffs-Einbindung so oft wünschen, wie Du willst. Das klappt auch nicht.

Nimm die gefundene Lib von Paul Stoffregen mit ihren Einschränkungen (Du musst halt vorher ordentlich planen) oder lass es.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Balisto

Ist mir schon klar das dass hier kein Wunschkonzert ist  :)

Es will mir nicht ganz einleuchten warum ich auf internen Flash der Arduinos & Co. Dateien speichern kann und auf externen nicht.

^^-------/\-------^^

combie

Quote
Damit könnte ich unter Windows zumindest eine Datei darauf speichern und auch einfach wieder lesen. Klatr, theoretisch könnte ich mehrere Dateien hinteinander hängen aber das ist zu umständlich. Aber das ich eine Datei speicher kann, wäre schon mal ein Anfang.
-----

Es will mir nicht ganz einleuchten warum ich auf internen Flash der Arduinos & Co. Dateien speichern kann und auf externen nicht.
Irgendwie unterscheiden sich deine Vorstellungen davon, was eine Datei ist, von meinen.

Tipp:
Damit Daten zu Dateien werden, gehören diese Daten in ein Dateisystem.



Wenn du Dateien speichern willst, dann verwende eine SD Karte.
Diese wird auch das wear leveling intern abhandeln.

Hattest du schon gesagt, warum du das nicht möchtest?
Säge kein Sägemehl.

Balisto

#18
Oct 08, 2019, 07:54 pm Last Edit: Oct 08, 2019, 07:56 pm by Balisto
ok, dann habe ich mich wohl falsch ausgedrückt.

Einerseits wäre es das einfachste, wenn es möglich wäre auf einem spi flash speicher modul(chip) Dateien speichern zu können. So wie es bei dem internen Flash möglich ist (SPIFFS). Also z.B. in der Arduino ide auf "esp8266 sketch data upload" klicken und alles was in einem bestimmten Ordner ist wird hochgeladen.
Das wäre Perfekt! Oder von einer SD Karte lesen und auf dem Chip speichern.

Es wäre aber auch ausreichend, wenn ich die raw daten einer Datei (zb. von einem großen .rar archiv) auf so einem Modul speichern könnte und auch wieder davon lesen und unter Windows als funktionierende Datei (test.rar) speichern könnte.
zb. in einer schleife. ich lese die datei test.rar byte weise und speichere dessen raw daten auf den chip und umgekehrt zum speichern als datei unter windows.
^^-------/\-------^^

noiasca

Es wäre aber auch ausreichend, wenn ich die raw daten einer Datei (zb. von einem großen .rar archiv) auf so einem Modul speichern könnte
Verklebe eine SD-Karte fix in einem SD-Speicherkartenmodul und du hast "ein Modul mit Filesystem".
Die ganzen passenden Libs dazu auch gleich.

Quote
und auch wieder davon lesen und unter Windows als funktionierende Datei (test.rar) speichern könnte.
Dann verklebe die SD-Karte doch nicht im Modul und steck die SD-Karte in deinen PC.

Entweder verrennst du dich aktuell in deinen Wünschen oder du beschreibst nicht gut genug was du willst.
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

Tommy56

zb. in einer schleife. ich lese die datei test.rar byte weise und speichere dessen raw daten auf den chip und umgekehrt zum speichern als datei unter windows.
rar ist ein komprimiertes Format. Das kannst Du auf dem ESP8266 nicht erzeugen. Vor allem ist es für laufende Änderungen nicht geeignet.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

themanfrommoon

#21
Oct 08, 2019, 08:44 pm Last Edit: Oct 08, 2019, 08:50 pm by themanfrommoon
...und all dieser Aufwand für einen Passwortsafe. Sowas gibts doch fertig zu kaufen.

Die Vorstellungen und die Möglichkeiten passen einfach (noch?) nicht zusammen.
Vielleicht ist der TO einfach biel zu schnell gestartet.

Wie wäre es denn wenn der TO nochmal haarklein genau beschreibt was er will?!

Wie viele "Passwörter" willst du denn speichern, und was meinst du wie viel Speicher du dafür brauchst?

Balisto

Sorry, aber irgendwie habe ich den Eindruck das wir ständig aneinander vorbei schreiben...

Fakt ist:
Verwendet wird ein W25Qxx Chip
Es soll eine beliebige Datei auf diesen Chip gespeichert werden.

Mir ist klar das es sd karten (oder sonstige Möglichkeiten) gibt. ich könnte auch einfach einen wemos nehmen, auf dessen flash die dateien speichern und fertig. aber das will ich alles nicht.

ich möchte einen einzenlen losen chip (bzw ein Modul) als speicher für eine oder mehrere dateien verweden. Die große Frage ist, wie bekomme ich die Datei auf den Chip??
Es ist auch völlig irrelevant wie groß die Datei ist oder wie viele Passwörter enthalten sind. Das relevante ist, eine vorhandene Datei (egal welches dateiformat) auf dem spi flash chip zu speichern. Und nur um diese Frage geht es hier.

Ich möchte das (zb .rar) auch nicht auf auf dem arduino bzw. esp8266 erzeugen. Die Datei wird auf meinem Windows system erzeugt und soll dann auf den W25Q64Chip. (.rar ist auch nur ein Beispiel).

Kennt das von euch jemand, in der Arduino ide auf Werkzeuge klicken und dann auf "esp8266 Sketch data upload" klicken?? Eben so etwas wäre perfekt für das externe spi flash modul. Das wäre genau das was ich will.

Mittlerweile hat sich aber bereits herausgestellt das so etwas nicht geht. Ich verstehe halt nicht, warum man auf internen speicher dateien ablegen kann aber auf externen nicht. Nun frage ich nach alternativen. Wie bekomme ich eine Datei auf den Chip?

z.b.
Es wäre aber auch ausreichend, wenn ich die raw daten einer Datei (zb. von einem großen .rar archiv) auf so einem Modul speichern könnte und auch wieder davon lesen und unter Windows als funktionierende Datei (test.rar) speichern könnte.
zb. in einer schleife. ich lese die datei test.rar byte weise und speichere dessen raw daten auf den chip und umgekehrt zum speichern als datei unter windows.

Es gibt unter anderem diese library: https://github.com/Marzogh/SPIMemory
kann ich die nicht dafür benutzen?

Es kann doch nicht sein das es unmöglich ist eine beliebige datei auf so einem Chip zu speichern.
^^-------/\-------^^

Tommy56

De ESP8266 wird das rar-file nicht lesen können.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

themanfrommoon

Fakt ist:
Ich hab ein Moped hier.
Und damit will ich jetzt zum Mond fliegen.
Frage: Wieso geht das nicht?

Man kann leider nicht alles mit irgendwelchen Sachen machen.

Ein einfacher loser Chip bzw. Ein Modul ist in deinem Fall ein USB Stick oder eine SD Karte. Die erfüllt alle deine Anforderungen. Warum nimmst du nicht sowas was einfach nur funktioniert?

Warum willst du partout mit dem Moped zum Mond fliegen? Irgendeinen unbekannten Grund muss das ja haben, der zur Folge hat, dass die einfachen Lösungen scheinbar nicht funktionieren.

Und natürlich spielt es eine riesen Rolle wie viele Daten man speichern will.

Solange es nur um ein paar Passwörter geht reden wird hier keinesfalls von Megabytes, sondern höchstens von wenigen Kilobytes. Und da hat man dann plötzlich ganz andere Lösungsmöglichkeiten. Mein Favourit wäre hier FRAM.

Wenn du dir bei deinem Problem nicht helfen lassen möchtest, dann lass es halt bleiben.

noiasca

#25
Oct 09, 2019, 03:42 am Last Edit: Oct 09, 2019, 04:00 am by noiasca
Sorry, aber irgendwie habe ich den Eindruck das wir ständig aneinander vorbei schreiben...
das liegt an dir.

Quote
Fakt ist:
Verwendet wird ein W25Qxx Chip
Es soll eine beliebige Datei auf diesen Chip gespeichert werden.
Mir ist klar das es sd karten (oder sonstige Möglichkeiten) gibt. ich könnte auch einfach einen wemos nehmen, auf dessen flash die dateien speichern und fertig. aber das will ich alles nicht.
ich möchte einen einzenlen losen chip (bzw ein Modul) als speicher für eine oder mehrere dateien verweden.
Die große Frage ist, wie bekomme ich die Datei auf den Chip??
Es ist auch völlig irrelevant wie groß die Datei ist oder wie viele Passwörter enthalten sind. Das relevante ist, eine vorhandene Datei (egal welches dateiformat) auf dem spi flash chip zu speichern. Und nur um diese Frage geht es hier.
Ich möchte das (zb .rar) auch nicht auf auf dem arduino bzw. esp8266 erzeugen. Die Datei wird auf meinem Windows system erzeugt und soll dann auf den W25Q64Chip. (.rar ist auch nur ein Beispiel).
Was die Leser lesen: ich möchte aber, ich möchte aber, ich möchte aber.

Quote
Kennt das von euch jemand, in der Arduino ide auf Werkzeuge klicken und dann auf "esp8266 Sketch data upload" klicken?? Eben so etwas wäre perfekt für das externe spi flash modul. Das wäre genau das was ich will.
Kennen wir. Dahinter steckt ein Erweiterung für die IDE die mit dem ESP zusammenspielt. Also suchst dir jetzt den Quellcode für die Perl-Erweiterung und baust etwas ähnliches für den externen Chip nach. Dann hast du genau das was du willst. Nur so als Tipp: Wenn ich von einem PC auf einen exteren Datenträger speicher will, nehme ich für gewöhnlich den Explorer und speichere z.B. auf eine SD-Karte. Den Unweg über die Arduino-IDE nehme ich nur wenn ich auf den ESP speichern muss.

Quote
Mittlerweile hat sich aber bereits herausgestellt das so etwas nicht geht. Ich verstehe halt nicht, warum man auf internen speicher dateien ablegen kann aber auf externen nicht. Nun frage ich nach alternativen. Wie bekomme ich eine Datei auf den Chip?
Zwei Antworten:
- DU bekommst auf den W25Q keine Datei mittels Arduino IDE.
- Musst du dir halt bauen. Ist aber schon eine komplexe Sache.

Quote
Es wäre aber auch ausreichend, wenn ich die raw daten einer Datei (zb. von einem großen .rar archiv) auf so einem Modul speichern könnte und auch wieder davon lesen und unter Windows als funktionierende Datei (test.rar) speichern könnte.
zb. in einer schleife. ich lese die datei test.rar byte weise und speichere dessen raw daten auf den chip und umgekehrt zum speichern als datei unter windows.
wie ich ein derartiges Filesystem-Modul mit einer SD-Karte bauen würde, habe ich dir geschrieben. Du gehst nicht darauf ein, warum du diesen Weg nicht gehen willst. Im Prinzip hat dir Uwe in der allerersten Antwort ähnliches geraten: verwende eine SD-Karte.

Quote
Es gibt unter anderem diese library: https://github.com/Marzogh/SPIMemory
kann ich die nicht dafür benutzen?
lies dir noch mal die Beschreibung zu dieser lib durch. Besonders den Abschnitt Write commands. Ich finde da nichts ala, writeFile, deleteFile, directory. Ich lese da nur writeWord(address, data) und ähnliches. Das heißt für mich diese Lib unterstützt kein Filesystem wie man es von SD-Karten her kennt. Also musst du weitersuchen.

Quote
Es kann doch nicht sein das es unmöglich ist eine beliebige datei auf so einem Chip zu speichern.
Unmöglich klingt so endgültig. Technisch ist vieles möglich, fragt sich nur ob es den Aufwand lohnt oder man besser andere Wege geht.
Mit SD-Karten hast du im ESP-Umfeld ein externes Filesytem zur Verfügung.
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

combie

#26
Oct 09, 2019, 06:32 am Last Edit: Oct 09, 2019, 06:32 am by combie
Sorry, aber irgendwie habe ich den Eindruck das wir ständig aneinander vorbei schreiben...
Wie ich schon sagte:
Wenn du Dateien speichern willst, benötigst du ein Dateisystem für deinen Chip.

Gibt es ein solches?
  • Ja: Dann verwende es.
  • Nein: Dann bau dir eins. Da lernste auch was bei.
Mittlerweile geht mir dein Gejammere etwas auf den Keks, und ich verabschiede mich hier.
Säge kein Sägemehl.

Balisto

#27
Oct 09, 2019, 08:18 pm Last Edit: Oct 09, 2019, 08:25 pm by Balisto
Quote
Mittlerweile geht mir dein Gejammere etwas auf den Keks, und ich verabschiede mich hier.
Ich jammer doch nicht. Ich versuche nur mein Standpunkt klar zu machen. Und der ist einfach, wie bekomme ich die daten einer Datei auf den flash speicher.... also ganz einfach eigentlich.....

Ich habe mittlerweile deutlich gemacht das mir alternativen wie sd karten sehr wohl bekannt sind und mir ist auch klar das es damit einfacher wäre.

Es ist nett gemeint von euch mir die Alternativen anzubieten aber wenn ich es nicht möchte dann ist das eben so. Warum können wir uns nicht einfach darauf konzentieren eine Datei (bz die Daten der Datei) auf ein spi flash chip zu schreiben??

.... folgendes ist alles nur theoretisch ....
Folgender Aufbau:
Arduino, spi flash modul W25Q64, sd karten modul, eine SD Karte mit einer beliebigen Datei darauf die unter Windows auf die SD Karte gespeichert wurde.
Wie wie wäre es mit einem Sketch auf dem Arduino dass in einer schleife die Datei (bzw die Daten) von der sd karte blockweise in einen puffer liest und diesen Puffer auf den flash speicher speichert? Das Ergebnis wäre doch, dass die Daten der Datei von der SD Karte auf dem flash speicher modul wären, oder?? Sozusagen ein 1:1 Abbild der Datei von der Sd Karte... Um die Daten wieder auf die SD Karte zu bekommen, gehe ich einfach umgekehrt vor, also lese vom speicher und schreibe auf sd karte.

Möchte ich mehrere Dateien auf dem flash modul speichern, dann müsste ich einen eigenen Header erstellen und letztendlich schreibe ich alle dateien in den flash speicher als eine große "datei". Sozusagen als ein .iso also ein image abbild der sd karte.
...theorie ende....

Klar das ist kein Filesystem aber ihr habt mir ja klar gemacht das dies nicht geht oder sehr schwer ist. Ein Filesystem wäre mir auch nicht wichtig (nur bequemer). Die oben beschriebene Vorgehensweise (wenn es denn so funktioniert) wäre ausreichend. Wichtig ist nur das die Daten auf dem flash speicher sind und sich auch davon wieder lesen lassen. Egal wie....

Wenn der Programmieraufwand für so etwas gigantisch ist, dann (ja im ernst) ja dann sehe ich es ein und gehe einen anderen weg. Aber ich kann mir nicht vorstellen das es  so aufwendig ist daten byte weise zu lesen und woanders zu speichern....

und bevor jetzt jemand schreibt "Dann mach es doch so...", würde ich gerne aber mir fehlt das grundwissen dazu. Daher frage ich hier im Forum euch.
^^-------/\-------^^

harryberlin

So wie ich das verstehe:
Er hat eine Datei. Punkt. Völlig egal woher die ist.
Gelernt haben wir mal, Daten bestehen aus Bits.
Diese Bits will er auf irgend einen Speicher drauf knallen. Wunsch ist ein Chip.

Spaß:
Da will er dann vermutlich ein Loch durch bohren, Kette durch und um den Hals hängen.

Und Irgendwann wenn er bock hat, will er den Chip mal wieder auslesen und die Bits.

Thema hier:
Wie kriegt man die Bits auf den erwähnten Chip, auf elegante Weise.
Non plus ultra wäre dann auch die Lösung, die Bits wieder zu lesen.

harryberlin

#29
Oct 09, 2019, 08:29 pm Last Edit: Oct 09, 2019, 08:30 pm by harryberlin
Oder du bastelst dir ein Script, was deine Datei ins .hex oder .eep convertiert.
Und flashst das ganze mit nen isp programmer auf den arduino in flash oder eeprom.

Go Up