Forum: Mikrocontroller und Digitale Elektronik ESP8266-01 Flash Organisation - OTA & SPIFFS


von Johannes R. (johannes_r981)


Lesenswert?

Hi Community,

ich habe jetzt an einen ESP8266-01 Projekt mehrere Zeit verbracht und 
ich stehe am "fertig werden".
Wahrscheinlich ist es nicht die eleganteste Methode, welche ich gewählt 
habe, aber mein Kopf will immer noch eine Update Variante mittels OTA im 
Projekt verbauen - gesagt getan wenn ich das Projekt builde komme ich 
auf folgende Projektdaten:

RAM:   [=====     ]  55.0% (used 45032 bytes from 81920 bytes)
Flash: [=======   ]  66.4% (used 636397 bytes from 958448 bytes)

So wie ich das einschätze und nachgeforscht habe ist der Flash definitiv 
zu viel für ein OTA Update. Ich habe jetzt in diese Forum Thread schon 
gelesen, dass man den Flash einfach tauschen könnte 
(Beitrag "ESP8266 - und nun?"). Bin aber noch auf 
eine andere Variante gestoßen, wie ich PlatformIO die Firmware des 
ESP8266 weiter komprimieren kann mit Hilfe von gzip.
Wenn ich dies anwende komme ich auf folgendes Ergebnis:
compressFirmware(["upload"], [".pio\build\esp01_1m\firmware.bin"])
Compressing firmware for upload...
Compression reduced firmware size by 68% (was 640544 bytes, now 434046 
bytes)

Nun meine Frage ist, wenn ich jetzt die 434046byte annehme dann bin ich 
ja prinzipiell unter die 50% und somit müsste auch der OTA Code 
entsprechend funktionieren oder bin ich hier komplett falsch unterwegs?
Gibt es mittlerweile alternative Lösungen um OTA für einen ESP8266 
anzuwenden wenn MEHR als 50% FLASH Speicher in verwendung steht?

mfg,

von Johann K. (Firma: privat) (johnboyk)


Lesenswert?

Du solltest Dir überlegen, wenn Deine entpackte Software mehr als 50% 
verbraucht, dass Du dann die Aufteilung zwischen Programmspeicher und 
SPIFFs sehr exakt treffen musst, damit Du dein großes gepacktes Binary 
im SPIFFS halten kannst und im Programmspeicher dein großes ENTpacktes 
Binary Platz hat.
Wahrscheinlich wird es für Dich einfacher, wenn Du auf einen ESP8266-12F 
umsteigst und damit mehr Speicher zur Verfügung hast.
Freundliche Grüße
Johann

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Johannes R. schrieb:
> dass man den Flash einfach tauschen könnte
Ja!
z.B.: W25Q128F
Zumindest bei den schwarzen Boards.
Die blauen haben einen kleineren Fußabdruck für das Flash

: Bearbeitet durch User
von Johannes R. (johannes_r981)


Lesenswert?

Danke für die Rückmeldungen. Ich hab mir direkt mal ein paar esp12f 
gekauft um da grundsätzlich bestehende Problem mal zum eingrenzen. Es 
besteht nach wie vor ein UploadProblem was aber auf einen Bug in der 
asyncelegantota.h libary zurückzuführen ist.

Johann K. schrieb:
> solltest Dir überlegen, wenn Deine entpackte Software mehr als 50%
> verbraucht, dass Du dann die Aufteilung zwischen Programmspeicher und
> SPIFFs sehr exakt treffen musst, damit Du dein großes gepacktes Binary
> im SPIFFS halten kannst und im Programmspeicher dein großes ENTpacktes
> Binary Platz hat.
> Wahrscheinlich wird es für Dich einfacher, wenn Du auf einen ESP8266-12F
> umsteigst und damit mehr Speicher zur Verfügung hast.
> Freundliche Grüße
> Johann

Trotzdem, möchte ich die Funktion generell verstehen: wenn ich jetzt von 
Haus aus z.B. 60% des Flash durch das Programm belege und durch 
komprimieren der Firmware z.B. genau die restlichen 40% Belege 
"funktioniert" dann ein Update mittels OTA? Oder ist alleine aufgrund 
des entpackens ein Update nicht möglich, da die Firmware dann über die 
50% kommt?
Mfg

von Steve van de Grens (roehrmond)


Lesenswert?

Wenn das so gerade eben passt, verbaust du dir die Möglichkeit, auf ein 
neues SDK (bzw. Arduino Core) upzugraden. Denn diese werden eher größer 
als kleiner.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.