Forum: Mikrocontroller und Digitale Elektronik ESP12F zu wenige AT+ commands?


von Hans G. (weakbit)


Lesenswert?

Hallo,
warum funktionieren nicht alle AT+ commands? Zuerst wusste ich nicht 
warum die erst Installation der Firmware esp8266-v40-ESP12s-4M.bin die 
ich mit dem esptool in den ESP12F geflashed habe gar nicht 
funktionierte. Keine AT commands haben funktioniert.
So habe ich dann alles einzeln per Hand geflashed (von OS Mint18.3 
Linux).
1.) sudo ./esptool -cp /dev/ttyUSB0 -cd nodemcu -ca 0x00000 -cf 
/home/user/Downloads/ESP8266_AT-master/bin/boot_v1.1.bin
2.) sudo ./esptool -cp /dev/ttyUSB0 -cd nodemcu -ca 0x01000 -cf 
/home/user/Downloads/ESP8266_AT-master/bin/v0.20/user1.bin
3.) sudo ./esptool -cp /dev/ttyUSB0 -cd nodemcu -ca 0x7C000 -cf 
/home/user/Downloads/ESP8266_AT-master/bin/esp_init_data_default.bin
4.) sudo ./esptool -cp /dev/ttyUSB0 -cd nodemcu -ca 0x7E000 -cf 
/home/user/Downloads/ESP8266_AT-master/bin/blank.bin
Gibt es einen Linux Flasher der das in einem macht?

Reset und siehe da auf einmal funktionieren einige wenige der AT+ 
commands.
Aber z.B. AT+PING="192.168.1.1" endet in einem Error!
Frage1: Welche Firmware die alle AT+ commands beherrscht kann ich 
einspielen?
Frage2: Warum kann die Arduino IDE per programm den Flash Speicher 
überschreiben ohne das man die Flash Taste drückt? Sonst muss ich beim 
flashen die Flash Taste drücken.
Frage3: ich suche eine Firmware mit der ich einen externen AVR per TX/RX 
anschliessen kann und dann auf einen anderen Rechner im Netz per TCP 
meine Daten transferieren kann und auch empfangen kann.

Danke für die Hilfe
weakbit

von Achim M. (minifloat)


Lesenswert?

Hans G. schrieb:
> Gibt es einen Linux Flasher der das in einem macht?

Ahja. Schreib dir doch ein Shellscript?
"#!/bin/bash" ist dein Freund.

Hans G. schrieb:
> Aber z.B. AT+PING="192.168.1.1" endet in einem Error!

Macht er das, auch wenn er mit keinem WIFI verbunden ist?

Hans G. schrieb:
> : Warum kann die Arduino IDE per programm den Flash Speicher
> überschreiben ohne das man die Flash Taste drückt?

Das macht die Arduino-IDE mit der DTR-Leitung des USB-UART.

Hans G. schrieb:
> ich suche eine Firmware mit der ich einen externen AVR per TX/RX
> anschliessen kann und dann auf einen anderen Rechner im Netz per TCP
> meine Daten transferieren kann [...]

Was für Daten genau? Wie werden die Daten erfasst? Wenn du sowieso die 
Arduino-IDE da hast, mach doch gleich alles direkt auf dem NodeMCU.

Hans G. schrieb:
> und auch empfangen kann.

Das wird dir die AVR-Firmware allein nicht leisten können. Du brauchst 
an dem Rechner auch ein Gegenstück, sei es ein Telnet-Terminal, ein 
Browser, eine Samba-/Windows-Netzwerkfreigabe, ein FTP-Server, ...

mfg mf

von Hans G. (weakbit)


Lesenswert?

Achim M. schrieb:
> Hans G. schrieb:
>> Gibt es einen Linux Flasher der das in einem macht?
>
> Ahja. Schreib dir doch ein Shellscript?
> "#!/bin/bash" ist dein Freund.
>
wie könnte es nicht anders sein und wieder eine Arbeit mehr!

> Hans G. schrieb:
>> Aber z.B. AT+PING="192.168.1.1" endet in einem Error!
>
> Macht er das, auch wenn er mit keinem WIFI verbunden ist?
Ja im Router sehe ich den ESP12F mit MAC und gültiger IP 192.168.2.45 
aber kein AT+PING="192.168.2.1" sprich auf den WLAN-Router. Der ping ist 
eingeschalten.


> Hans G. schrieb:
>> : Warum kann die Arduino IDE per programm den Flash Speicher
>> überschreiben ohne das man die Flash Taste drückt?
>
> Das macht die Arduino-IDE mit der DTR-Leitung des USB-UART.
Aha das Ding zieht sch den Pin selbst.

> Hans G. schrieb:
>> ich suche eine Firmware mit der ich einen externen AVR per TX/RX
>> anschliessen kann und dann auf einen anderen Rechner im Netz per TCP
>> meine Daten transferieren kann [...]
>
> Was für Daten genau? Wie werden die Daten erfasst? Wenn du sowieso die
> Arduino-IDE da hast, mach doch gleich alles direkt auf dem NodeMCU.
>
> Hans G. schrieb:
>> und auch empfangen kann.
>
> Das wird dir die AVR-Firmware allein nicht leisten können. Du brauchst
> an dem Rechner auch ein Gegenstück, sei es ein Telnet-Terminal, ein
> Browser, eine Samba-/Windows-Netzwerkfreigabe, ein FTP-Server, ...
Möchte nur einen Byteblock an einen Socket eines Raspberry schicken und 
denn dann dort empfangen das ist nicht das Problem.

Sonst Danke einmal aber Du hast mir nicht gesagt ob es eine bessere 
Firmware gibt die "wie" heißt? Das zumindest alle anderen AT commands 
funktionieren vielleicht gibt es ja eine die der Beschreibung der 8266er 
AT commands entspricht. Möglich das ich alles falsch mache aber das 
glaube ich auch nicht. Und klar das ein ping nicht geht wenn der Stecker 
raus ist!
mfg weakbit
>
> mfg mf

von Thomas W. (Gast)


Lesenswert?

Moin, -

was hast Du wo heruntergeladen? Als ich beim zweiten Lockdown mit dem 
ESP12 gespielt hatte fand ich die Auswahl an widerspruechlichen 
Firmwares beeindruckend (abstossend war der Terminus Technicus): Ich 
habe dann
bei

https://github.com/espressif/ESP8266_NONOS_SDK/releases

(frag mich nicht, ich habe mir einen Wolf gegoogled) alles gefunden. Ich 
habe jetzt einen (genau einen) NodeMCU (ist ein ESP12F drauf).

Die Information bei https://www.espressif.com war nicht so hilfreich.

Meine "Aufgabe" war einen STM32F103 mit einem ESP12F zu verbinden und 
dann ins WLAN -> Internet. Ein paar Ideen findest Du in 
https://www.youtube.com/watch?v=MG-5Ct_rCZQ

Gruesse

Th.

EDIT: Tuppfehler

von Hans G. (weakbit)


Lesenswert?

Thomas W. schrieb:
> Moin, -
>
> was hast Du wo heruntergeladen? Als ich beim zweiten Lockdown mit dem
> ESP12 gespielt hatte fand ich die Auswahl an widerspruechlichen
> Firmwares beeindruckend (abstossend war der Terminus Technicus): Ich
> habe dann
> bei
>
> https://github.com/espressif/ESP8266_NONOS_SDK/releases

Das habe ich auch so gesehen die meisten Firmwaren die man im Web findet 
funktionieren nicht so wie sie sollten. Ich nehme an das diese Versionen 
auf Firmen die irgend einen Service zur Verfügung stellen umgemünzt 
sind.
Die Firmware die so halb funktioniert
=> https://github.com/espressif/ESP8266_AT

Firmware die bei mir keine AT commands per command line kann:
=> https://github.com/sensate-io/firmware-esp8266
(Möglich das ich einen Fehler mache aber was kann man da für einen 
Fehler machen ausser flashen und dann in Send eintippen mit [ENTER] und 
CRLF [CTRL+J]? Es zeigt lediglich nach Reset eine Liste welches System 
das ist und welcher Prozessor etc. Aber reagiert nicht auf AT+ commands. 
Egal wo ich den Befehl hinein schicke (USB0, USB1<=>FTDI-TX/RX Pins).

Frage 1: sind die Pins TX/RX die ich am USB1<=>FDTI angehängt habe auf 
meinem NodeMCU Board auch mit den Pins vom USB0 das über den CH340 geht 
zusammen geschlossen oder sind das zwei Schnittstellen?

> (frag mich nicht, ich habe mir einen Wolf gegoogled) alles gefunden. Ich
> habe jetzt einen (genau einen) NodeMCU (ist ein ESP12F drauf).
>
> Die Information bei https://www.espressif.com war nicht so hilfreich.
>
> Meine "Aufgabe" war einen STM32F103 mit einem ESP12F zu verbinden und
> dann ins WLAN -> Internet. Ein paar Ideen findest Du in
> https://www.youtube.com/watch?v=MG-5Ct_rCZQ
Verstehe ich muss eine Bestehende Ampelanlage die auf einem AVR Mega16 
programmiert wurde (kein Arduino Projekt ein reines Lehrn Projekt für 
Assembler). Da geht es darum das man den Controller genau versteht und 
nicht mit "wait(1000)" den ganzen Controller blockiert. Sondern einen 
nach Abarbeitung der notwendigen Programmschritte für die Ampel dann 
wieder frei für andere Aufgaben ist. Ein RAM-Monitor das man in das RAM 
unter Lauf schauen kann wurde hier auch programmiert.
Ich will mehrere dieser Ampelsysteme über einen Server (ein Raspberry) 
synchronisieren/leiten/regulieren. Um damit zu zeigen wenn man in einer 
Stadt eine Welle macht so kann man den Verkehr durch lienear Laufende 
Wellen (entlang Haupverkehrsrouten) und Quer laufende Grüne Wellen 
besser beeinflussen als durch die jetzigen Ampelanlagen die den Verkehr 
regeln. Das Ziel ist es eine Reduktion des Ausstoßes von Abgasen 
innerhalb einer Stadt und eine Intelligente Ampelanlage die z.B. zuerst 
den Fußgänger der gerade in Fahrtrichtung gehen will auf grün springt 
dann der Verkehr. Somit kann die Unfallzahl an rechts Abbiegenden LKWs 
die die Kinder zusammenführen verringert werden.

LG
weakbit

> Gruesse
>
> Th.
>
> EDIT: Tuppfehler

von Hans G. (weakbit)


Lesenswert?

https://github.com/espressif/ESP8266_NONOS_SDK/releases
Das habe ich heute eingespielt und das Ergebnis ist ein laufender 
Streifen an nicht lesbaren Charactern in der oberen Zeile und keine 
Funktion auf meinem ESP12F?
Da stelle ich mir die Frage wie das sein kann das diese FW bei dir 
überhaupt funktioniert? Ich habe einen ESP12F auf einem NodeMCU V0.1 mit 
CH340 USB interface Board oder ist diese FW nicht für mein Board?

Ich habe die alte FW aufgespielt und sihe da auf einmal funktioniieren 
mehrere der AT commands aus heiterem Himmel - aber warum?

MfG
weakbit

von Thomas W. (Gast)


Lesenswert?

Moin, -
Hans G. schrieb:
> Thomas W. schrieb:

> Egal wo ich den Befehl hinein schicke (USB0, USB1<=>FTDI-TX/RX Pins).
>
> Frage 1: sind die Pins TX/RX die ich am USB1<=>FDTI angehängt habe auf
> meinem NodeMCU Board auch mit den Pins vom USB0 das über den CH340 geht
> zusammen geschlossen oder sind das zwei Schnittstellen?

ich hatte damals so ein NodeMCU-Board gekauft, weil ich die angenehme 
Programmierung via USB sehr gut finde. Eine Fehlerquelle weniger. Der 
USB-Anschluss haengt TXD0/RXD0. Es ist auch nur ein ESP8266E.

Die Unterlagen (gut abgehangen) findest Du bei
https://github.com/nodemcu/nodemcu-devkit-v1.0

Ich wollte damals einfach eine "ganz einfache Loesung" fuer uC<->WLAN 
haben, preisguenstig; wenn es geht, vernuenftig unterstuetzt.

Gruesse

Th.

von Thomas W. (Gast)


Lesenswert?

Moin, -

Hans G. schrieb:
> https://github.com/espressif/ESP8266_NONOS_SDK/releases
> Das habe ich heute eingespielt und das Ergebnis ist ein laufender
> Streifen an nicht lesbaren Charactern in der oberen Zeile und keine
> Funktion auf meinem ESP12F?

Du musst es aber richtig machen (lerne von meinen Fehlern, mache neue 
Fehler :-)):

Flashen wie Du beschrieben hast, schalte baudrate auf 74880baud. 
Reset...
1
 ets Jan  8 2013,rst cause:2, boot mode:(3,6)
2
3
load 0x40100000, len 2592, room 16
4
tail 0
5
chksum 0xf3
6
7
// snip 
8
9
2nd boot version : 1.7(5d6f877)
10
SPI Speed : 40MHz
11
SPI Mode : DIO
12
SPI Flash Size & Map: 32Mbit(512KB+512KB)
13
jump to run user1 @ 1000
14
15
// snip 
16
17
SDK ver: 3.0.4(9532ceb) compiled @ May 22 2020 16:26:04
18
phy ver: 1156_0, pp ver: 10.2

Qapla! Schalte jetzt auf 115200Baud und Du kannst Kommandos schicken.

Der Baudrate-Wechsel hat mich fast in den Wahn getrieben! Nachdem ich 
das verstanden hatte, funktionierte die Kommunikation 
ESP8266<->STM32F103 gut (stoerungsfrei, der Flaschenhals war die 
115200Baud Verbindung, war schon OK. Der sehr guenstige Preis hat viel 
entschaedigt).

Gruesse

Th.

von Stefan F. (Gast)


Lesenswert?

Hans G. schrieb:
> Das habe ich auch so gesehen die meisten Firmwaren die man im Web findet
> funktionieren nicht so wie sie sollten.
> Die Firmware die so halb funktioniert
> => https://github.com/espressif/ESP8266_AT

Das hilft so nicht weiter. Dein Link verweist auf keine bestimmte 
release Version. Da wird also wieder jeder Download zum Glücksspiel. Der 
Kommentar "update for sdk v0.9.4" lässt mir jedenfalls einen kalten 
Schauer über den Rücken laufen. Das erste halbwegs stabile SDK hatte die 
Versionsnummer 1.4.0. Und die erste wirklich stabile Version war nach 
meinen Versuchen die 1.5.4.

Die Firma Espressif hat sehr viele fehlerhafte Firmware Versionen 
veröffentlicht. Das hat dazu geführt, dass Leute sich bestimmte 
Versionen gesichert und dokumentiert haben, mit denen sie einigermaßen 
klar kommen.

Nach fünf Jahren wiederholter Probleme habe auch ich irgendwann das 
Interesse an Updates verloren. Siehe 
http://stefanfrings.de/esp8266/index.html#atfirmware

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.