Forum: Mikrocontroller und Digitale Elektronik ESP8266 AT Firmware Zuverlässigkeit und Performance


von Stefan F. (Gast)


Lesenswert?

Hallo alle,
in den vergangenen Monaten hatte ich mehrmals berichtet, dass sich meine 
alten ESP-01 Module mit Firmware 0.90 sporadisch aufhängen.

Ich habe inzwischen ein paar neue Module mit AT Firmware 0.40 gekauft 
und was soll ich sagen: Die laufen alle stabil. Keine Aufhänger mehr - 
den ganzen Tag nicht.

Ich bin (jetzt auch) echt begeistert!

Und da ich jetzt wieder einige Module vorrätig habe, habe ich es gewagt, 
mein letztes altes Modul auf 0.50 vom SDK 1.4.0 zu aktualisieren (ich 
finde die Versionsnummern sehr irritierend).

Die Firmware aus dem SDK 1.5.1 hat leider nicht funktioniert, da hängt 
das Modul in einer wdt-reset Schleife. Und da bin ich nicht der einzige, 
bei dem diese Version nicht funktioniert.

Leider sind die Module auch mit der aktuellen Firmware immer noch 
schnecken-langsam. Die Firmware scheint weiterhin im 100ms Raster zu 
arbeiten. Kann man das konfigurativ verbessern?

Und die Module lassen immer noch sporadisch einzelne TCP Pakete 
verschwinden. Sie Acknowledgen den Empfang, tun am seriellen Port dann 
aber so, als hätten sie nichts empfangen. Aber das kriege ich mit 
Software-Mitteln abgefangen, damit kann ich leben.

Ich teste jetzt ein paar Tage lang, ob und wie oft sie sich noch 
aufhängen und dann melde ich mich wieder.

von grrr (Gast)


Lesenswert?

Ich habe nie mit der AT Firmware meinen Frieden gefunden.
Seit ich die ESP mit der Arduino IDE bespiele, bin ich Zufrieden.

von Michael U. (amiga)


Lesenswert?

Hallo,

Stefan U. schrieb:
> Und da ich jetzt wieder einige Module vorrätig habe, habe ich es gewagt,
> mein letztes altes Modul auf 0.50 vom SDK 1.4.0 zu aktualisieren (ich
> finde die Versionsnummern sehr irritierend).
>
> Die Firmware aus dem SDK 1.5.1 hat leider nicht funktioniert, da hängt
> das Modul in einer wdt-reset Schleife. Und da bin ich nicht der einzige,
> bei dem diese Version nicht funktioniert.

die aktuelle Firmware braucht 8MBit-Flash, die alten hatten nur einen 
4MBit.
Ist am Flashtyp zu sehen, entweder ...04... oder ...08... in der 
Typenbezeichnung.

>Und die Module lassen immer noch sporadisch einzelne TCP Pakete
>verschwinden. Sie Acknowledgen den Empfang, tun am seriellen Port dann
>aber so, als hätten sie nichts empfangen. Aber das kriege ich mit
>Software-Mitteln abgefangen, damit kann ich leben.

Mein ICEsast Streamplayer läßt auch über Stunden kein Paket 
verschwinden, das würde ich nämlich hören.

Allerdings weißt Du ja, daß es mir da wie  grrr (Gast) geht...

Gruß aus Berlin
Michael

von Stefan F. (Gast)


Lesenswert?

> Mein ICEsast Streamplayer läßt auch über Stunden kein Paket
> verschwinden

Ich dachte mir schon, dass das ein Manko der AT Firmware ist. Angeblich 
basiert die Firmware ja auf lwip und ich weiß ziemlich sicher, dass lwip 
prinzipiell sauber funktioniert.

Welche Übertragungsrate erreichst du maximal? Welche Bassis nutzt du zu 
Programmierung des ESP?


Übrigens: Bis jetzt haben sich meine beiden Testkandidaten nicht einmal 
aufgehangen.

Der PC läuft in zwei Endlosschleifen, die ständig folgendes wiederholen:

- Aufbau der TCP Verbindung
- Sende "dPB5,1"   -> Der AVR Antwortet mit Ok
- Warte 300ms
- Sende "oPB5,1"   -> Der AVR Antwortet mit Ok
- Warte 300ms
- Sende "oPB5,0"   -> Der AVR Antwortet mit Ok
- Warte 1s
- Verbindung trennen

Also nix dolles. Aber schon dieser harmlose Ablauf brachte mein altes 
Modul ungefähr 1x pro Stunde zum abschmieren. Jetzt nach dem 
Firmware-Upgrade aber nicht mehr.

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

Stefan U. schrieb:
> Welche Übertragungsrate erreichst du maximal? Welche Bassis nutzt du zu
> Programmierung des ESP?

gemessen habe ich das nie, einfach weil ich den ESP nicht als WLAN-Modul 
wie z.B. einen WLAN-Stck am Rechner sehe.
Eine Übertragung eines 290kB JPG-Bildes aus dem SPIFFS über meinen 
"Webserer"
zum Firefox braucht er fast eine Minute. Also lesen aus dem Filesystem 
und rausschicken über den Server. Sind effektiv also damit nur rund 
5kB/s.
Das ist auch nur ein Test, am Anfang ist er da nämlich gern nach wenige 
Zeilen mit einem Stacktrace rausgefolgen...

Der Stream-Client läuft im Moment mit 192kBit, macht auch 320kBit 
stabil.
Das wären dann 40kb/s. Das MP3 decodiert ein VS1003 am SPI.

Ich hatte kurz in die AT-Software reingeschaut, NodeLUA angeschaut, 
versucht das Original SDK in der VM anzuwerfen, auch Eclipse war mal 
drauf.
Gewonnen hat eindeutig die ArduinoIDE, weil sie für mich der beste 
Kompromiß zwischen Einarbeitungs, und - Einrichtungsaufwand und 
Ergebnissen ist.
Sie ist "nicht schön, aber selten". ;-)
Man kann sie protable installieren und auf einem Stick komplett einfach 
mitnehmen, das macht mein Bekannter so.
Vorhanden Libs werden genommen oder angepasst oder für mich 
zusammengestutzt. Software ist dann eben eine Mischung aus C, den 
Arduino-Klassen usw.
Eigene includes in den Projektordner geworfen, die macht sie dann in den 
Tabs mit auf usw.

Ich habe mal den Stremplayer rangehangen, das ist dann so das Chaos, was 
bei mir rauskommt.
Bei den C- und C++ Programmierern dürfen sich da dann gern die Fußnägel 
aufrollen, obwohl ich auch auf meinen "alten" Tage gern dazulerne...
Ich brauche es eben nicht für den Beruf und werde da auch nicht mehr 
brauchen.

Gruß aus Berlin
Michael

von Stefan F. (Gast)


Lesenswert?

5 Kilobytes pro Sekunde finde ich enttäuschend wenig.

Immerhin sehe ich, dass die AT Firmware wohl nicht das Nadelöhr ist, 
denn damit könnte ich bis zu 10 Kilobytes pro Sekunde senden.

von Michael U. (amiga)


Lesenswert?

Hallo,

ist sicher auch mehr drin, hat mich im Moment nicht so interessiert. 
Schon das Stream-Read aus dem SPIFFS dürfte ziemlich für Overhead 
sorgen.
10kb/s wären bei 115200 ja auch realistisch, Da müßte ich mal Daten 
direkt aus dem Flash schicken, wenn er hier mit Reserve meinen 40kB 
Stream empfangen kann, kann er sicher auch mehr senden.

Werde ich mich sicher erst drum kümmern, wenn ich es wirklich brauche...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von grrr (Gast)


Lesenswert?

In der Arduino IDE ist der Default fürs Flash 40MHz und DIO.
Die meisten der verwendeten Bausteine können 80MHz.
Und QIO ist auf allen mir bekannten Boards möglich.

Also dürfte von der Seite her eine ver4fachung möglich sein.

Und wenn es an der Prozessorleistung hapert, dann von 80MHz auf 160MHz 
umstellen. Noch kleine negativen Erscheinungen dabei festgestellt...

von Stefan F. (Gast)


Lesenswert?

Ich glaube, die Taktfrequenz ist gar nicht der Knackpunkt. Mir kommt es 
eher so vor, als ob das Modul in einem 100ms Raster arbeitet. Wenn du 
viele Netzwerkpakete hintereinander sendest oder empfängst, sind 
dazwischen immer Zeitabstände von ungefähr 100ms. Egal, wie groß die 
Pakete sind.


Meine beiden Testmodule laufen immer noch ohne Absturz.

Dafür hat sich mein WLAN Router gerade aufgehangen. Die beiden Module 
haben sich aber ordentlich wie neu verbunden. Läuft wie geschmiert.

von Michael U. (amiga)


Lesenswert?

Hallo,

grrr schrieb:
> In der Arduino IDE ist der Default fürs Flash 40MHz und DIO.
> Die meisten der verwendeten Bausteine können 80MHz.
> Und QIO ist auf allen mir bekannten Boards möglich.
>
> Also dürfte von der Seite her eine ver4fachung möglich sein.
>
> Und wenn es an der Prozessorleistung hapert, dann von 80MHz auf 160MHz
> umstellen. Noch kleine negativen Erscheinungen dabei festgestellt...

intressanterweise verändern beide Werte die "über alles" Performace 
überhaupt nicht.
Flash-Speed jetzt auf 80MHz (ausgelesen), für den CPU-Speed habe ich 
nichts zum Auslesen gefunden, laut IDE sollen es jetzt 160MHz sein.

Nebeneffekt: mit ArduinoIDE v1.6.8 -> ESP-Board v2.1.0 crash beim Aufruf 
von TelnetServer.setNoDelay(true);

Mit ESP 2.0.0 noch alles ok.
Meiner Meinung nach war die vorige "Firmware" mit 2.1.0-rc1 oder 2 
compiliert, kann ich aber jetzt nicht nachvollziehen.

Bin erstmal wieder bei IDE 1.6.7 und ESP 2.0.0
Die 1.6.8 macht auch irgendwelchen Kram mit den seriellen anders.
Hier hängen im Moment 3 Sachen dran und mein LogicAnalyzer erzählt dann, 
daß seine COM schon belegt wäre, obwohl er eben initilisiert hat.
2 Sekunden später geht es dann wieder.
Andere ESP mit anderer COM werden unerwartet neu gestartet.
Das war mit der 1.6.7 noch nicht so.

Gruß aus Berlin
Michael

von grrr (Gast)


Lesenswert?

> laut IDE sollen es jetzt 160MHz sein.
In der IDE werden nur die Konstanten für delay() usw. umgestellt.
Den Takt selber muss man im Code hoch setzen.


 system_update_cpu_freq(SYS_CPU_160MHZ);

von Michael U. (amiga)


Lesenswert?

Hallo,

naja, beim ESP wäre es ja auch möglich, daß der Wert gleich im 
Startup-Code gesetzt wird. Die Flash-Frequenz wird ja auch direkt 
gesetzt.
Deshalb auch meine Frage nach dem Auslesen zur Laufzeit, da habe ich 
nichts gefunden.
Sonst muß ich wohl mal einen Benchmark draufschieben...

Gruß aus Berlin
Michael

von grrr (Gast)


Lesenswert?

Michael U. schrieb:
> Deshalb auch meine Frage nach dem Auslesen zur Laufzeit, da habe ich
> nichts gefunden.
Hmm....
Meine Erinnerung sagt: Ein Bit in irgendeinem Register ist dafür 
zuständig...
Aber wo und wie... KA...

von grrr (Gast)


Lesenswert?

Nachtrag:
Bit 0 an Adresse 3FF00014h
Siehe: https://github.com/esp8266/esp8266-wiki/wiki/Memory-Map

von Stefan F. (Gast)


Lesenswert?

Die ESP-01 Module sind immer noch nicht abgestürzt. Inzwischen kann ich 
sie durchaus weiter empfehlen - auch die AT Firmware.

Im Test war ein zwei Jahre altes Modul mit erneuerter Firmware 0.50 und 
ein neueres Modul mit vorinstallierter Firmware 0.40. Beide Module 
liefen drei Tage lang unter Dauerfeuer.

Zur Stromversorgung habe ich zwei 500mA Handy-Ladegeräte verwendet, mit 
je einem LF33CV Spannungsregler und zusätzlich einem 100µF Elko an 
VCC/GND nahe an Modul.

von Michael U. (amiga)


Lesenswert?

Hallo,

5V Handylader sind auch meine Lieblinge, die 100µ gehören ebenfalls 
immer dazu, Spannungsregler ist meist ein China-Schnipsel mit einem 
AMS1117 drauf.

Vorhin hat mich meine WLAN-Umgebung hier geschafft...
Der ESP keine 3m vom Router weg, Altbau, eine Wand dazwischen. Mein 
Streamplayer nur Aussetzer und Re-Connects. Das NodeMCU-Board um ca. 30 
Grad gedreht und um 5 cm verschoben: alles wieder absolut stabil.
Kann aber der ESP nichts dafür, hier ist am Wochenende abends einfach 
zuviel Betrieb im 2,4GHz-WLAN.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Stefan U. schrieb:
> 5 Kilobytes pro Sekunde finde ich enttäuschend wenig.

Ich teste gerade an den Funktionen meiner lua Software. Dabei ergab sich 
ohne an der Clock zu spielen für einen Filetransfer aus dem Flash mit 
wget:

> 100%[======================================>] 22.271   58,3KB/s   in 0,4s

Ich hab gerade keinen größeren File parat.

Stefan U. schrieb:
> Ich glaube, die Taktfrequenz ist gar nicht der Knackpunkt. Mir kommt es
> eher so vor, als ob das Modul in einem 100ms Raster arbeitet.

Das gilt IMHO auch für die lua Firmware.

MfG Klaus

von Michael U. (amiga)


Lesenswert?

Hallo,

Klaus schrieb:
>> 100%[======================================>] 22.271   58,3KB/s   in 0,4s

ja, das passt z.B. auch besser zu meinen Werten beim Empfang.
40kB/s (320kBit) gehen da dauerhaft.
Ich müßte auf der Spielkiste mal alles anhalten, da laufen ein paar 
Sachen, auch interruptgesteuerte die dazwischenfunken können.

Woanders habe ich gerade kein sinnvoll großes File drauf.

Gruß aus Berlin
Michael

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.