Forum: Mikrocontroller und Digitale Elektronik ESP8266 mit Lua-Firmware flashen über das offizielle Espressif-Flashtool


von Stefan L. (stefanl38)


Lesenswert?

Hallo ESP8266-Kenner,

ich möchte eine custimized Lua-Firmware auf meine NodeMCU-Boards 
flashen.
Die Firmware habe ich mir von der entsprechenden Website
https://nodemcu-build.com erstellen lassen. Es kann also nicht daran 
liegen, dass ich etwas mit dem SDK oder dem "Make" falsch gemacht habe.


Wenn ich das mit dem nodeMCU-Flasher probiere klappt es nicht. Damit 
kann ich zwar eine Standard-Lua-Firmware flashen aber nicht meine 
customized version.
Deshalb möchte ich es mit dem offiziellen und aktuellen Flashtool von 
Espressif probieren. Ich habe aber keine Ahnung was ich dazu alles 
einstellen muss.


Weiß jemand wie das geht?

Noch etwas zu meinen Kenntnissen usw. Ich benutze Windows und habe keine 
Linux-Kenntnisse. (also irgendwelche Flashmöglichkeiten via Linux fallen 
flach)

Ich möchte auch möglichst nicht per Kommandozeile flashen.

Das offizielle Tool von Espressif müsste es ja locker hinbekommen, wenn 
man es denn richtig eingestellt hat.

Bin dankbar für Hinweise oder links. Mit eigener Google-suche habe ich 
noch keine Anleitung für das Espressif-Flash-Tool gefunden.

viele Grüße

Stefan

von Marc G. (marcm)


Angehängte Dateien:

Lesenswert?

Du mußt eigentlich nur das selbe einstellen wie in dem 
nodemcu-flasher... ich habs gerade mal probiert, geht auch mit dem 
espressif flasher. Guck dir die Einstellungen im Screenshot im Anhang 
an... Natürlich den Comport an deinen anpassen...

Evtl. ist dein custombuild auch zu groß für den flash geworden ??

Marc

von Timmo H. (masterfx)


Lesenswert?

Wenn der Flashvorgang ansich geht aber der ESP irgendwie nicht laufen 
will, dann könntest du mal versuchen die init_data von deinem SDK 
einzuspielen. Da wurde nämlich mal was geändert: 
https://nodemcu.readthedocs.io/en/dev/en/flash/#sdk-init-data

von Stefan L. (stefanl38)


Lesenswert?

Hallo Marc,

vielen Dank für Deine Antwort. Ich habe es mit den Einstellungen im Bild 
probiert. Wenn ich auf "Start" klicke werden die Flash-Chip-Daten 
angezeigt,
Die Status-LED hat einmal aufgeleuchtet,
und die Statusanzeige wechselt von Idle zu Download aber sonst passiert 
nix.
Der Fortschrittsbalken bleibt leer.

Ich habe dann Windows erst mal seinem Liebelingshobby frönen lassen 
(noch mal neu starten) und dann nochmal alles probiert. Nix.

Comport ist richtig eingestellt. In den Flashmodus versetzen klappt 
auch. Ich habe das flashen der INTERNAL://NODEMCU gleich noch einmal 
getestet. Das funktioniert.


Noch kein Erfolg. Habe jetzt ein esp_init_data_default.bin File an 
Adresse
0x3fc000 mit dem NodeMCU-Programmer geflasht und dann noch einmal mit 
dem NodeMCU-Programmer meine firmware flashen probiert. Läuft nicht. 
:-((

Dann wieder INTERNAL://NODEMCU geflasht das geht nach wie vor.

Die Boards die ich benutze sind die da
http://www.exp-tech.de/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/n/o/nodemcu_1_1.jpg

Wie finde ich jetzt heraus welches die passende init_data-bin ist???

viele Grüße

Stefan

von Stefan F. (Gast)


Lesenswert?

> Ich möchte auch möglichst nicht per Kommandozeile flashen.

Vielleicht kann ich Dich doch noch bekehren.

Mit dem Tool von Espressif habe ich immer wieder Probleme, unter Linux 
und Windows auf mehreren Computern und mit unterschiedlichen Modulen.

Aber das python Script esptool.py klappt super. 
https://github.com/espressif/esptool

Nach der Installation von Python 3.6 musst du mit dem Befehl "pip 
install pyserial" noch ein Modul nachinstallieren.

Mehr dazu hier: http://stefanfrings.de/esp8266/index.html

von Stefan L. (stefanl38)


Lesenswert?

Hallo Stefan,

ich bin ja dankbar für Hinweise aller Art. Wenn es irgendwie möglich ist 
würde ich gerne eine *.exe-Datei benutzen und nicht noch weitere 
Programme und Module nachinstallieren müssen. pip install pyserial" hört 
sich nach Linux an oder?

viele Grüße

Stefan

von Stefan L. (stefanl38)


Lesenswert?

Stefan U. schrieb:
>> Ich möchte auch möglichst nicht per Kommandozeile flashen.
>
> Vielleicht kann ich Dich doch noch bekehren.
>
> Mit dem Tool von Espressif habe ich immer wieder Probleme, unter Linux
> und Windows auf mehreren Computern und mit unterschiedlichen Modulen.
>
> Aber das python Script esptool.py klappt super.
> https://github.com/espressif/esptool
>
> Nach der Installation von Python 3.6 musst du mit dem Befehl "pip
> install pyserial" noch ein Modul nachinstallieren.
>
> Mehr dazu hier: http://stefanfrings.de/esp8266/index.html

Also ich schaue mir gerade die esptool-Geschichte an

Unter https://github.com/espressif/esptool gibt es eine Menge Links und 
Download-Möglichkeiten. Wie oben schon mal geschrieben habe, bin 
ichHobbyprogrammierer Kenntnisse in Delphi, SPIN und PASM 
(Parallax-Propeller-Chip)

Keine Ahnung von Python, keine Ahnung von GitHub, keine Ahnung von Linux 
usw.
Wenn man mich "bekehren" will dann müsste man mir es schon genauer 
erklären.

Wie installiere ich pyserial und wie installiere ich esptool?
Wenn es mir jemand beschreiben möchte dann bitte nicht nur einen Link 
auf die Hauptseite sondern download-links zu exakt den Dateien die ich 
dafür brauche.

Wenn das dann in einen Linux-Grundkurs für eine Woche ausartet 
vielleicht doch lieber einfach nur der Hinweis wo ich die passende
init_data und die Adresse an die es geflasht werden muss.

viele Grüße

Stefan

von Marc G. (marcm)


Lesenswert?

Hast du schon irgend etwas an der NodeMCU angeschlossen ? Ich flashe 
immer ohne alles, nur USB-kabel...

Und was hast du denn alles im CustomBuild drin (Module, Größe) ?

Marc

von Stefan L. (stefanl38)


Lesenswert?

Hallo Marc,

ich habe nur das Board an USB angeschlossen.
Größe der Firmware ist 697.744byte.

Ich habe es auch mal mit einer Firmware in Größe 390kB probiert.
Ging auch nicht.

von Stefan L. (stefanl38)


Lesenswert?

Mir erscheint es sinnvoll zunächst mal einige Detailinfos zu bekommen.

Wer könnte mir denn folgende Fragen beantworten:

Wenn ich die Firmware-build-website https://nodemcu-build.com/ benutze
um eine Firmware erstellen zu lassen.

Welche SDK-Version wird denn dann benutzt um die Firmware zu erstellen?

Wenn ich den Befehl print(node.flashsize()) benutze und das Board mit 
der
Zahl "4194304"  antwortet. Was bedeutet dann diese Zahl?

viele Grüße

Stefan

von Manfred F. (manfred_f)


Lesenswert?

Stefan L. schrieb:
> Welche SDK-Version wird denn dann benutzt um die Firmware zu erstellen?

Espressif NON-OS SDK 2.0.0

Stefan L. schrieb:
> Was bedeutet dann diese Zahl?

Das du ein Board mit 4MB Flash hast.

esptool.py gibts inzwischen auch als fertiges .exe für Windows.
Das erspart einem die Installation von Python.

https://github.com/marcelstoer/nodemcu-pyflasher/releases

: Bearbeitet durch User
von Stefan L. (stefanl38)


Lesenswert?

Hallo Manfred,

vielen Dank für die Beantwortung.
OK 4MB flash dann müsste doch jede noch so große Firmware draufpassen.

Bleiben noch die Fragen welche init_data.bin für Espressif NON-OS SDK 
2.0.0
an welche Adresse flashen?

viele Grüße

Stefan

von Stefan L. (stefanl38)


Lesenswert?

Hallo Manfred,

ich habe jetzt den NodeMCU-PyFlasher-1.0.0.exe ausprobiert.
Flashen scheint zu funktionieren aber die Firmware funktioniert leider 
immer noch nicht.

Kann mal jemand eine Firmware*.bin-Datei hier an ein posting anhängen, 
von der er weiß dass sie bei ihm funktioniert?

Das verrückte ist ja dass es mit der INTERNAL://NODEMCU-Firmware immer 
wieder aufs neue funktioniert.

Könnte es sein, dass die INTERNAL://NODEMCU auch immer wieder die 
falsche
esp_init_data_default.bin  draufschreibt?


Was würde passieren wenn ich in Py-Flasher-exe "erase flash" aktiviere?
Wird dann der komplette flash gelöscht= bootloader und 
esp_init_data_default.bin usw. ?

oder nur der firmware-Bereich?

viele Grüße

Stefan Ludwig

von Manfred F. (manfred_f)



Lesenswert?

Stefan L. schrieb:
> Kann mal jemand eine Firmware*.bin-Datei hier an ein posting anhängen,
> von der er weiß dass sie bei ihm funktioniert?

OK, ich hänge dir mal die an, die gerade auf meinen Boards läuft. Die 
geht 100%ig.

Stefan L. schrieb:
> Was würde passieren wenn ich in Py-Flasher-exe "erase flash" aktiviere?

Das mach ich eigentlich immer, weil dann wohl alles relevante neu 
geschrieben wird. Hast du auch alle Einstellungen im Pyflasher richtig 
gemacht?

: Bearbeitet durch User
von Stefan L. (stefanl38)


Lesenswert?

Hallo Manfred,

vielen Dank für die FW. hm das ist jetzt auch seltsam. Bei 9600 baud 
keine Reaktion.
Bei 115200 hat es sich einmal gemeldet und die installierten Module 
aufgelistet. Das heißt die neuere FW hat 115200 baud. Schon mal gut zu 
wissen

Dann habe ich meine FW geflasht wieder nix.
Dann habe ich wieder deine FW geflasht jetzt kommt nach dem Resettaster 
drücken folgendes:

s$<0>lœ¾Œ#âoŒ€$ìb|‚䲟|"ŒpŒp~óoŸloNÜãìcpŒŽ$r$rdpònàƒ$Boã|„ŒŽ’Œb„óoNÎd 
ŒŽ<0>$`oNŽlorŽ›’nòr$pûNàrŒœÜâà15:11:14.713>  cnâ|Œ„b„óoNΏ<0>l onl„l 
Ns’“oì{l`òNžàbƒolŒŒònoïŽlpònà{„œÜãàdBoã|$섏c„ûoNîdŒ<0>$`onl„l 
Nr’Ÿîròl {’“oról ŒÂœìƒoì|rƒòn|äll$l ŒãrÛ$Œ{ÿ
15:11:14.713> Formatting file system. Please wait...


ach kuck an während ich das posting schreibe klappt es jetzt doch
15:12:43.510>
15:12:43.563> NodeMCU custom build by frightanic.com
15:12:43.563>   branch: master
15:12:43.563>   commit: b96e31477ca1e207aa1c0cdc334539b1f7d3a7f0
15:12:43.563>   SSL: false
15:12:43.563>   modules: 
file,gpio,i2c,net,node,ow,pwm,spi,tmr,uart,wifi,ws2812
15:12:43.563>  build   built on: 2017-03-23 16:50

also nochmal meine FW draufflashen....

von Manfred F. (manfred_f)


Lesenswert?

Ja, die Firmware benutzt standardmäßig 115200 Baud.
Die unleserlichen Zeichen am Anfang sind (soweit ich weiß) eine Meldung 
des Bootloaders. Der sendet allerdings mit 74880 Baud; wenn du die lesen 
willst musst du ESPlorer entsprechend einstellen. Dann siehst du aber 
die Meldungen der Firmware nicht mehr. Warum die das so gemacht haben? 
Keine Ahnung, das wüsste ich selber gerne.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Manfred F. schrieb:
> Warum die das so gemacht haben?

Der Bootloader ist im ROM des ESP und daher Bestandteil des Chips 
selbst. Und ROM heißt hier ROM nicht Flash. Er hat mit irgendeiner 
Firmware nichts zu tun.

MfG Klaus

von Stefan L. (stefanl38)


Lesenswert?

Hurra !!! jippiiie!!!!

jetzt funktio-schnuggelst!!!

Ich habe dann mal getestet eine möglichst große FW zusammenzustellen 
704kB und auch das hat funktioniert.

Es ist gut das es beides gibt einfach zu bedienende EXE-Dateien an denen 
man eben nicht viel einstellen kann und Tool-Chains bei denen jeder 
freaky Individualist alles so einstellen kann wie er es möchte.

herzlichen Dank für eure Unterstützung!!

Jetzt kann es mit dem Scripte schreiben losgehen.

viele Grüße

Stefan Ludwig

von Stefan F. (Gast)


Lesenswert?

> "pip install pyserial" hört sich nach Linux an oder?

Nein, das pip.exe Programm ist Bestandteil von Python und dient dazu, 
optionale Python Module zu installieren.

> Wie installiere ich pyserial

Mit dem oben genannten pip Befehl nach Installation von python.

> und wie installiere ich esptool?

Runterladen und auspacken, wird als ZIP Datei bereitgestellt.

> bitte nicht nur einen Link auf die Hauptseite sondern download-links
> zu exakt den Dateien die ich dafür brauche.

https://github.com/espressif/esptool

Der Download Button befindet sich genau auf dieser Seite. Rechts oben in 
grün hervorgehoben.

> Wenn das dann in einen Linux-Grundkurs für eine Woche ausartet...

Ich sag mal so: Manche Leute freuen sich darüber, dass dieses Script in 
allen gängigen Betriebsystemen funktioniert. Windows gehört dazu, ich 
nutze es unter Windows. Nur weil irgendwo in der Beschreibung das Wort 
"Linux" vorkommt, solltest du nicht gleich panisch werden.

Ansonsten bist du nämlich ziemlich gearscht, weil beinahe alle 
Entwicklungstools für Mikrocontroller sogar primär unter Linux gebaut 
werden und dann erst in eine Windows Variante übersetzt werden. Das 
fängt schon beim gcc Compiler an.

von (prx) A. K. (prx)


Lesenswert?

Wobei man mit Linux schon deshalb strategisch besser fährt, weil man 
dann die Entwicklung verschiedener Controller-Plattformen in separate 
VMs auslagern kann. Um zu vermeiden, dass man den PC zumüllt und sich 
alle Sorten Treiber ins Gehege kommen. Und weil man solche VMs mühelos 
auf andere PCs und Laptops kopiert kriegt.

Weshalb ich mir für den ESP kurzerhand eine Lubuntu-VM baute. Die ich 
dann als ein Bündel von Files dorthin mitnahm, wo das Teil effektiv 
eingesetzt und für den Betrieb optimiert wird.

Das kann man mit Windows zwar auch, aber bei Linux in der VM ist es 
unabhängig von der Lizenz des Hosts legal und spart Platz.

von Stefan L. (stefanl38)


Lesenswert?

Stefan U. schrieb:
>> "pip install pyserial" hört sich nach Linux an oder?
>
> Nein, das pip.exe Programm ist Bestandteil von Python und dient dazu,
> optionale Python Module zu installieren.
>
>> Wie installiere ich pyserial
>
> Mit dem oben genannten pip Befehl nach Installation von python.
>
>> und wie installiere ich esptool?
>
> Runterladen und auspacken, wird als ZIP Datei bereitgestellt.

...>
> Ansonsten bist du nämlich ziemlich gearscht, weil beinahe alle
> Entwicklungstools für Mikrocontroller sogar primär unter Linux gebaut
> werden und dann erst in eine Windows Variante übersetzt werden. Das
> fängt schon beim gcc Compiler an.

Na da benutze ich die Ausnahme die die Regel bestätigt:
der Parallax-Propeller-Chip. Seit 2006 auf dem Markt und damals schon
8 Prozessorkerne. Für den gab es zuerst nur das Propeller-Tool unter 
Windows.

Um mal wieder an sich selbst zu erfahren wie das ist wenn man sich in 
etwas ungewohntes einarbeiten müsste kannst Du dir ja mal die Specs vom 
Propeller-Chip durchlesen. Das Konzept ist "ganz anders"
Der Chip ist superflexibel 1-6x Uart oder 1-6x I2C oder 1-6x SPI  oder 
onewire ganz wie es beliebt. Aber eben so "anders" dass es dir erst mal 
schwer fallen wird dich darauf einzulassen. Auch wenn ich die sage 
Superteil
KEINERLEI Probleme mit Interruptprogrammierung.

Und trotzdem funktioniert darauf alles supergut
hier mal ein VGA-Demo:
https://www.youtube.com/watch?v=6gEMKYnUADE

viele Grüße

Stefan Ludwig

von (prx) A. K. (prx)


Lesenswert?

Stefan L. schrieb:
> Um mal wieder an sich selbst zu erfahren wie das ist wenn man sich in
> etwas ungewohntes einarbeiten müsste kannst Du dir ja mal die Specs vom
> Propeller-Chip durchlesen. Das Konzept ist "ganz anders"

Yep. Gehört jedoch in die Kategorie "interessant, aber ...". Denn wenn 
der zu klein wird, dann stehst du dumm da.

Deutlich besser sieht das bei XMOS aus. Leidlich verwandtes Konzept, 
aber geschickter gebaut und über Vernetzung skalierbar. Der Designer 
hatte seine Fehler schon bei den Transputern gemacht, und wusste daher, 
was nicht geht.

von Stefan F. (Gast)


Lesenswert?

Den Propeller Chip hatte ich mal ausprobiert. Der ist wirklich sehr 
interessant - gerade weil er so exotisch iust,

von Stefan L. (stefanl38)


Lesenswert?

Hi an alle,

vielen herzlichen Dank für eure Hilfe.

Jetzt habe ich ein neues Problem aktuelle Firmware selbst läuft aber das 
Webserver-Script läuft nur auf der alten Firmware. Och manno das ist 
doch zum Mäusemelken.

Habe einen neuen Thread dafür aufgemacht
Beitrag "ESP8266 nodeMCU Lua Demo-Webserver läuft nicht unter aktueller Firmware"

viele Grüße

Stefan

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.