ESP8266: SPIFFS Speicher - Was damit machen?

Gast #5697713
Hallo,

ich habe grad den Stein "NodeMCU 8266" mit 4M Flash entdeckt und hier 
liegen, zumindest die LED kriege ich zum Blinken. Und auch die Software 
für die At-CMDs kriege ich geflasht mit dem Tool von Espressiv.

Das weitere unter Arduino mit pasender Lib. Ebenfalls installiert habe 
ich ein .jar File in den Tools, dass es mir ermöglicht einen Data Ordner 
in FS des Chips zu laden (SPIFFS). Funzt auch, getestet mit ein paar 
Text Files. Mal einen Webserver aus den Examples gestartet, verbindet 
sich auch mit meinem Wifi zu Hause.

Jetzt die Frage: Was kann ich mit dem Platinchen Schönes machen? Mir 
fällt auf Anhieb da nichts ein, außer vielleicht einen Wetter Server ab 
zu fragen und ein paar LEDs zu schalten mit einem json Parser. Glaube 
openwwaether org hat auch das json Format.

Hat damit schon mal jemand gebastelt? Dieser SPIFFS Speicher sollte 
schon genutzt werden, hat ja vermutlich seinen Zweck, dass man das dort 
gespeicherte benutzen kann....

Link auf ein Projekt zum Nachbauen wäre gut.

PS: Stromsparend ist das Ding ja grad nicht.... Batterie scheidet wohl 
aus.

Gruss,
Christian
#5697802
Puh, von LED blinken lassen bis kabellos TV Signale senden kann der ESP 
eigentlich alles. Und W-LAN natürlich auch :)
Ich empfehle dir einfach mal auf YouTube nach esp8266 zu suchen und dir 
einige Projektvideos anzusehen. Vielleicht findest du da eine schöne 
Idee.

Stromsparend kann er übrigens auch, aber natürlich nicht non stop mit 
W-LAN. Man kann ihn aber schlafen legen und z.B. nur alle 5min was tun 
lassen, dann hält er auch mit Batterie ewig.

Und der SPIFFS Speicher ist einfach ein Teil des Flash-Speichers. Du 
musst den nicht als Dateisystem nutzen, das ist einfach nur eine Option. 
Du kannst ihn auch normal mit programmcode beschreiben, aber so viel 
wirst du nie brauchen.
Gast #5697813
Andreas B. schrieb:
> Und W-LAN natürlich auch :)

Ja, sowas schwebt mir auch vor. Über meine Fritzbox ins Internet. Ok, 
steuern muss ich nichts, meine Heizung schalte ich auch so per App ein, 
das gibt es fertig zu kaufen.

NTP Abfrage grad probiert, klappt auch. Deauther ist auch ein nettes 
Spielzeug. Nervtötend sind nur die endlos langen Kompiliervorgänge, auch 
wenn der Upload mit maximalen 900.000 problemlos klappt. Aber eine 
änderung sind dann rund 15-20 Sekunden warten, weil da ja wohl etliches 
mehr hochgeladen wird als nur ein Blink Sketch. Keine Ahnung wieso das 
noch nicht geändert wurde. 180 kb Bin-File und 25 kb globale Variablen 
direkt belegt.... fragt sich nur womit.
#5698030
Hallo,

Christian J. schrieb:
> Keine Ahnung wieso das
> noch nicht geändert wurde. 180 kb Bin-File und 25 kb globale Variablen
> direkt belegt.... fragt sich nur womit.

was sollte man da ändern? WLAN, TCP-Stack und noch etliche 
Standardfunktionen weglassen? Dann nimmt man eben keinen ESP, zum 
Blinken einer LED reicht auch ein ATTiny...

Gruß aus Berlin
Michael
Gast #5698059
Michael U. schrieb:
> zum
> Blinken einer LED reicht auch ein ATTiny...

Quatsch, dass wird diskret aufgebaut. Maximal noch mit einem NE555.
Obwohl ich mir vorstellen könnte, dass einige dafür auch ein Raspberry 
Pi B 3+ auspacken würden. ;)

Ja der ESP ist schon ein ganz netter Chip. Auch der ESP32 mit seinen 2 
Kernen ist ganz nett.
Gast #5698139
Michael U. schrieb:
> was sollte man da ändern? WLAN, TCP-Stack und noch etliche
> Standardfunktionen weglassen?

Vielleicht nur einmal laden? So wie auch die diversen Teile der Firmware 
für AT-Cmd? Das Flashen geschieht doch partiell. Ist bisher auch der 
Grund wieso ich damit noch nicht mehr gemacht habe, die meiste Zeit 
wartet man eben, besonders anfangs wenn man erst ausprobieren muss ob es 
überhaupt so klappt.

Fürs Blinken einer LED brauch ich 2 T's, 2 C's und 4 R's, nennt sich 
astabiler Multivibrator in sachkundigen Fachkreisen....
Gast #5699661
Moin,

nochmal kurz ne Frage: Welchen sind ergeben Arduino Makros wie PROGMEM, 
wenn die Tensilica Xtensa CPU sich doch sowieso blockweise den Code aus 
dem seriellen Flash nachlädt, den sie grad ausführt? Liegt doch eh alles 
im Ram später.

Macht das da noch Sinn auf den RAM Speicher zu gucken? 50kb sind das 
glaube ich.....
Gast #5849152
Stefanus? Bist Du hier?

Weisst du zufällig wie man beim ESP8266 das Wifi abschaltet und wieder 
ein?
Frage ja nur alle 5 Minuten ab. Aktuell habe ich Auto Connect. Möchte 
etwas Stromsparen, so 1s im Sleep Mode wäre gut und dann weiter. 
Idealerweise wäre ein Light Sleep Gut.

Gruss,
Christian
Gast #5849166
Christian J. schrieb:
> Was kann ich mit dem Platinchen Schönes machen?

Du kannst im SPIFFS zum Beispiel statische HTML Seiten, Bilder, 
Javascripte, etc ablegen. Damit erzeugst du Webseiten, über die du das 
Gerät (das du noch erfinden wirst) bedienen kannst.

> Weisst du zufällig wie man beim ESP8266 das Wifi abschaltet
> und wieder ein?

Ja, "zufällig" habe ich dafür sogar ein Lesezeichen definiert: 
http://stefanfrings.de/esp8266/index.html#wlanonoff

> Möchte etwas Stromsparen, so 1s im Sleep Mode wäre gut und
> dann weiter. Idealerweise wäre ein Light Sleep Gut.

Dann kann der ESP allerdings nicht mehr den Webserver für ein 
Browser-basiertes Bedienfeld spielen.
Gast #5849174
Stefanus F. schrieb:
> Dann kann der ESP allerdings nicht mehr den Webserver für ein
> Browser-basiertes Bedienfeld spielen.

Nö, muss er auch nicht. Guckt nur alle 1 Stunde im Web nach, holt die 
Börsen Kurse als json und taucht wieder ab.

Das spffis kann man prima mit einem fs verwenden,. klappt richtig 
klasse! einfach logfiles dort ablegen und später senden.
Gast #5849320
Beim ESP32 kann man sich eine Custom Partition erstellen und die 
komplette Partition als RAM Mappen, ist dazu noch ultraschnell im 
gegensatz zu Spiff.

Spiff hat für Richtige Datenschubsserei einfach zuviel Overhead, wnen 
man mal überlegt wie schnell es mit max SPI gehen müsste..
Gast #5849623
Christian J. schrieb:
> Jetzt schreibst du hier einen Teaser aber lässt offen wie das zu machen
> ist.

Es ging ja auch um den ESP8266..

dort kann man das ähnlich mit Progmem machen, da kann man 
Partitionierung ohne Spiff erstellen und nur eine große 
Programmpartition anlegen.

Das ist dann only Read,den Rest hab ich selbst nicht versucht.. aber wie 
bei OTA ist bestimmt auch das möglich.

Mappen unterstützt nur der ESP32 soweit ich weiß, ich nutze es nur Only 
Read.
Gast #5850210
Also so gehts beim ESP32:

Ich habe eine Custom Partition angelegt und mein Bilddaten.bin mit dem 
ESP-Downloader an die Adresse geladen. Dann habe ich die Partition als 
RAM in einen Pointer gemappt. (macht die MMU mit nem Transparent Cache)

Jetzt kann ich mit dem Pointer "data"+Offset meine Bilder direkt zum 
Display rausschieben.

Pseudobeispiel:
Code:
1
const esp_partition_t* part;
2
spi_flash_mmap_handle_t handle;
3
void* data;
4
esp_err_t err;
5

6
void setup(){
7
part=  esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "storage");
8
err = esp_partition_mmap(part, 0, part->size, SPI_FLASH_MMAP_DATA, (const void**)&data, &handle);
9
vspi->writeBytes((uint8_t*)data+offsetBackground, width *high* 3);
10
}
Gast #5851661
TotoMitHarry schrieb:
> Ich habe eine Custom Partition angelegt und mein Bilddaten.bin mit dem
> ESP-Downloader an die Adresse geladen. Dann habe ich die Partition als
> RAM in einen Pointer gemappt. (macht die MMU mit nem Transparent Cache)

Ich verstehe zwar nur Bahnhof, weil ich keine Ahnung habe womit man das 
macht aber der ESP8266, der ohne die Arduino Cores eh kaum benutzbar ist 
kann direkt auf 1-4 Mbt SPIFFS eingestellt werden. Bindet man das FS ein 
kann man direkt auf ein File System zugreifen, ob Ram oder Flash ist 
wumpe. Es ist r/w. Einspielen kann man die Daten mit dem Upload Tool 
(data Ordner), sie könnten aber auch run time erzeugt werden. Zugriffe 
mit fopen, fwrite, fread usw. Als wenn eine SD Karte eingesteckt wäre. 
Der Stein hat wirklich einiges an Potential, ich bin da immer wieder 
erstaunt. Zumindest solange ich den Core 2.4.0 nutze, mit denen drüber 
läuft nix mehr....
Gast #5851698
Christian J. schrieb:

> Ich verstehe zwar nur Bahnhof, weil ich keine Ahnung habe womit man das
> macht aber der ESP8266..

Mir war Spiff halt zu langsam, zum testen benutze ich es auch.. für nen 
bisschen Logging oder so.

Ich benötigte für vernünftige FPS auf dem Display Daten an SPI..

Mit Spiff waren es umgerechnet 15Mhz SPI Datenrate, mit der Mapping 
Lösung die angepeilten 24Mhz Datenrate und nach oben alles offen.
Gast #5851797
> Fürs Blinken einer LED brauch ich 2 T's, 2 C's und 4 R's, nennt sich
> astabiler Multivibrator in sachkundigen Fachkreisen....

Für's Blinken einer LED brauche ich eine Blink-LED und einen 
Vorwiderstand... :-/
Gast #6211588
Hallo,
der letzte Eintrag liegt zwar schon etwas zurück.

Ich verwende auch ESP8266 mit Arduino-IDE.

Wie kann man eine kleine TEXTDATEI aus dem ESP-SPIFFS-Speicher  in 
meinen  ***.BPLACED.NET -Ordner hochladen ?

Leider bisher alle Versuche beim Googeln vergebens.

Grüße
lisa

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.