Forum: Mikrocontroller und Digitale Elektronik ESP8266 ESP-12S


von Quiddi Q. (quiddi)


Lesenswert?

Tag zusammen,

ich bekomme mit einem ESP-12S einfach den Upload nicht hin. Ich würde 
hier einfach mal gerne meinen Setup posten und von euch eine Meinung 
hören, ob es an der Hardware oder Software liegt.

Software:
Arch Linux mit Arduino 1.8.6 Entwicklungsumgebung
Board: NodeMCU1.0 und auch mit NodeMCU0.9 probiert, gleiches Resultat
Baudrate: 115200

Hardware:
- seperates 3,3V Netzteil, ich benutze NICHT die 3,3V vom TTL-Adapter
- USB/TTL Adapter
Meine Beschaltung sieht wie folgt aus:
TX-----------------RX(USB)
RX-----------------TX(USB)
VCC----------------+3,3V
GND----------------GND
CH_PD/EN-----------+3,3V
IO15---------------GND
IO0----------------GND

Hierzu noch ein paar Fragen:
1. Zwischen IO0 und GNG habe ich einen Taster gelegt. Die sollen ja 
während des Uploads gebrückt werden. Reicht es den Taster einmal zu 
drücken oder muss er während des ganzen Uploads gedrückt werden?
2. Gelegentlich finde ich Posts im Netz, welche IO15 auf GND ziehen und 
welche die IO15 offen lassen. Was macht diese Brücke, könnte es daran 
scheitern? Ich hatte die Brücke zwischen IO15 und GND in meinen 
Versuchen drinnen.

Als Fehlermeldung bekomme ich:
error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data

Schönen Gruß

von Pete K. (pete77)


Lesenswert?

Quiddi Q. schrieb:
> Als Fehlermeldung bekomme ich:
> error: failed reading byte
> warning: espcomm_send_command: can't receive slip payload data

Mit welchem Programm?

Das nodemcu Board hat doch einen USB Anschluss. Warum benutzt Du den 
nicht?

Wenn Du nur einen nackten ESP12 hast, dann spendiere noch >100µF 
zwischen VCC und GND.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Schau Dir mal meine Seite an , besonders die Absätze ab hier:

http://stefanfrings.de/esp8266/index.html#stability

Und hier:
http://stefanfrings.de/esp8266/index.html#arduinostart

Hast du das Board in ein Steckbrett gesteckt? Diese eignen sich nicht 
zur Stromversorgung und du solltest dann die Pins entfernen, an denen 
der Flash Speicher hängt, da die hohen Kapazitäten des Steckbrettes 
stören.

von Quiddi Q. (quiddi)


Lesenswert?

Danke für eure Antworten.

Pete K. schrieb:
> Quiddi Q. schrieb:
>> Als Fehlermeldung bekomme ich:
>> error: failed reading byte
>> warning: espcomm_send_command: can't receive slip payload data
>
> Mit welchem Programm?
Steht in meinem Eingangspost, Arduino Entwicklungsumgebung Version 1.8.6
>
> Das nodemcu Board hat doch einen USB Anschluss. Warum benutzt Du den
> nicht?
Ich verwende einen nackten ESP12, welchen ich an einen USB/TTL-Adapter 
verbunden habe mit der Beschaltung in meinem Eingangspost.
> Wenn Du nur einen nackten ESP12 hast, dann spendiere noch >100µF
> zwischen VCC und GND.

Stefan U. schrieb:
> Schau Dir mal meine Seite an , besonders die Absätze ab hier:
>
> http://stefanfrings.de/esp8266/index.html#stability
>
> Und hier:
> http://stefanfrings.de/esp8266/index.html#arduinostart
Danke für die zwei Links, werde ich mir anschauen.
> Hast du das Board in ein Steckbrett gesteckt? Diese eignen sich nicht
> zur Stromversorgung und du solltest dann die Pins entfernen, an denen
> der Flash Speicher hängt, da die hohen Kapazitäten des Steckbrettes
> stören.
Nein das Board ist nicht mit einem Steckbrett verbunden. Es sind alle 
Verbindungen gelötet. Und wie schon im Eingangspost erwähnt habe ich 
eine seperate Spannungsversorgung für den ESP12 und betreibe ihn nicht 
über die Spannungsversorgung des USB/TTL-Adapters.

von Joachim S. (oyo)


Lesenswert?

Quiddi Q. schrieb:
>> Das nodemcu Board hat doch einen USB Anschluss. Warum benutzt Du den
>> nicht?
> Ich verwende einen nackten ESP12, welchen ich an einen USB/TTL-Adapter
> verbunden habe mit der Beschaltung in meinem Eingangspost.

Im Eingangspost hast Du geschrieben, dass Du NodeMCU-Boards v1.0 bzw. 
v0.9 verwendest. Jetzt plötzlich ein nackter ESP12 - wie passt das 
zusammen, ich bin verwirrt?

von Joachim S. (oyo)


Lesenswert?

Ansonsten:
GPIO15 muss auf LOW liegen, am besten über einen Pulldown-Widerstand 
(z.B. 10k).
Zum Flashen muss GPIO0 ebenfalls auf LOW liegen. Es sollte nicht 
schaden, den Taster dauerhaft zu drücken, bis die Firmware erfolgreich 
geflasht ist - aber notwendig ist imho nur, dass GPIO0 im Moment des 
Reset auf LOW liegt.
GPIO2 muss weiterhin auf HIGH liegen. Wahrscheinlich ist es auch okay, 
GPIO2 einfach offen/unbeschaltet zu lassen, aber wenn Du auf Nummer 
sicher gehen willst, dann verbinde IO2 liegen über einen 
Pullup-Widerstand mit VCC.

Was Du irgendwie überhaupt nicht erwähnst, ist Deine Beschaltung für 
nRESET - da musst Du auch Schalter etc. anschliessen, sonst kann das 
Flashen so oder so nicht klappen.

Grundsätzlich würde ich übrigens empfehlen, auch nRESET und IO0 mit dem 
USB-UART-Adapter zu verbinden, dann kann man sich das dämliche 
den-richtigen-Taster-im-richtigen-Moment-Drücken komplett ersparen. 
Allerdings braucht man dann einen USB-UART-Adapter, der auch die DTR und 
RTS-Signale bereitstellt, und das tun viele USB-UART-Adapter leider 
nicht.

von Quiddi Q. (quiddi)


Lesenswert?

Joachim S. schrieb:
> Quiddi Q. schrieb:
>>> Das nodemcu Board hat doch einen USB Anschluss. Warum benutzt Du den
>>> nicht?
>> Ich verwende einen nackten ESP12, welchen ich an einen USB/TTL-Adapter
>> verbunden habe mit der Beschaltung in meinem Eingangspost.
>
> Im Eingangspost hast Du geschrieben, dass Du NodeMCU-Boards v1.0 bzw.
> v0.9 verwendest. Jetzt plötzlich ein nackter ESP12 - wie passt das
> zusammen, ich bin verwirrt?

Srr. das ist vll wirklich etwas undeutlich ausgedrückt. Ich hatte im 
Eingangspost bei Hardware USB/TTL-Adapter geschrieben. Hierbei meinte 
ich einen USB/TTL-Adapter, welcher 4 Pins hat, Betriebsspannung, Masse, 
TX und RX. Bei Software hatte ich geschrieben NodeMCU-Board, was soviel 
heißen soll, dass ich in der Arduino Entwicklungsumggebung den NodeMCU 
als Board ausgewählt habe.


Joachim S. schrieb:
> Ansonsten:
> GPIO15 muss auf LOW liegen, am besten über einen Pulldown-Widerstand
> (z.B. 10k).
> Zum Flashen muss GPIO0 ebenfalls auf LOW liegen. Es sollte nicht
> schaden, den Taster dauerhaft zu drücken, bis die Firmware erfolgreich
> geflasht ist - aber notwendig ist imho nur, dass GPIO0 im Moment des
> Reset auf LOW liegt.
> GPIO2 muss weiterhin auf HIGH liegen. Wahrscheinlich ist es auch okay,
> GPIO2 einfach offen/unbeschaltet zu lassen, aber wenn Du auf Nummer
> sicher gehen willst, dann verbinde IO2 liegen über einen
> Pullup-Widerstand mit VCC.
Danke!! Ich hatte hier im Netz Schaltungen gefunden, welche den IO2 
anschlossen und manche welche ihn nicht anschlossen.
> Was Du irgendwie überhaupt nicht erwähnst, ist Deine Beschaltung für
> nRESET - da musst Du auch Schalter etc. anschliessen, sonst kann das
> Flashen so oder so nicht klappen.
Srr den hatte ich natürlich vergessen zu erwähnen, am Reset hängt 
natürlich auch ein Taster.
> Grundsätzlich würde ich übrigens empfehlen, auch nRESET und IO0 mit dem
> USB-UART-Adapter zu verbinden, dann kann man sich das dämliche
> den-richtigen-Taster-im-richtigen-Moment-Drücken komplett ersparen.
> Allerdings braucht man dann einen USB-UART-Adapter, der auch die DTR und
> RTS-Signale bereitstellt, und das tun viele USB-UART-Adapter leider
> nicht.
Das ist mein Problem. Mein USB/TTL-Adapter hat nur RX und TX. Es hat nun 
geklappt. Ich möchte hier noch kurz für alle, welche nach mir kommen, 
kurz schreiben in welcher Reihenfolge man die Knöpfe drückt. Sobald die 
Arduino-Umgebung mit Kompelieren fertig ist, bitte den Reset- und 
Flashknopf drücken. Danach den Resetknopf sofort wieder loslassen. Den 
Flashknopf weiterhin drücken und nach ca. 1 Sek. wieder loslassen. Der 
Sketch sollten nun uploaden.

Hier eine Schlatung dazu:
https://cdn.instructables.com/FHW/O1G9/IYYSWSGM/FHWO1G9IYYSWSGM.LARGE.jpg

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.