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