Hallo! Ich habe ein ESP8266, aber ich bekomme es einfach nicht zum laufen. Das Empfangen von Daten funktioniert tadelos, das senden jedoch nicht. Das ESP8266 bezieht seinen Strom von einem Elego Powerboard, welches per Jumper auf 3.3V gepolt wurde. Die Verkabelung sieht wie folgt aus: ESP "3V3" auf Powerboard "+" (Gelbes Kabel) ESP "EN" auf Powerboard "+" (Graues Kabel) ESP "RX" auf USB Adapter "TX" (Gelbes Kabel) ESP "TX" auf USB Adapter "RX" (Graues Kabel) ESP "GND" auf Powerboard "-" (Blaues Kabel) Ich weiß das die Farben der Kabel etwas ungünstig gewählt wurde, hatte jedoch auf die schnelle keine anderen da. Wenn ich das Powerboard aktiviere, blinkt der ESP kurz blau auf. Während des "Bootvorgangs" des ESP kann ich in dem Seriellen Monitor den Bootloader Code auf 74880 Baud lesen. Nach kurzer Zeit ist auf 115200 Baud der Hersteller Text sowie die Zeile "Ready" zu erkennen. Über RX Empfange ich problemlos Nachrichten. Wenn ich jetzt aber versuche den Befehl "AT" zu senden, passiert gar nichts. Habe bereits verschiedene Programme versucht wie z.b. Putty und Term 1.9b und habe auch bereits alle Baud Arten im Testverfahren durchprobiert, jedoch war der TX Counter immer auf 0 und ich war nicht in der Lage einen Befehl zu senden. Habe auch schon probiert TX und RX auf dem Arduino selbst als Träger zu verwenden, jedoch tritt hier das gleiche Problem auf. Wenn ich den Port I00 an GND anklemme, leuchtet die blaue LED dauerhaft, jedoch kann ich immer noch keine Befehle senden. Habe auch test weise mit verschiedenen Tools versucht ein Firmware Update aufzuspielen, jedoch schlug auch dieser Datentransfer fehl. Laut dem Bootloader Code ist eine Firmware von März 2016 vorinstalliert. Ist der ESP einfach nur defekt oder habe ich etwas falsch gemacht? Gruß Patrick
Ein Fehler, der mir zumindest gleich in's Auge gesprungen ist: Du hast die GND-Leitung vom USB-UART-Wandler nicht verbunden, die muss aber natürlich mit GND vom ESP bzw. der "-"-Leitung vom Power-Board verbunden werden.
Schicke mal nach dem "AT" noch \r\n (also die Steuerzeichen) hinterher. Neuere ESP FWs wollen das so.
Ich habe gerade den USB GND an den GND meines Powerboards angeschlossen und das ganze nochmal getestet. Bei 115200 Baud bekomme ich folgende Meldung:
1 | rll▒▒|▒l▒| |
2 | ▒ |
3 | l▒ |
4 | b|▒▒▒▒r▒b▒ |
5 | b▒▒nn▒lnn▒▒▒ |
6 | bp▒lrlrlp▒n▒ |
7 | ▒ |
8 | l |
9 | b |
10 | n▒|l |
11 | l▒▒b▒▒nn▒l▒▒l`▒nn |
12 | l`nr▒▒▒n |
13 | ▒▒l`p▒n▒ |
14 | r▒▒▒▒▒ |
15 | b |
16 | n▒|쎎▒b▒▒nn▒ |
17 | l`▒nn |
18 | l`nr▒▒▒n |
19 | ▒l`p▒n▒ |
20 | r▒▒▒▒▒▒l |
21 | b |
22 | n▒|l▒r▒ |
23 | b▒▒nn▒ |
24 | l`▒nn |
25 | l`nr▒▒▒n |
26 | ▒ll`r▒▒n |
27 | ▒ll`rl▒▒n▒▒▒nn▒▒▒▒rnnn▒ |
28 | l▒brrl |
29 | ▒▒l▒▒▒▒ |
30 | ▒ |
31 | ▒lll~rl |
32 | ▒▒llln▒▒ |
33 | ▒ |
34 | ▒▒~▒` |
35 | ▒▒l▒▒n▒n▒n~▒▒ll▒b |
36 | llpb▒br▒▒▒l`nl▒p▒▒l`bl`l▒▒n |
37 | ▒n▒▒▒nl▒|b |
38 | l |
39 | l`rl▒▒r▒l▒l▒ |
40 | ▒l`▒▒r▒l▒l▒ |
41 | l`▒▒r▒l |
42 | ▒▒▒ |
43 | ll`rl▒▒rl▒▒▒b |
44 | l▒br| |
45 | ▒bp▒▒bbb▒▒n▒nn▒ |
46 | ll▒▒l쎌 |
47 | l▒▒ll▒▒▒l▒▒l▒n▒▒▒▒b |
48 | l▒p |
49 | ▒▒▒b |
50 | l |
51 | ▒bprlrl |
52 | Ai-Thinker Technology Co. Ltd. |
53 | |
54 | ready |
55 | AT\r\n |
Eine Antwort bekomme ich jedoch trotzdem nicht. Auf 74880 Baud bekomme ich während des Bootvorganges die folgende Nachricht:
1 | ets Jan 8 2013,rst cause:2, boot mode:(3,7) |
2 | |
3 | load 0x40100000, len 1856, room 16 |
4 | tail 0 |
5 | chksum 0x63 |
6 | load 0x3ffe8000, len 776, room 8 |
7 | tail 0 |
8 | chksum 0x02 |
9 | load 0x3ffe8310, len 552, room 8 |
10 | tail 0 |
11 | chksum 0x79 |
12 | csum 0x79 |
13 | |
14 | 2nd boot version : 1.5 |
15 | SPI Speed : 40MHz |
16 | SPI Mode : DIO |
17 | SPI Flash Size & Map: 8Mbit(512KB+512KB) |
18 | jump to run user1 @ 1000 |
19 | |
20 | rf[112] : 03 |
21 | rf[113] : 00 |
22 | rf[114] : 01 |
23 | |
24 | SDK ver: 1.5.4(baaeaebb) compiled @ May 17 2016 19:23:54 |
25 | phy ver: 972, pp ver: 10.1 |
26 | |
27 | ▒▒h▒h▒ip▒$x▒▒▒,▒q(Ѫ8▒▒jtN |
Als Du "AT\r\n" geschickt hast - hast Du da auch sicher die Steuerzeichen \r und \n geschickt? So richtig 100%ig schlau wurde ich aus dem Screenshot diesbezüglich nicht. Ansonsten könntest Du evtl. mal probieren, statt eines allgemeinen Terminalprogramms die Software "ESPlorer" zu verwenden: https://esp8266.ru/esplorer/ bzw. Direktdownload: http://esp8266.ru/esplorer-latest/?f=ESPlorer.zip Hier übrigens eine einfache Grafik aus dem ESP8266 Arduino-Repository, wie das ESP-01-Modul verbunden werden sollte: https://raw.githubusercontent.com/esp8266/Arduino/master/doc/ESP01_connect.jpg Wobei Du da im Grunde schon fast alles richtig gemacht hast - DTR und RTS sind zwar nicht verbunden, aber für einen reinen Funktionstest der AT-Firmware sollten die ja auch nicht nötig sein.
Hallo Joachim! Danke für den Tipp mit dem ESPlorer! Endlich bekomme ich nach über einer Woche experimentieren ein Signal von dem Modul. Ich habe wirklich geglaubt das mein Modul defekt sein muss.. Allerdings verstehe ich nicht warum der ESP mit dem ESPlorer funktioniert, mit Arduino IDE Putty Term 1.9b jedoch nicht. Hast du eine Ahnung was ich falsch gemacht habe? Gruß Patrick
Patrick schrieb: > Allerdings verstehe ich nicht warum der ESP mit dem ESPlorer > funktioniert, mit Arduino IDE Putty Term 1.9b jedoch nicht. Hast du > eine Ahnung was ich falsch gemacht habe? Ich würde vermuten, dass es halt mit den Steuerzeichen \r und \n zu tun hat, dass die aus irgendeinem Grund nicht richtig gesendet wurde. Ist aber wirklich einfach rein geraten, so richtig plausibel erscheint es mir nicht mal selbst... ;-)
Vielleicht stört das CR=CR+LF beim Transmit, obwohl das ja gerade \r\n sein sollte.
:
Bearbeitet durch User
> Da wird wohl keine Firmware drauf sein?
Nein, man sieht am Screenshot deutlich, dass die Firmware geladen wurde
und dass die Baudrate auch richtig eingestellt wurde:
1 | #Ai-Thinker Technology Co. Ltd. |
2 | |
3 | ready |
Der Fehler ist auch offensichtlich:
1 | AT\r\n |
Du musst AT senden, gefolgt von einem Zeilenumbruch im DOS/Windows Format. Das sind zwei Bytes, die dezimal dargestellt die Werte 13 und 10 haben. In C und vielen anderen Programmiersprachen werden sie im Quelltext als "\r\n" geschrieben (escape-sequence). Sie werden in Dokumentation oft auch als <CR><LF> geschrieben. ASCII 13 = <CR> = Carriage Return = '\r' in C ASCII 10 = <LF> = Line Feed = '\n' in C [code] send("AT\r\n") [/coode] Du hast aber aber nicht die beiden Steuerzeichen des DOS Zeilenumbruches (=2 Bytes) gesendet, sondern vier sichtbare Zeichen. Du musst dein Terminal so konfigurieren, dass es beim Drücken der Enter Taste einen DOS Zeilenumbruch sendet. Und dann tippst du ein: AT und drückst dann die Enter Taste, nicht den Send Button.
Bei dem abgebildeten Terminalprogramm handelt es sich ja offenbar hierum: https://sites.google.com/site/terminalbpp/ Wenn ich die Dokumentation auf der Webseite richtig interpretiere, dann muss man in diesem Programm für AT\r\n
1 | AT$0D$0A |
schreiben. Allerdings bin ich aus der Doku nicht ganz schlau geworden, ob das bei diesem Programm nur für Makros gilt, oder grundsätzlich.
Stefan U. schrieb: > Du musst dein Terminal so konfigurieren, dass es beim Drücken der Enter > Taste einen DOS Zeilenumbruch sendet. Und dann tippst du ein: > > AT > > und drückst dann die Enter Taste, nicht den Send Button. Korrekt. Alternativ geht es auch so: AT <ENTER> <STRG-J> Denn standardmäßig sendet die Enter-Taste in jeder gängigen Terminal-Emulation nur ein CR (\r). Mit der Tastenkombination STRG-J sendet man noch ein LF (\n) hinterher. EDIT: Ich verstehe absolut nicht, warum die AT-Firmware-Entwickler das überhaupt geändert haben. Früher reichte beim ESP8266 das \r, also die ENTER-Taste - genauso, wie es auch jede AT-Modem-Software vor 20 Jahren gemacht hat. Warum diese Inkompatibilität? Oder war es eher Inkompetenz?
:
Bearbeitet durch Moderator
Guck Dir mal an, wie beim HC-05 Bluetooth Modul die Kommandos terminiert werden - da waren die Entwickler noch "kreativer". Ich glaube, die Chinesen habe ein "gutes" Kraut zum rauchen.
Stefan U. schrieb: > Guck Dir mal an, wie beim HC-05 Bluetooth Modul die Kommandos terminiert > werden - da waren die Entwickler noch "kreativer". Ich glaube, die > Chinesen habe ein "gutes" Kraut zum rauchen. Wieso? Die Terminieren via Timeout. Das ist nicht so schlecht, höchstens langsam. Die HC Module werden aber meist auch nur einmalig so konfiguriert und dann im Betrieb nicht mehr.
Nur dumm, dass alle Kommandos ignoriert werden, wenn sie mit einem Zeilenvorschub enden. Einige Terminalprogramme können gar nicht ohne Zeilenvorschub senden, das ist eine geniale Hürde für Einsteiger.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.