Forum: Mikrocontroller und Digitale Elektronik ESP32 Probleme beim Flashen neuer Firmware/ flash read error


von ESPimo (Gast)


Lesenswert?

N'abend die Herren,

ich bin mit dem AtMega8 gross geworden und habe mir mal ein neues 
Spielzeug zugelegt: Joy-it NodeMCU ESP32
Der Einfachheit halber wollte ich gerne mit Lua etwas rumspielen, da mir 
der ESPlorer sehr gut gefällt. Nun ja, dazu gehört auch, dass man sich 
seine eigene Firmware macht und diese runterspielt. Da scheitere ich 
bereits und ich weiss nicht so recht woran es liegt. Habe bereits im 
Internet gesucht, ich scheine nicht der einzige zu sein, aber irgend wie 
passen die Lösungsvorschläge nicht oder sie fruchten nicht.
Zu den Voraussetzungen:
1. Betriebssystem: Windows 10 (habe zwar ein Ubuntu, aber wollte erst 
mal mit Klicki-Bunti starten und nicht noch eine weitere Variable im 
System haben)
2. Firmware kompilieren: dazu nutze ich den Cloud Service 
https://nodemcu-build.com/ habe dort einmal eine Firmware mit den 
Voreinstellungen und einmal mit zusätzlich ADC builden lassen. Weder die 
Variante mit Float noch die mit Integer haben zum Ziel geführt
3. Firmware download: NodeMCU PyFlasher (als Windows applikation, nicht 
von Kommandozeile), mit folgenden VAriationen getestet: mit/ohne Flash 
erase, Quad und Dual I/O
4. Verschiedene USB Kabel. Es wird teilweise auch auf zu "schwache" 
Stromversorgung verwiesen. Aufgrund des sehr konstanten Fehlerbildes 
würde sehe ich das eher nicht.
5. Einen Hardwaredefekt halte ich auch für unwahrscheinlich, habe zwei 
ESP32, beide zeigen exakt das selbe Verhalten

Am Ende bekomme ich immer ein Has data verified, also scheint das alles 
i.O. nur dass dann folgende Meldungen per UART/in der ESPlorer Konsole 
repetitiv erscheint:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371

Es wird teilweise beschrieben, dass man erst ab Adresse 0x1000 flashen 
soll, andernorts wird erklärt, dass die mit Firmwares von o.g. Build 
Service nicht nötig ist. Eine entsprechende Option gibts in der 
Flashanwendung nicht (wohl nur per Kommandozeile, Python habe ich 
derzeit nicht installiert).

Bevor ich jetzt noch weitere Variation reinbringe: bei welchen der o.g. 
Punkte soll ich den Fehler weiter eingrenzen versuchen? Oder gibts noch 
weitere Fallstricke?

Gruss ESPimo

von ESPimo (Gast)


Lesenswert?

Oha, beim kopieren der Fehlermeldung ist die letzte Zeile verloren 
gegangen. Komplett siehts wie folgt aus:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

von Joachim (Gast)


Lesenswert?

Um das Problem einzugrenzen, würde ich an Deiner Stelle erst einmal 
probieren, eine andere Firmware zu flashen und eine anderes Software zum 
Flashen zu verwenden.

Konkret würde ich vorschlagen:
Flashe testweise einfach mal die "MicroPython"-Firmware für den ESP32, 
und halte Dich dabei exakt an diese Anleitung:
https://docs.micropython.org/en/latest/esp32/tutorial/intro.html#deploying-the-firmware

Nimm diesen fertigen Firmware-Build:
https://micropython.org/resources/firmware/esp32-idf3-20200902-v1.13.bin

...und verwende wie in der oben verlinkten Anleitung das offizielle Tool 
"esptool.py" zum Flashen der Firmware. Dafür wirst Du allerdings Python 
installieren müssen.

Wenn Du dann im esplorer immer noch den gleichen Fehler bekommst, dürfte 
das Problem irgendwo auf Hardware-Seite liegen. Falls es dann hingegen 
nicht mehr auftritt, auf Software-Seite - dann kannst Du versuchen, 
nacheinander durch Austauschen des Firmware-Binaries und des Flash-Tools 
den Fehler weiter einzugrenzen.

Achja, nur um sicher zu gehen: An dem Board ist bislang ausschliesslich 
das USB-Kabel angeschlossen, sonst nix? Es ist nicht irgendwo 
aufgesteckt oder sonst irgendwas angeschlossen, was für Probleme sorgen 
könnte?

von ESPimo (Gast)


Lesenswert?

Danke Joachim, bin schon einen Schritt weiter...

Joachim schrieb:
> Konkret würde ich vorschlagen:
> Flashe testweise einfach mal die "MicroPython"-Firmware für den ESP32,
> und halte Dich dabei exakt an diese Anleitung:
> 
https://docs.micropython.org/en/latest/esp32/tutorial/intro.html#deploying-the-firmware
>
> Nimm diesen fertigen Firmware-Build:
> https://micropython.org/resources/firmware/esp32-idf3-20200902-v1.13.bin
>
> ...und verwende wie in der oben verlinkten Anleitung das offizielle Tool
> "esptool.py" zum Flashen der Firmware. Dafür wirst Du allerdings Python
> installieren müssen.

Das funktioniert tadellos. Ich kann z.B. ADC Werte zurücklesen. Ich 
schliesse deshalb mal folgende Probleme aus: 1 (Windows), 3 (Firmware 
download), 4 und 5 (Hardware...)

Das Binary vom cloud service scheint nicht zu passen, ich habe es 
ebenfalls mit dem Python Skript heruntergeschrieben, aber ohne Erfolg 
(wieder mit vielen verschiedenen Einstellungen getestet...)

Kann mir jemand mal ein funktionierendes Binary mit NodeMCU zum Testen 
zukommen lassen? Hat jemand erfolgreich mit den Cloud Builder 
https://nodemcu.readthedocs.io/en/master/build/#cloud-build-service ein 
Binary erstellt? Gibt's da etwas bestimmtes einzustellen oder geht es 
mit den Voreingestellten Optionen?
Andernfalls müsste ich dann doch mal eines selber builden.

von ESPimo (Gast)


Lesenswert?

Hab das Problem gefunden. Im eigentlichen Sinn bin ich es...
Die Lösung ist ganz einfach, vielleicht stolpert sonst noch jemand über 
diesen Thread und erspart sich damit stundenlanges suchen:
im Cloud Build Service muss man (natürlich?) "dev-esp32 *BETA*" 
auswählen. Ich habe mich vom roten BETA in die Irre führen lassen und 
habe "master" ausgewählt, wollte ja eine stabile Variante bekommen. Dass 
die offensichtlich nur für den ESP8266 brauchbar ist, ist auf den ersten 
Blick nicht ersichtlich. (Auf der ganzen Seite steht nirgends 
ESP8266...).
Ansosnten funktioniert alles tatsächlich wie in 
https://nodemcu.readthedocs.io/en/master/getting-started/ (und folgende) 
beschrieben, man braucht also nicht Python zu installieren um die 
Firmware runter zu laden, das geht auch mit dem dort verlinkten EXE.

Auf der anderen Seite hat mir die Python Firmware auch ganz gut 
gefallen. Muss mal schauen mit ob ich jetzt mit Lua oder Python 
weitermache...

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.