Go Down

Topic: ESP8266: warning: espcomm_sync failed (Read 205 times) previous topic - next topic

Mattlock

Hallo zusammen.
Ich bin noch relativ neu in der Arduino-Welt, habe aber schon verschiedene Module zum funktionieren gebracht. Nun würde ich gerne einen LED-Streifen per Wlan konfigurieren können (farbe etc.). Dazu habe ich einen ESP8266 WiFi Chipsatz ESP-01 (schwarzes Modell) an einen Arduino Nano gehängt und anschliessend das Generic 8266 Module in der IDE installiert. Allerdings bekomme ich beim versuch einen Sketch auf das ESP8266 aufzuspielen einen Fehler:
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

Sitze nun schon seit vielen Stunden an dem Problem, Google wirft zwar viele Ergebnisse für diese Fehlermeldung aus, allerdings hat mir nichts geholfen, weshalb ich nun auf eure kompetente Hilfe hoffe.

Zum Setting:
Arduino IDE 1.8.5

Schaltplan:

RX - über Spannungswandler an Arduino Nano RX
TX - direkt an Arduino Nano TX
VCC - Extern an 3.3V
RST - Arduino Nano RST
GND - Extern GND
GPI0 - Per Schalter an Extern GND, bzw. für den Flashmodus ist die Verbidung aktiv
(Anbindung RX und TX auch schon über Kreuz versucht, gleiches fehlerhaftes Ergebnis)

Boardeinstellungen:

Board: Generic ESP8266 Module
Flash Mode: DIO
Flash Frequency 40 MHz
CPU Frequency: 80MHz
Flash Size: 4M (1M SPIFFS)
Reset Modus: ck
Upload Speed: 115200
Programmer: AVRISP mkll (wobei das soll ja keine rolle mehr spielen)
Habe schon verschiedene Einstellungen bei Flash Size, Reste Modus und Upload Speed versucht. Imer mit dem gleichen fehlerhaften Ergebnis.

Unter dem Link (https://github.com/esp8266/Arduino/blob/master/doc/faq/a01-espcomm_sync-failed.rst) habe ich einen Troubleshooter gefunden. Hab da versucht, soweit wie möglich der Anleitung zu folgen,

Auf dem Serial Monitor erhalte ich bei 74880 baud „ets Jan  8 2013,rst cause:2, boot mode:(1,7)". Boot Mode ist also im erwünschten "UART" Modus

Wenn ich Show verbose output during upload aktiviere, bekomme ich folgende Ausgabe:

Quote
esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
   setting board to ck
   setting baudrate from 115200 to 115200
   setting port from COM1 to COM3
   setting address from 0x00000000 to 0x00000000
   espcomm_upload_file
   espcomm_upload_mem
   setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
resetting board
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
An error occurred while uploading the sketch
resetting board
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
trying to connect
   flush start
   setting serial port timeouts to 1 ms
   setting serial port timeouts to 1000 ms
   flush complete
   espcomm_send_command: sending command header
   espcomm_send_command: sending command payload
   read 0, requested 1
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
Keine Ahnung was mir das Sagen soll, ausser dass mehrmals vergeblich versucht wird einen connect herzustellen.

combie

#1
Oct 12, 2017, 07:59 pm Last Edit: Oct 12, 2017, 08:00 pm by combie
Quote
Schaltplan:
So einfach wirds nicht werden!

Der Nano ist wenig geeignet, da du schlecht an RTS und DTR ran kommst!
Connect

Du könntest die beiden durch Taster emulieren.


[Bericht] ESP8266 tuning

Gibt bestimmt noch 1000 weitere Möglichkeiten.
"Freiheit, Gleichheit, Brüderlichkeit!"
Aber wie gelangen wir zu den Tätigkeitswörtern?
Quelle: Stanislaw Jerzy Lec

Mattlock

Ok, soweit ich das richtig interpretiere sind RTS und DTR dazu da, GPIO0 und RST des in der richtigen Reihenfolge mit HIGH und LOW zu versorgen. Somit müsste man  das händisch  auch hinbekommen, so wie das hier http://www.whatimade.today/esp8266-easiest-way-to-program-so-far/ (Kapitel "Writing a program to the ESP8266") beschrieben ist? Die Anbindung zu GPIO0 kann ich ja schon manuell steuern, somit müsste ich noch etwas für den RST bauen.

combie

#3
Oct 15, 2017, 11:41 pm Last Edit: Oct 15, 2017, 11:45 pm by combie
Ja.

Quote
somit müsste ich noch etwas für den RST bauen.
PowerUp ist auch ein Reset.
"Freiheit, Gleichheit, Brüderlichkeit!"
Aber wie gelangen wir zu den Tätigkeitswörtern?
Quelle: Stanislaw Jerzy Lec

Mattlock

PowerUp ist auch ein Reset.
Dann verstehe ich aber meinen Fehler wiederum nicht. Ich kann das ESP Modul getrennt vom Nano mit Strom versorgen. Nach dieser Anleitung müsste ja dann folgendes Vorgehen funktionieren:

1. ESP vom Strom getrennt
2. GPIO0 mit GND verbinden
3. ESP mit Strom versorgen
4. GPIO0 von GND trennen

Wenn ich so vorgehe, erhalte ich im SerialMonitor die Bestätigung vom ESP, dass im Boot Mode (1,7) sprich im UART Modus bin -> ich sollte also Software aufspielen können.

combie

Ja, müsste so passen.

Jetzt noch den ATMega des Nano in den Reset zwingen(runter nehmen kannste ihn ja nicht) und das mit den 3,3V korrekt abhandeln...
"Freiheit, Gleichheit, Brüderlichkeit!"
Aber wie gelangen wir zu den Tätigkeitswörtern?
Quelle: Stanislaw Jerzy Lec

Mattlock

also, habs jetzt nochmals probiert...

schaltplan wie im ersten post.
1. ESP vom Strom getrennt
2. GPIO0 mit GND verbinden
3. ESP mit Strom versorgen
4. Reset Button auf Nano drücken (Nano und ESP werden resetet) -> auf dem Serial Monitor erscheint die Boot Mode (1,7) Meldung
5. GPIO0 von GND trennen
6. Bare Minimum Sketch hochladen
Ergebnis: warning: espcomm_sync failed etc.
Das gleiche wenn ich schritt 5 auslasse.

Wenn ich die RST verbindung zwischen ESP und Nano trenne und wie folgt vorgehe:
1. ESP vom Strom getrennt
2. GPIO0 mit GND verbinden
3. ESP mit Strom versorgen
4. GPIO0 von GND trennen
5. Reset Button auf Nano drücken (Nano und ESP werden resetet) -> auf dem Serial Monitor erscheinen 20-30 Fragezeichen.
6. Bare Minimum Sketch hochladen
Ergebnis: warning: espcomm_sync failed etc.


3.3v Verbindung denke ich, ist richtig abgehandelt. Sprich 5v Netzteil versorgt Nano und über einen Spannungswandler die 3.3V des ESP. RX Datenverbindung wird ebenfalls über einen 5V<->3.3v DatenwandlerChip, (weiss gerade nicht wie die heissen) verbunden. LV wird mit 3.3v versorgt, HV mit den 5v und die GNDs irgendwo in ein GND zurückgespiessen (spielt ja keine Rolle wo). ESP TX ist direkt mit Nano TX verbunden.

Tommy56

Hast Du mal in Erwägung gezogen, dass der ESP8266 evtl. defekt ist?

Kaufe Dir einen WEMOS D1 mini pro oder einen NodeMCU, da hast Du die USB-Anbindung mit auf dem Modul und musst keine Verrenkungen machen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Mattlock

Denke nicht, dass er defekt ist. Wenn ich rx/tx auf die Digital Pin verbinde kann ich den ESP über die AT Befehle steuern und es erscheint auch im WIFI. Ist einfach etwas arg langsam so.

Den gedanken mit einem NodeMCU hatte ich in der tat auch schon, allerdings haben wir schon von dem Nano + ESP jeweils 5 Exemplare für das fertige Produkt gekauft. Und solange es theoretisch auch mit Nano + ESP funktionieren sollte, ist das für mich eher eine Notfall Lösung. Ansich hätte ich auch noch einen FDTI zum flashen (hab den nur gerade nicht bei mir), allerdings würde der Nano schlussendlich ins Produkt fix verlötet, und ich könnte dann zukünftig keine Softwareupdates aufs ESP aufspielen. Ausserdem ist so auch das Entwicklen/Testen nicht sehr einfach, wenn man bei einem Fehler immer wieder alles umlöten :)

combie

#9
Oct 16, 2017, 08:20 pm Last Edit: Oct 16, 2017, 08:22 pm by combie
Denke nicht, dass er defekt ist. Wenn ich rx/tx auf die Digital Pin verbinde kann ich den ESP über die AT Befehle steuern und es erscheint auch im WIFI. Ist einfach etwas arg langsam so.

Den gedanken mit einem NodeMCU hatte ich in der tat auch schon, allerdings haben wir schon von dem Nano + ESP jeweils 5 Exemplare für das fertige Produkt gekauft. Und solange es theoretisch auch mit Nano + ESP funktionieren sollte, ist das für mich eher eine Notfall Lösung. Ansich hätte ich auch noch einen FDTI zum flashen (hab den nur gerade nicht bei mir), allerdings würde der Nano schlussendlich ins Produkt fix verlötet, und ich könnte dann zukünftig keine Softwareupdates aufs ESP aufspielen. Ausserdem ist so auch das Entwicklen/Testen nicht sehr einfach, wenn man bei einem Fehler immer wieder alles umlöten :)
Jetzt wirds langsam klar, was du überhaupt willst....

Der Nano ist als Programmieradapter keine gute Wahl.
Aber, das sagte ich schon.
Begründet habe ich das auch.
U.A. musst du den ATMega328P im Reset halten, damit das programmieren überhaupt klappen kann. (dazu hast du bisher noch nichts gesagt, obwohl ich dich da schon mindestens 1 Mal drauf hingewiesen habe)

Die 3,3V des Nano/FTDI haben viel zu wenig Power, für den ESP.


Also zusammenfassend:
So ist das erstmal ein Irrweg!

------------------------------


Mein Vorschlag:

Du baust dir einen speziellen Programmieradapter für deine ESP.
Damit werden sie nur einmalig programmiert.
Alle weitere Updates erfolgen OTA.

Der Nano wird als I2C Slave angebunden.
Die Kernsoftware läuft komplett auf dem ESP.

Der Nano ist dann nicht viel mehr, als eine aktive Porterweiterung des ESP.
"Freiheit, Gleichheit, Brüderlichkeit!"
Aber wie gelangen wir zu den Tätigkeitswörtern?
Quelle: Stanislaw Jerzy Lec

Mattlock

U.A. musst du den ATMega328P im Reset halten, damit das programmieren überhaupt klappen kann. (dazu hast du bisher noch nichts gesagt, obwohl ich dich da schon mindestens 1 Mal drauf hingewiesen habe)
Und ich dachte, du meintest damit einfach , ich müsse den reste Button auf dem Nano drücken... wie würde man den ATMega328P richtig im Reset halten? So rein interessehalber...

Die 3,3V des Nano/FTDI haben viel zu wenig Power, für den ESP.
Das ist mir schon klar, darum ist der ESP auch nicht am 3.3v des Nano angeschlossen, sondern über eine externe Stromzufuhr. Sonst währe ich auch gar nicht soweit gekommen...

Aber gut, wenn das so ist, ist wohl ein NodeMCU mit integriertem WLAN doch die bessere Wahl. Einen eigenen Programmieradapter zu Programmieren, sowie die Updates später OTA auszuliefern ist mir dann doch etwas zu viel Aufwand resp. müsste ich mich erstmal wieder alle Infos zusammentragen. Aber danke für den Vorschlag.

Tommy56

#11
Oct 16, 2017, 09:14 pm Last Edit: Oct 16, 2017, 09:20 pm by Tommy56
Der "Programmieradapter" ist ein USB-Kabel mit Micro-USB-Stecker.

Damit brennst Du Dein Grundprogramm incl. OTA und evtl. incl. Debugverbindung drauf.
Alles andere erfolgt übers WLAN.

Ich habe das schon mal als Machbarkeitsstudie Debug mit Websocket und Debug über Telnet veröffentlicht.

Die Anbindung des UNO oder NANO als intelligente Porterweiterung zum ESP8266 habe ich hier beschrieben.

Gruß Tommy

Edit: OTA habe ich hier verwendet.
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

combie

Quote
Und ich dachte, du meintest damit einfach , ich müsse den reste Button auf dem Nano drücken... wie würde man den ATMega328P richtig im Reset halten? So rein interessehalber...
Eine Steckbrücke zwischen Reset und GND.
Z.B. auf dem ISP Stecker
"Freiheit, Gleichheit, Brüderlichkeit!"
Aber wie gelangen wir zu den Tätigkeitswörtern?
Quelle: Stanislaw Jerzy Lec

Go Up