Forum: Mikrocontroller und Digitale Elektronik ESP8266 defekt oder bin ich zu dumm?


von Patrick (Gast)


Angehängte Dateien:

Lesenswert?

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

von Joachim S. (oyo)


Lesenswert?

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.

von Max D. (max_d)


Lesenswert?

Schicke mal nach dem "AT" noch \r\n (also die Steuerzeichen) hinterher. 
Neuere ESP FWs wollen das so.

von Patrick (Gast)


Lesenswert?

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

von Patrick (Gast)


Angehängte Dateien:

Lesenswert?

Hier nochmal die Log mit Term 1.9

von Pete K. (pete77)


Lesenswert?

Da wird wohl keine Firmware drauf sein?

von Joachim S. (oyo)


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

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

von Joachim S. (oyo)


Lesenswert?

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... ;-)

von Pete K. (pete77)


Lesenswert?

Vielleicht stört das CR=CR+LF beim Transmit, obwohl das ja gerade \r\n 
sein sollte.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> 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.

von Joachim S. (oyo)


Lesenswert?

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.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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.

von Cyblord -. (cyblord)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.