Hi Leute,
Ha da letztens etwas wichtiges in der inzwischen sehr umfangreichen Dokumentation vom ESP8266 Arduino Core entdeckt:
Wifi.persistent()
Demnach ist es normalerweise so dass bei wirklich JEDEM Aufruf von unter anderem WiFi.begin() die übergebenen Parameter erneut in den Flash Speicher geschrieben wird auch wenn sich diese gar nicht ändern.
Programmiert man jetzt bspw. einen Logger der sich zwischen den Messungen schlafen legt oder komplett abschaltet und dann nach dem Start wie üblich WiFi.begin() aufruft wird mit JEDEM start die WiFi Konfiguration erneut in den Flash Speicher geschrieben was natürlich zu Abnützung und schlussendlich zum Tod einzelner Speicherzellen führt.
Bei einem Projekt bei dem das nur ein paar mal am Tag passiert ist das sicher vernachlässigbar, wenn das aber beipelsweise jede Minute passiert sieht es auf ein Jahr hochgerechnet gleich ganz anders aus.
Eine einfach Lösung für dieses Problem ist:
WiFi.persistent(false)
Diese WiFi Methode stellt sicher dass die Konfiguration nur erneut in den Flash Speicher geschrieben wird wenn sich diese auch geändert hat.
Wichtig dabei ist dass Wifi.persistent(false) vor allen anderen WiFi Methoden ausgeführt werden muss.
Allerdings muss man dabei dann bspw. folgendes beachten: (Mehr infos in den Links)
ZitatPlease note that functions WiFi.disconnect or WiFi.softAPdisconnect reset currently used SSID / password. If persistent is set to false, then using these functions will not affect SSID / password stored in flash.
Hier geht es zwar speziell um den ESP8266 Arduino core vermute aber, da dieses Problem tiefer geht, dass auch bspw. die NodeMCU Firmware, Micropyhton, Basic und was es nicht sonst so alles gibt davon betroffen sind.
Die Dokumentation vom ESP Arduino core ist aber soweit ich gesehen hab die einzige die darauf eingeht und auch eine Lösung bietet.
Links:
WiFi config corrupted after multiple restarts - https://github.com/esp8266/Arduino/issues/1054
WiFi.persistent() - https://github.com/esp8266/Arduin…s.md#persistent
Espressif FAQ (Seite 23: Which APIs will write or save data to the flash memory?) - http://espressif.com/sites/default/…ssif_faq_en.pdf
ESP8266 Reboot Cycled Caused by Flash Memory Corruption — Fixed! - http://rayshobby.net/esp8266-reboot…rruption-fixed/