Hallo,
ich bin ziemlicher Elektronik und µC Neuling und würde gerne eine
Steuerung für meine LED-Beleuchtung mit einem ESP8266-Modul umsetzten.
Dazu habe ich mir das ESP-12F Board besorgt und auf eine kleine Platine
gelötet, um ordentlich an die Pins ranzukommen.
Ich habe dann den ESP mit meinen USB-Seriell-Adapter verbunden, aber
(warum auch immer) "verschwindet" der Wandler, sobald man den ESP
anschließt. Da das auch bei meinem Arduino Pro Mini passiert ist,
vermute ich, dass der Wandler irgendwie kaputt ist.
Also nen Arduino Uno geschnappt und Reset mit GND verbunden, um nur den
USB-Seriell-Chip zu nutzen. Dann habe das ESP-12F-Board folgendermaßen
angeschlossen, um in den "Anwendungsmodus" zu kommen:
ESP | Arduino
------|--------
RST | 3V3
GPIO0 | 3V3
EN | 3V3
GPIO15| GND
VCC | 3V3
GND | GND
TXD0 | RX (Pin 0)
RXD0 | TX (Pin 1) (über Spannungsteiler)
Wenn ich dann den Arduino an den PC anschließe, blinkt die LED des ESP
einmal kurz, die TX Led des Arduinos blinkt auch ca 5 Mal. Der PC findet
ein neues WLAN namens "AI-THINKER", wenn man sich einwählt und die
Gateway-IP im Browser aufruft, passiert nichts. Wenn ich sie jedoch
anpinge, kommt der Ping zurück.
Wenn ich nun mit dem Tool ESPlorer (https://esp8266.ru/esplorer/) eine
serielle Verbindung zum ESP aufbauen will, kann bei allen Baudraten
keine Verbindung aufgebaut werden.
Da der ESP (soweit ich informiert bin :) ) bei der normalen AT-Firmware
nicht automatisch einen AP erstellen sollte, ist wahrscheinlich eine
andere drauf. Also erstmal die originale Firmware flashen.
Dazu bin ich nach der Anleitung von heise mit esptool für Linux
(http://heise.de/-3042776) vorgegangen und hab den ESP wie oben
angeschlossen, nur diesmal GPIO0 mit GND verbunden. Diesmal blinkt die
TX-Led am Arduino nur einmal.
Wenn das esptool zum Flashen gestatet wurde, hat die TX-Led ein paar Mal
geblinkt, dann wurde das Flashen abgebrochen:
1
esptool.py v1.3-dev
2
Connecting...
3
4
A fatal error occurred: Failed to connect to ESP8266
In der Dokumentation des ESP12F
(https://docs.google.com/document/d/1B06YzToSKxJ-tA1-AaTqacpzbxyexaV7Ick-ZtmvQj8/edit)
steht, man solle zusätzlich GPIO2 auf high legen, was jedoch keinen
Unterschied macht.
Gut, jetzt meine Frage dazu: wie bekomme ich das jetzt zum Laufen? Ich
hätte erstmal gerne die AT-Firmware.
Schonmal vielen Dank im Vorraus!
Hallo,
Tim R. schrieb:> Ich habe dann den ESP mit meinen USB-Seriell-Adapter verbunden, aber> (warum auch immer) "verschwindet" der Wandler, sobald man den ESP> anschließt. Da das auch bei meinem Arduino Pro Mini passiert ist,> vermute ich, dass der Wandler irgendwie kaputt ist.
Der ESP8266 will ca. 90mA mit Spitzen bis 350mA.
Die muß die Stromversorgung liefern, da ist er sensibel. Ein 100µ Elko
an den Spannungsanschlüssen entschärft das Problem mit den Spitzen
etwas.
USB-TTL-Adpter mit den üblichen ICs (FTDI, CH340, CP2102) können den
Strom nicht liefern.
Ein eigener 3,3V-Regler ist also Pflicht.
Zu Programmieren: Taster an GPIO0 und Reset des ESP gegen GND.
Bei ESP12 muß außerdem GPIO15 über 10k fest an GND.
Zum Programmieren: GPIO0-Taster festhalten, Reset-Taster kurz drücken,
LED auf dem ESP blinkt auf jetzt ist er im Programmiermode und man kann
den GPIO0-Taster wieder loslassen.
Zur Firmware kann ich wenig sagen, ich programmeire dei ESP8266 mit
eigener Firmware aus der Arduino-IDE heraus.
Für erste Experimente empfiehlt sich ein NodeMCU-Board. Damit ist
Stromversorung geklärt, die Taster sind vorhanden und die Reset-Logik
kann ohne Tasterbetätigung auch von einigen Programmiertools selbst
erledigt werden.
Gruß aus Berlin
Michael
> Der PC findet ein neues WLAN namens "AI-THINKER", wenn man sich> einwählt und die Gateway-IP im Browser aufruft, passiert nichts.
Ich hatte unter Windows 10 beobachtet, dass Windows nach dem
Verbindungsaufbau testet, ob das Internet erreichbar ist. Wenn nicht,
trennt es die Verbindung wieder und wechselt zu einem anderen
verfügbaren Netz-Zugang.
Workaround: Alle anderen Netzzugänge löschen. Oder ein Smartphone
nehmen.
Bist du Dir denn sicher, dass die Firmware deines ESP Moduls einen
Webserver enthält, so dass der Aufruf mittels Webbrowser überhaupt einen
Sinn ergibt?
Hallo,
vielen Dank für die schnellen Antworten! Werde das mit den Tastern mal
porbieren. Dazu noch ein paar Fragen:
Michael U. schrieb:> Zu Programmieren: Taster an GPIO0 und Reset des ESP gegen GND.
Brauche ich da auch Pull-Ups auf 3,3V?
Michael U. schrieb:> Bei ESP12 muß außerdem GPIO15 über 10k fest an GND.
Müssen da 10k hin oder kann ich das auch einfach verbinden?
Stefan U. schrieb:> Ich hatte unter Windows 10 beobachtet, dass Windows nach dem> Verbindungsaufbau testet, ob das Internet erreichbar ist. Wenn nicht,> trennt es die Verbindung wieder und wechselt zu einem anderen> verfügbaren Netz-Zugang.
Da gibts noch nen viel einfachen Workaround: Kein Windows nutzen :)
Stefan U. schrieb:> Bist du Dir denn sicher, dass die Firmware deines ESP Moduls einen> Webserver enthält, so dass der Aufruf mittels Webbrowser überhaupt einen> Sinn ergibt?
Das ist ja genau das Problem: Ich hab keine Ahnung, was die Firmware da
drauf macht...
Viele Grüße
Michael U. schrieb:> USB-TTL-Adpter mit den üblichen ICs (FTDI, CH340, CP2102) können den> Strom nicht liefern.
Ich hab genau gegenteilige Erfahrungen gemacht. Mein ESP-12F hängt nur
an einem USB-TTL Adapter mit CH340 und er läuft einwandfrei (inkl. Wlan)
zusammen mit einem 100uF Kondensator (+ üblicher 100nF). So betreibe ich
ihn (https://www.mikrocontroller.net/attachment/311938/Schaltplan.PNG
[22uF durch 100 uF ersetzen]).
GPIO0 mit GND verbinden, resetten, dann müsste der ESP im
Programmiermodus sein.
Hallo,
nochmal danke für die Antworten.
Ich habe jetzt das große Netzteil ausgepackt und Michaels Taster-Lösung
umgesetzt. Das in den Programmiermodus booten funktioniert auch, das
sieht man, weil er keinen AP meht stellt.
Das große Problem ist aber immer noch, dass ich weder im
Programmiermodus noch im normalen Modus eine serielle Verbindung
hinbekomme. (Weder per USB-Seriell-Adapter noch per Arduino)
Woran könnte das liegen?
Habe schnell den Schaltplan erstellt und angehängt.
Viele Grüße
Hallo,
PullUp an Reset und GPIO0 sind intern aktiv, externe sind nicht zwingend
nötig. Natürlich sollte man dann nicht gerade 1m Kabel zu den Tastern
haben, die internen sind recht hochohmig.
10k am GPIO15 sind nicht zwingend. Allerdings kann der ESP Pins beim
Booten oder im Betrieb durchaus mal auf Ausgang schalten und bei H-Pegel
ist es dann ungünstig.
Gruß aus Berlin
Michael
Eine serielle Verbindung besteht in einer Leitung zwischen Rx und Tx.
Und die hast du bereits hinbekommen.
Also stellt sich hier die Frage, warum du denkst, du hättest keine
Verbindung.
Ich vermute, dass du irgend etwas an das Modul sendest und dann nichts
oder etwas unerwartetes Empfängst. Wenn du etwas unerwartetes Empfängst,
kann nur die Baudrate oder die anderen Parameter (Datenbits, Parity)
falsch sein. Wenn du nichts empfängst, könnte es sich lohnen, mal ein
Oszilloskop oder LED's and die seriellen Leitungen anszuschließen. Dann
siehst du, ob die Leitungen wirklich gar nichts tun.
Soweit mir bekannt ist, werden die meisten ESP Module mit
vorinstallierter AT Firmware verkauft. Also würde ich zuerst AT
Kommandos testen. Wenn das klappt, dann würde ich mal manuell
ausprobieren, den Bootloader zu aktivieren und schauen, was der so
ausgibt (er gibt eine Menge Text aus).
Was die WLAN Verbindung angeht, würde ich hier erst etwas versuchen,
nachdem der serielle Teil klappt und du weisst, welche Firmware mit
welchen Funktionen installiert ist und wenn du sicher bist, dass sie
richtig konfiguriert ist.
Hallo,
nochmal danke an alle, dass mir hier so geholfen wird! :)
Also ich habe jetzt LEDs an die seriellen Leitungen angeschlossen.
Das erste das auffält: bei gleicher LED und gleichem Widerstand leuchtet
die LED vom ESP zum Wandler viel heller. Sollte das so sein?
Nächstes: Wenn ich die Kabel aus dem Wandler ziehe, ändert sich die
Helligkeit der jeweiligen LED. Gleiches passiert, wenn ich das Kabel am
TX des ESP ziehe.
Wenn ich aber das Kabel aus dem Rx des ESP ziehe, bleibt die (dunkle)
LED genau so.
Sollte das so sein?
Beim resetten blinkt eine LED, der ESP sendet. Was mich aber wundert:
wenn ich mit dem esptool flashen will, blinkt die selbe LED ganz leicht.
Die dunkle LED hat bei meinen Versuchen garnicht geblinkt etc.
Für mich ergibt das überhaupt keinen Sinn...
Hat jemand eine Idee?
Werde nochmal die Platine durchmessen, aber das habe ich eigentlich
schon...
> leuchtet die LED vom ESP zum Wandler viel heller.> Sollte das so sein?
Eihgentlich nicht. Es sei, der Wandler kann nicht genug Strom für die
LED liefern. Verusche es mal mit 1k Ohm (~1mA) das müsste jedes IC
schaffen.
> Wenn ich die Kabel aus dem Wandler ziehe, ändert sich die> Helligkeit der jeweiligen LED.
Ich glaube, du hast Rx und Tx vertauscht.
Tim R. schrieb:> Die dunkle LED hat bei meinen Versuchen garnicht geblinkt etc.>> Für mich ergibt das überhaupt keinen Sinn...
Hast du RX->TX und TX->RX (also gekreuzt) verbunden?
Wenn nicht, hast du auf der TX-Leitung einen Kurzschluss, und dein
USB-Wandler kämpft gegen den ESP, während auf der RX-Leitung nur Pullups
(schwaches leuchten) aktiv sind.
Hallo,
die ESP8266 melden sich an der seriellen generell nach Reset mit der
Ausgabe des Bootloaders. Die Baudrate ist 74880 Baud (warum auch
immer...).
Sieht dann etwa so aus:
1
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
2
3
load 0x4010f000, len 1384, room 16
4
tail 8
5
chksum 0x2d
6
csum 0x2d
7
v4022eaa8
8
~ld
Wenn also TX des ESP an RX des TTL-USB-Konverters richtig ist, empfängt
ein Terminalprogramm diese Ausgaben.
Wenn das Terminalprogramm auf 115200 steht, sieht man zumindest
Datenmüll nach jedem Reset.
Das meldet jeder ESP nach Rest, egal, ob oder welche Anwenderfirmware
drauf ist.
Der ESP8266 hat keine 5V-toleranten GPIO! Ein USB-TTL-Adapter sollte
also mit 3,3V-Pegeln arbeiten. Ein 5V AVR kommt mit den 3,3V vom ESP
klar (TX-ESP - > RX-AVR), für den RX des ESP muß man da einen
Pegelwandler bemühen, im einfachsten Fall ein Spannungsteiler (RX-ESP
über 2,2k an GND, RX-ESP über 1,6k an TX-AVR z. B.). Den Teiler nicht zu
hochohmig, sonst gibt es Probleme bei höheren Baudraten.
Gruß aus Berlin
Michael
> Wie sollten sich die LEDs eigentlich verhalten?
Nach dem Reset flackert die Tx LED (aus Sicht des ESP Moduls), wegen den
Meldungen des Bootloaders.
Die Rx Led flackert, wenn der Computer etwas an das ESP Modul sendet.
Hallo,
Planlos schrieb:> Hast du RX->TX und TX->RX (also gekreuzt) verbunden?
Exakt, das habe ich. Aber das ist wohl auch das Problem. Mein Wandler
(aus Fernost: https://www.aliexpress.com/item/a/32524218818.html)
scheint falsch beschriftet zu sein. Meine Vermutung: TX auf dem Wandler
bedeutet nicht, dass das der "Sender" des Wandlers ist, sondern mit dem
"Sender" verbunden sein muss.
Gut, wenn ich jetzt TX -> TX und RX -> RX anschließe, leuchten schonmal
beide LEDs gleich hell.
Dann in der Arduino IDE den seriellen Monitor geöffnet und auf 115200
Baud gestellt, nach dem Reset kommt:
1
[irgendwelcher Müll...]
2
3
Ai-Thinker Technology Co. Ltd.
4
5
ready
Wenn ich auf 74880 Baud einstelle, kommt nur irgendwelcher Müll und
keine Ausgabe des Bootloaders.
Wenn ich "AT" oder z.B. "AT+GMR" auf 115200 Baud sende, passiert nichts.
Sendet man eine ziemlich langen Text, blinkt die entsprechende LED ganz
kurz, es kommt aber keine Antwort.
Dann gäbe es noch die Einstellung für das Zeilenende im seriellen
Monitor der Arduino IDE, jedoch habe ich da alle durchprobiert, das hat
keinen Unterschied gemacht.
Die Idee war dann, den ESP mit dem esptool zu flashen, dabei blinkt zwar
eine LED leicht, aber es kam aber der gleiche Fehler wie bisher.
Woran kann das noch liegen?
Nochmal vielen Dank an alle, die mir hier helfen :)
Du kannst mit dem ESPTool nichts mit anfangen, da
du eine Firmware für den Arduino brauchst.
Das ESPTool ist für in LUA zu programmieren.
Ich weis nicht ob es was mit der ARDUINO Software
anfangen kann. Da mußt du schon in deiner Arduino Software
nachschauen wie das da geht.
Ist überhaupt schon einmal eine Firmware drauf geschrieben
worden von dir ?
Wenn nein dann mußt du die Firmware für Arduino zuerst
einmal drauf flashen damit du damit arbeiten kannst.
Sonst ist eine Firmware drauf, die in LUA programmiert werden
kann, aber ist nicht für dein Arduino geeignet.
Hallo,
das Problem mit den BEschriftungen kenne ich auch, speziell meine
chinesischen CP2102-Module weichen da auch ab.
Es gibt verschiedene Versionen der AI-Thinker-Firmware.
Einige wollen nur das Kommando, einige CR am Ende oder NL oder beides.
Da hilft nur probieren, worauf er antwortet...
Gruß aus Berlin
Michael
Hallo,
Michael U. schrieb:> Da hilft nur probieren, worauf er antwortet...
Habe ich. Und es kam gar keine Antwort.
Kann es sein, dass es auf dem "Kanal" vom Wandler zum ESP noch
irgendwelche Störungen gibt? (Aber die LED blinkt ja, wenn etwas
gesendet wird)
Stefan schrieb:> Du kannst mit dem ESPTool nichts mit anfangen, da> du eine Firmware für den Arduino brauchst.
Ja, aber ich möchte (zum Testen) die AT-Firmware flashen (Link zu heise
s.o.).
Noch eine generelle Frage: Wenn ich den ESP mit Arduino programmiere,
brauche ich dann (wie Stefan sagt) eine spezielle Firmware auf dem ESP
oder wird jedes mal aus dem Programm eine Firmware kompiliert, die dann
geflasht wird? (Hoffe, man kann die Frage verstehen :) )
Nochmal vielen Dank!
> Wenn ich "AT" oder z.B. "AT+GMR" auf 115200 Baud sende, passiert nichts.> Woran kann das noch liegen?
Möglicherweise ist keine AT Firmware installiert. Möglicherweise ist gar
keine Firmware installiert, dann siesht du nur die Meldung vom
Bootloader, die du zitiert hast.
> ich möchte (zum Testen) die AT-Firmware flashen
Versuch das mal mit dem esptool.py (das ist nicht das "originale"
esptool). mit dem originalen tool kam ich auch nicht zurecht.
Tim R. schrieb:> Noch eine generelle Frage: Wenn ich den ESP mit Arduino programmiere,> brauche ich dann (wie Stefan sagt) eine spezielle Firmware auf dem ESP> oder wird jedes mal aus dem Programm eine Firmware kompiliert, die dann> geflasht wird? (Hoffe, man kann die Frage verstehen :) )
Nein, die Arduino-IDE erzeugt aus deinem "Sketch" bei jedem Upload eine
komplette "Firmware" mit allem Drum und Dran. Was auch heisst, dass
alles Vorhandene auf dem ESP-Modul natürlich überschrieben wird.
Stefan U. schrieb:> Versuch das mal mit dem esptool.py (das ist nicht das "originale"> esptool). mit dem originalen tool kam ich auch nicht zurecht.
meine ersten Flash-Versuche - auch AT-Software - hatte ich hiermit
gemacht:
https://github.com/nodemcu/nodemcu-flasher
Bin dann aber zum offiziellen "ESPFlashDownloadTool" gewechselt, da hat
man alles Wesentliche auf einer "Seite".
Ansonsten hatte ich die Versuche, was Sinnvolles mit der AT-Firmware
anzufangen, irgendwann eingestellt - jede Version verhielt sich anders,
sodass eine "robuste" Gestaltung der Gegenseite für mich ziemlich mühsam
war.
Dazu hatte ich dann auch noch Probleme, passende Terminalprogramme zu
finden, die die Zeilenendschaltungen so hinbekamen, dass die AT-Fw
zufrieden war. Witzigerweise klappte der Arduino-IDE-Serialmonitor
immer :-)
Hallo,
ich habe jetzt nochmal mit dem NodeMCU-Flasher rumprobiert, es geht aber
überhaupt nicht.
Es läuft ewig, aber es passiert einfach nichts.
Die LED PC -> ESP blinkt dauerhaft, in die andere Richtung passiert
nichts.
Hab Screenshots von den Einstellungen angehängt. Passt das soweit?
Die Firmware ist diese:
http://bbs.espressif.com/download/file.php?id=250
Vielen Dank!
Lass das Programm doch mal mit den standart Werten laufen.
Wenn das neu installiert wird, dann kannst du die
Firmware Node MCU direkt auf dein Modul übertragen.
Es hat ja eine standart Firmware schon mit drin.
Also keine Firmware auswählen, sondern die nehmen was
das Programm mit sich bringt. Wenn das schon nicht geht,
dann liegt es an deinem USB Wandler. Kauf dir einen
vernünftigen oder nimm direkt die Firmware für den Arduino und
flashe auch damit die Firmware die dafür nötig ist. Das alles
sollte in der Arduino Umgebung gehen.
Stefan schrieb:> Lass das Programm doch mal mit den standart Werten laufen.
Geht auch nicht.
Stefan schrieb:> Also keine Firmware auswählen, sondern die nehmen was> das Programm mit sich bringt.
Das auch nicht.
Stefan schrieb:> nimm direkt die Firmware für den Arduino und> flashe auch damit die Firmware die dafür nötig ist. Das alles> sollte in der Arduino Umgebung gehen.
Mit den Standardeinstellungen kommt dabei:
Tim R. schrieb:> warning: espcomm_sync failed
ist das gleiche wie beim NodeMCUFlasher ("Begin find ESP...." - ohne
"Found") - offenbar gelingt keine Kommunikation über "COM4".
Spätestens hier lautet der Standardspruch in diesem Forum "wir wollen
Fotos sehen" (vom Aufbau) ;-)
Stefan U. schrieb:> Mach mal einen 100µF Elko an VCC/GND nahe zum ESP Modul.
Habe ich. Aber bringt mich auch nicht weiter.
Aber eine andere Sache ist mir aufgefallen: Wenn ich den NodeMCUFlasher
aufmache und flashe, blinkt die LED PC --> ESP. Das passt soweit auch.
Wenn ich aber (während der Flasher läuft) den Reset-Taster gedückt
halte, wird die LED ESP --> PC zwar dunkler, fängt aber auch an, im
gleichen Takt zu blinken.
Stefan schrieb:> Wenn das schon nicht geht,> dann liegt es an deinem USB Wandler.
Kann das die Erklärung sein? Wenn ja, wie kann ich den Wandler testen?
Nochmal vielen Dank allen!
Tim R. schrieb:> Kann das die Erklärung sein? Wenn ja, wie kann ich den Wandler testen?
vermutlich erstmal der einfachste Test: Wandler vom ESP abstecken, RX
und TX verbinden, beliebiges Terminalprogramm nehmen, lokales Echo
ausschalten, Tippen - dann sollte die Tipperei sichtbar sein, d.h.
raus/rein am Wandler täte es zumindest...
> wird die LED ESP --> PC zwar dunkler, fängt aber auch an,> im gleichen Takt zu blinken.
Das ist komisch. Das sollte nicht passieren. Mach mal den test, den Jan
L empfohlen hat, dann sehen wir weiter.
Hallo,
ich habe den Wandler wie von Jan beschrieben getestet, bin aber jetzt
noch ratloser als davor. Denn der Wandler funktioniert, und zwar auch
bei größeren Datenmengen und bei allen Baudraten.
Dann habe ich mein ESP-Breakout nochmal komplett neu verkabelt, was aber
auch nicht geholfen hat.
Einzig (kleine) neue Erkenntnis: wenn ich im Programmiermodus boote,
sendet der ESP irgendwas, das auf allen Baudraten Schrott ist.
Ich bin am Rande der Verzweiflung und hätte nicht gedacht, dass so ein
kleines Teil so frustrierend sein kann...
der NodeMCU Flasher sowie viele andere gehen davon aus, dass gpio0 mit
DTR und RST mit RTS verbunden sind, das kurze Flackern das du beim
Programmierversuch siehst sind die Versuche den ESP über die o.g.
Leitungen in den Programmiermodus zu versetzen.
Ich verwende - nach Selektion mehrerer Konverter - den CP2102 mit
680µ/6V über den 3.3V Ausgang sowohl zum Programmieren als auch für
"Probeläufe" (DTR/CTS muß abgetrennt werden für Debugkonsole).
Hallo,
nochmal vielen Dank für die Antwort
G. H. schrieb:> der NodeMCU Flasher sowie viele andere gehen davon aus, dass gpio0> mit DTR und RST mit RTS verbunden sind
Mein Problem: Was genau ist DTR und RTS?
Sollten das Pins am Wandler sein? Mein Wandler hat aber neben
Spannungsversorgung und TX/RX nur einen RST-Pin.
Viele Grüße!
Mir ist grade eine Idee gekommen: Würde der Flasher funktionieren, wenn
ich den RST des Wandlers mit dem RST des ESP verbinden würde und dabei
GPIP0 mit GND?
So hat das zum programmieren auszusehen:
https://raw.githubusercontent.com/esp8266/Arduino/master/doc/ESP_to_serial.png
Für den Normalbetrieb, trennst du dann DTR und RTS vom ESP
Und auch dein Adapter hat DTR und RTS!
Nur vielleicht nicht raus geführt... da muss dann ein dünnes Käbelchen
an die Beine des SMD gelötet werden
Arduino F. schrieb:> So hat das zum programmieren auszusehen:> https://raw.githubusercontent.com/esp8266/Arduino/master/doc/ESP_to_serial.png>> Für den Normalbetrieb, trennst du dann DTR und RTS vom ESP
Richtig, wobei es genauso funktioniert, wenn man statt RST vom ESP CH_PD
vom ESP verwendet.
Ich mach mir die 3,3V mit einem Recom Schaltregler aus den 5V vom USB.
So funktioniert das direkt am USB ohne Netzteil.
Tim R. schrieb:> Entspricht der mit "RST" beschriftete Pin dem RTS im Schaltplan?
Eher nicht. Auch die 5V USB sind nicht rausgeführt und die 3,3V dürften
zu schwach für den ESP sein. Dieser USB-seriell Wandler ist also
schlecht geeignet.
MfG Klaus
Tim R. schrieb:> Danke!>> Entspricht der mit "RST" beschriftete Pin dem RTS im Schaltplan?
Könnte natürlich schon sein, dass die Hersteller des USB-UART-Wandlers
das einfach falsch beschriftet haben, und statt RTS RST hingeschrieben
haben.
Was mich allerdings ein wenig verwundert ist, dass auf den
USB-UART-Wandlern, die ich bislang kenne, eher DTR als RTS bequem am
seitlichen Pinheader herausgeführt" ist.
Falls an Deinem Wandler RTS und DTR nicht bequem an der Seite
herausgeführt sind, dann würde ich an Deiner Stelle ja überlegen, mir
einen anderen Wandler zu kaufen, bei dem das so ist.
Denn wenn eine dieser beiden Leitungen nicht verbunden ist, muss man
stattdessen irgendwelche Buttons einbauen und beim Flashen etc. immer
Knöpfchen drücken, worauf ich keine Lust hätte und was natürlich auch
immer eine potentielle Fehlerquelle ist.
Also, mein persönlicher Tipp, falls die paar Euro nicht allzu sehr
schmerzen, und Du nicht noch ewig verzweifeln willst:
Kauf Dir nen guten USB-UART-Wandler, bei dem DTR und RTS leicht
abgegriffen werden können, und der am besten auch zwischen 3.3 und 5V
umschaltbar ist.
Und evtl. auch gleich noch einen Ersatz für den ESP12, nur um
auszuschliessen, dass der nach all dem hin- und her vielleicht
tatsächlich bereits irgendwie beschädigt ist.
Und dann baue erst einmal 1:1 die Schaltung nach, die Arduino-Fanboy
gepostet hat. Dann muss es klappen.
Genau wegen solcher Probleme erscheint es mir mittlerweile ja übrigens
sinnvoller, die ersten Schritte mit dem ESP8266 mit so einem
NodeMCU-DevKit zu machen, wo ESP12 und USB-UART-Wandler bereits fertig
und definitiv funktionierend auf einer Platine vereint sind.
Ich kann bestätigen, dass die ersten Schritte mit ESP Modulen schwierig
wenn nicht gar frustrierend sind.
Einerseits sind sie elektrisch anspruchsvoller, als Hobbyelektroniker
gewohnt sind. Vor allem bei der Stromversorgung.
Dann gibt es zahlreiche Tools zu flashen, die alle ein bisschen anders
funktionieren. Man weiss als Anfänger gar nicht, welches man nun nehmen
soll, also probiert man sich durch.
Und dann kommt noch dazu, dass die Module in den Bootloader-Modus
versetzt werden müssen, was manche Programme bei richtiger Verkabelung
(die man erst herausfinden muss) automatisch tun, andere wiederum nicht
(da benutzt man Taster oder Drahtbrücken).
Und wenn man dann endlich die Firmware flashen kann, merkt man, dass der
Speicher zu klein ist, die Chip-Version zu alt oder dass die vorliegende
Firmware schlicht fehlerhaft ist.
Ich hatte mit meinem ESP Modul so viel Frust, dass ich es in den Müll
geworfen hatte, obwohl es am Ende funktionierte. Erst zwei Jahre später
(dieses Jahr) habe ich es erneut probiert. Ich bin zu dem Schluss
gekommen, dass ich meine Module mit der originalen vorinstallierten
AT-Firmware verwenden werde. Meine eigenen Programme lade ich lieber auf
einen seriel angeschlossenen µC.
Die AT-Fimware ist zwar auch zickig und jede Version ein bisschen
anders, aber damit kann ich leben. Die Fehlersuche gestaltet sich so
wesentlich einfacher.
Bitte versteht mich nicht falsch: Das soll nicht der Weisheit letzter
Schluss sein, es ist nur mein persönliches fazit.
Gut, vielen Dank.
Wäre sowas hier brauchbar: http://ebay.de/itm/a/222099549821 ?
Ach ja, nach Datenblatt (Anhang) hat der CH340 gar keinen Pin namens
RST, nur RTS.
Stefan U. schrieb:> Ich hatte mit meinem ESP Modul ... viel Frust,
So ging es mir zu Anfang auch.
Stefan U. schrieb:> Ich bin zu dem Schluss> gekommen, dass ich meine Module mit der originalen vorinstallierten> AT-Firmware verwenden werde.
Ich bin zu dem Schluss gekommen, dass ich meine Module mit Arduino
Programmen verwenden werde.
1. Viel Frust mit der AT-Firmware
2. Der ESP hat mehr Rechenpower, als alle Arduinos, welche ich da je
dran anschließen werde.
3. OTA Update (einmal, und dann nie wieder USB-Serial Adapter)
Wenn bei mir ein Arduino dran hängt, dann spielt er I2C Slave.
Wenn Du sowieso noch etwas kaufen willst, wie wäre es dann mit einem
WeMos (Nachbau)?
Für 6,xx Euro bei ebay.
Habe mir auch erst ESP einzeln gekauft. Der Rest ist eigentlich hier
auch vorhanden. Dann aber alles zusammen fummeln. Welcher Pin muss nach
was?
Den WeMos einfach nur angeschlossen. Läuft. AT Befehle gingen sofort.
Programmieren mit Arduino-Oberfläche einfach so. Kein Taster drücken.
Um in den ESP hinein zu kommen, meine Empfehlung.
Viele Grüße
Olaf
Hallo,
nochmal vielen Dank! Habe vor.meinem letzten Post die Seite nicht
aktualisiert und deswegen die letzten Posts nicht gesehen.
Also, um das ganze kurz zusammenzufassen: es ist normal, an den Teilen
zu verzweifeln, auch für Leute, die sich ein bisschen besser damit
auskennen.
Deshalb besser für den Anfang ein Board wie NodeMCU oder WeMos kaufen.
Denke, dass ich mir nach der ganzen Verzweiflung auch so ein Teil
zulegen.
Ich werde aber heute noch mit dem ESP rum probieren und mir die Pins,
die ich zum Programmieren brauche direkt am IC abgreifen.
Viele Grüße
Ja, ich denke das hast du so richtig zusammengefasst. Dieser Ebay
Artikel mit dem CH340 sieht gut aus, denn da sind offensichtlich alle
Pins herausgeführt, die ggf. von Interesse sein könnten.
Hallo,
ich wollte mich nochmal bei allen für die tatkräftige Unterstützung
bedanken!
Richard (r71) hat mir geschrieben (hoffe das ist in Ordnung, dass ich
zitiere):
> Eine Fehlerquelle bleibt: Ich habe so oft versucht das Modul zu flashen, das ich
es tatsächlich zerschossen habe.
> Danach habe ich Tage gebraucht um das herauszufinden und über Seriell nur Müll
erhalten. Dachte ich.
> Der Wandler war eigentlich OK.
Ich befürchte, dass ich das gleiche Problem hatte. Ich habe an den
zweiten ESP, den ich mitbestellt hatte, schnell Kabel rangelötet. An den
Wandler + Netzteil angeschlossen, und das Teil lief!
Die AT-Kommandos wurde ohne Probleme beantwortet, wahrscheinlich ist der
erste irgendwann beim Löten oder beim Flashen kaputt gegangen. Ach ja,
der Wandler geht auch!
Das nächste wäre die Programmierung mit Arduino IDE.
Welche Parameter brauche ich dafür? der ESP gibt beim Neustart folgendes
aus:
1
2nd boot version : 1.5
2
SPI Speed : 40MHz
3
SPI Mode : DIO
4
SPI Flash Size & Map: 32Mbit(512KB+512KB)
5
jump to run user1 @ 1000
Sind das die Parameter mit denen ich den ESP Programmieren muss?
In der Arduino IDE sehen die Einstellungen etwas anders aus!
> SPI Speed : 40MHz> SPI Mode : DIO
Geht.
Besser:
Flash frequency : 80MHz
Soweit mir bekannt können das alle verwendeten Flash Bausteine
Flash Mode : QIO
Falls du die beiden QIO Pins nicht anderweitig brauchst.
> SPI Flash Size & Map: 32Mbit(512KB+512KB)
Ungünstig!
Empfehlung:
Flash Size: 4MByte (1MB SPIFFS)
Das wird zu 1MB Programmspeicher (mehr geht nicht)
+ 1MB Filesystem
+ Platz für die EEPROM Emulation
+ Platz/Zwischenspeicher für OTA Updates
+ der Config Bereich steckt da auch noch drin
Tim R. schrieb:> Gut, welchen Wandler ist gut für die Arbeit mit dem ESP geeignet?
Ich verwende sowohl DLP-USB232M von DLP als auch UM232R von FTDI. Beide
sind nicht mehr ganz taufrisch und im Vergleich zu dem, was man sonst so
heute bekommt, sicher zu teuer. Ich hab halt ein paar davon.
Die Schaltung ist aber komplett dokumentiert, man kann also zusammen mit
dem Datenblatt genau sehen was an welchem Pin liegt und muß nicht
stundenlang mittels Try an Error da rumspielen. Es ist auch jeder Pin
herausgeführt, so das man z.B. die I/Os direkt auf 3,3V einstellen kann
und nicht noch mit Pegelwandlern rummachen muß.
Ich vermute aber, daß dir das nicht hilft und hab daher oben über diese
Module nichts gesagt.
MfG Klaus
Stefan U. schrieb:> Bitte versteht mich nicht falsch: Das soll nicht der Weisheit letzter> Schluss sein, es ist nur mein persönliches fazit.
Gar nicht, im Gegenteil, ich bin dir dankbar.
Habe jetzt auch schon ein Haufen von diesen Teilen und schon einiges
gesammelt, aber letztlich noch nicht den Kopf dafür gehabt. Ihr wisst ja
wieso.
Aber über Weihnachten wollte ich gern damit anfangen.
Da ich ja auch schon etwas älter bin und die Modem Zeiten noch kenne,
sollten mir die AT Kommandos entgegen kommen.
Diese Teile haben doch allesamt einen (oder verschiedene ?)
Mikrocontroller drauf.
Sollte man sich nicht darauf einschießen.
Gerade der neue 12er soll doch so sehr viel Potential haben.
Dann braucht man doch keinen anderen Controller mehr und hat zusätzlich
WLAN.
Ist das zu naiv gedacht?
F. F. schrieb:> Ist das zu naiv gedacht?
Nein!
Das Ding hat deutlich mehr Rechenpower/Kapazität als (fast) jeder AVR.
Und wenns mit Pins/ADCs knapp wird, hänge ich einen Arduino I2C Slave
dran.
Meist einen, oder mehrere, Pro Mini.
Hallo,
Arduino F. schrieb:> OTA Update (einmal, und dann nie wieder USB-Serial Adapter)
Heißt das, ich kann den ESP über WLAN programmieren (oder was bedeutet
OTA?)
Wenn ja, wie?
F. F. schrieb:> Gerade der neue 12er soll doch so sehr viel Potential haben.
Es ist immer der gleiche Prozessor, ob neu oder alt.
F. F. schrieb:> Dann braucht man doch keinen anderen Controller mehr und hat zusätzlich> WLAN.
Prinzipiell richtig, Rechenpower ist genug da.
Arduino F. schrieb:> Und wenns mit Pins/ADCs knapp wird, hänge ich einen Arduino I2C Slave> dran.
Das Problem liegt eher in der SW. Der Wifi Stack arbeitet kooperativ im
Hintergrund. Durch ein unkooperatives Programm ist der leicht
abzuschießen. Daher kann man keine zeitscharfen Sachen machen wie z.B.
eine Soft-PWM und dazu synchron den ADC auslesen. Oder wie hier:
e-d schrieb:> Max M. schrieb:>> Der ESP8266>> resettet sich regelmäßig ohne ersichtlichen Grund>> Beim esp8266 läuft Wifi auch im Hintergrund.> Bei längeren Abarbeitungszyklen schlägt da gerne mal reset zu, wenn> nicht durch Maßnahmen wie einfügen von yield() oder delay(0) der wdog> zurückgepfiffen wird..
Wenn man damit leben kann,
> braucht man doch keinen anderen Controller mehr und hat zusätzlich> WLAN.
MfG Klaus
Johannes S. schrieb:> Da muss doch noch eine Schaltung dazwischen
Sach das ja nicht meinen ESP Dingern!
Dann gibts aber einen!
Wenn man nicht automatisch im Programmiermodus landen will, dann macht
eine solche Schaltung vielleicht Sinn.
Johannes S. schrieb:> Man kann doch nicht einfach DTR mit GPIO0 und RTS mit Reset vom USB> Wandler mit dem ESP verbinden.
Doch, man kann.
Ich trenne die beiden Pins aber mit einem Schalter ab, wenn ich nur mit
dem Chip reden und nicht den Flash programmieren möchte. Der Grund ist,
daß mein Terminalprogramm DTR und RTS in den falschen Zustand bringt. Da
ich zu faul war, rauszukriegen, wie man RTS und DTR zusammen mit dem
Terminalprogramm richtig macht, nehme ich einfach einen zweipoligen
Schalter.
Wenn man es "richtig" machen will, müsste man RTS und DTR in der default
Einstellung entsprechend direkt oder invertiert an den ESP bringen.
Zusätzlich muß man dann aber esptool so umprogrammieren, daß es die
etwaigen Invertierungen brücksichtigt und sicherstellen, daß das
Terminalprogramm diese Leitungen in Ruhe läßt.
MfG Klaus
Klaus schrieb:> und sicherstellen, daß das> Terminalprogramm diese Leitungen in Ruhe läßt.
Soweit mir bisher bekannt, sollte das grundsätzlich gehen, aber Windows
spielt da nicht mit. Es zuckt bei jedem COM Open an den Leitungen rum.
Achja, bezüglich ESP Modul einfach programmieren:
Ich hab letzens mal versucht einen ESP-12 mit einem Wemos Mini zu
programmieren. Hat direkt geklappt.
Musste nur den (nicht herausgeführten) CH_PD Pin vom ESP-12 auf dem
Wemos mit GND verbinden und dann alle anderen für das programmieren
nötigen Pins (GND, 3v3, Tx, Rx, GPIO0, GPIO15 und Reset) 1 zu 1 mit dem
externen ESP Modul verbinden. Dann noch CH_PD auf dem zu
programmierenden Modul auf 3V3 und schon konnte ich das ESP Modul über
die Arduino IDE automatisch programmieren.
Meine einfache Erklärung wieso das klappt:
Durch das deaktivieren(CH_PD auf GND) werden die GPIO Pins hochohmige
Eingänge und der on-board ESP-12 wird für den "Wemos"(bzw. usb seriell
wandler) quasi unsichtbar.
Mit einem NodeMCU Dev Board müsste es sogar noch einfacher gehen, denn
da ist der CH_PD Pin direkt herausgeführt.
Einfacher geht wohl kaum. :)
Hallo,
es spielt eigentlich keine Rolle, daß einige Flash-Programme über
DTR/RTS die Steuerung machen können. Es gibt da auch mindestens 2
Varianten...
RX/TX/GND an den ESP, stabile 3,3V an den ESP, vorsichtshaleber eben
100µ dicht am ESP parallel.
CH_PD an 3,3V, Pin 15 über 10k an GND (ich würde mich nicht darauf
verlassen wollen, daß GPIO15 nicht vielleicht doch beim Booten des ESP
kurz Ausgang/High wird).
Tster an Reset und GPIO0. Das funktioneiert mit jeder Flash-Software
wenn man den passenden Moment erwischt um die Tasten zu drücken.
Beie Tasten festhalten, Start im Flashprogramm drücken und sofort Reset
loslassen. GPIO0 kann man kurz danch loslassen.
Das geht mit dem NoreMCU-Flasher oder dem Flash-Downloadttol und auch
aus der Arduino-IDE.
Der Zeitpunkt ist war etwas kritisch, aber nicht so, daß es wirklich
problematisch ist.
Ich hatte ein paar neuere ESP, die etwas senible reagierte, Abbruch
mitten beim Flashen mit seltsamen Fehlern usw.
Da halt dann eine andere Baudrate, prinzipiell gehen alle zwischen 128k
und 921k, der ESP passt sich da an und der CH340 kann die auch.
Allerdings kann es nicht jedes Terminalprogramm.
Die 74880 auch nicht, der Boot-Text sollte schon lesbar ankommen. Der
serielle Monitor der Arduini-IDE hatte damit bisher keine Probleme,
weder mit dem CH340 noch mit dem FTDI oder dem CP2102.
Gruß aus Berlin
Michael
Gruß aus Berlin
Michael
wenn man nur Rx/Tx/GND verbindet, kann man den ESP vorab in den
Programmiermodus bringen (reset während gpio0 low ist) und dann die
Flashsoftware starten.
Tim R. schrieb:> Entspricht der mit "RST" beschriftete Pin dem RTS im Schaltplan?
Ich gehe davon aus, dass RST für Reset steht. Der Anschluss ist
vermutlich mit PIN 13 des CH340 (DTR) verbunden und kann den Reset
auslösen, einen ProMini zu flashen.
Wo hast Du den her?