Hallo ich benutze zur Zeit den ESP8266 mit der Standardfirmware ??? und programmiere ihn in C mit der Arduino Software dies funktioniert auch. In vielen Beispielen wird aber mit Lua programmiert. Laufen die Programme damit stabieler oder was ist der Vorteil? Welche Firmware ist besser?
Ich glaube, das kann man so pauschal nicht beantworten. Ich habe bisher nur die Standard AT Firmware ernsthaft verwendet, aber viel zu den beiden Alternativen gelesen. Ich fasse mal zusammen, zu welchen Schlüssen ich gekommen bin: Die AT Firmware lief anfangs sehr instabil. Die aktuell verkauften Module haben aber Version 0.40 aus dem SDK 1.3 oder Version 0.50 aus dem SDK 1.4. Diese beiden Versionen laufen sehr stabil. Ich hatte in 3 Tagen Dauertest auf zwei Modulen keinen einen einzigen Absturz. Die AT Firmware sendet und empfängt Daten im 100ms Raster. Daraus folgt, dass du maximal 10 Pakete pro Sekunde senden oder empfangen kannst. Eine weitere wesentliche Einschränkung ist der Half-Duplex Betrieb. Die Firmware kann nur abwechselnd senden und empfangen. Wenn du gerade einen AT Befehl absetzt, um etwas zu senden, und dabei gleichzeitig etwas empfangen wird, dann geht was verloren. Mal ignoriert das Modul den Sende-Befehl, mal verwirft es die empfangenen Daten. Daraus ergibt sich folgende Empfehlung: Deine Anwendung sollte empfangene Pakete bestätigen, so wie das Modul auch jeden AT Befehl mit OK bestätigt. Nach jedem gesendeten paket sollte der Absender auf die Bestätigung durch den Empfänger warten, was typischerweise 100-500ms dauert. Solange sollte man schon warten. Erst danach das nächste Paket senden. Und man sollte vermeiden, auf mehreren Verbindungen gleichzeitig etwas zu senden. Wenn der Sender vom Empänger kein OK zurück bekommt, soll er die Sendung wiederholen. Wenn du dich daran hälst, bekommst du eine zuverlässige Datenübermittlung hin - allerdings recht langsam. Überlege Dir, ob die Performance mit der konkreten Anwendung harmoniert. Das SDK ermöglicht Dir, eigene Anwendungen auf dem ESP-Chip selbst laufen zu lassen. Debugging ist allerdings schwierig und die Anwendung muß einige Regeln einhalten, damit der Speicher nicht überlauft und der Watchdog nicht auslöst. Daran scheitern einige Entwickler. Ich denke aber, dass es sich durchaus lohnen kann, nämlich wenn man besonders kompakte Geräte ohne zusätzlichen µC bauen möchte und die I/O Leitungen des ESP Chips für die Anwendung ausreichen. Das SDK wird in C programmiert. Das SDK hat zwei Varianten der Basis-Firmware. Eine mit RTOS und eine ohne. Die RTOS Variante soll mehr Perfomance bieten, aber weniger stabil laufen. Ist wohl noch nicht ausgereift. Ob das wahr ist, kann ich nicht beurteilen. Apropos Performance: Wenn man sich von der AT Firmware trennt und für den ESP eine eigene Anwendung schreibt, die direkt auf dem Chip läuft, hängt man nicht mehr an diesem lästigen 100ms Intervall. Dann sind 50 Kilobytes pro Sekunde machbar. Mit der AT Firmware schaffst du höchsten 10 Kilobytes pro Sekunde. Aber: Zeitweise Aussetzer mit langen Übertragungszeiten sind auch damit nicht auszuschließen. Ich denke, das liegt in der Natur der WLAN netze, dafür kann weder der Chip noch dessen Firmware etwas. Dann gibt es noch diese Lua Firmware (nodeMCU). Ich habe es so verstanden, dass diese Firmware einen Script-Interpreter enthält. Nachdem die Firmware auf den Chip geladen ist, kann man anschließend ein oder mehrere Lua Script in den Flash Speicher laden, um sie auszuführen. Die Lua Sprache soll sehr komfortabel und leicht zu erlernen sein. Der Größte Haken dieser Firmware scheint die begrenzte RAM Größe zu sein. Das ganze Script muss mitsamt Kommentaren ins RAM Passen. Da bleibt dann nur noch wenig RAM für die Anwendung selbst frei. Viele Entwickler kritisieren dies. Ich kann mir allerdings gut vorstellen, dass jemand, der µC mit weniger als ein Kilobyte RAM programmieren kann, auch mit der LUA Firmware ganz gut zurecht kommen dürfte. Für meine konkreten Anwendungen reichte die AT Firmware bisher immer. Ich habe meine Anwendungen auf externen µC laufen lassen, weil: - Die ESP-01 Module so schön billig sind aber wegen zu wenig I/O eine externe Erweiterung brauchen. - Ich mit AVR's und deren Programmierung schon vertraut bin, so muss ich die Programmierung des ESP nicht erlernen (reine Faulheit, gebe ich zu). - Ich einen Hardware Debugger für AVR besitze, aber keinen für den ESP Chip habe. - Ardunino Nano Module fast nichts kosten, dafür aber schon einen USB Anschluss haben, auf den ich Debug Meldungen ausgebe. Dass ich dann ein Modul mehr auf meiner Platine habe, ist mir ziemlich egal. Auf die paar Quandratzentimeter kommt es mir nicht an. Aber meine Bewegründe sind von nicht kommerzieller Natur. We mit dem Ding Geld verdienen will, würde sicher völlig anders entscheiden.
Hallo, ESP8266 schrieb: > Hallo ich benutze zur Zeit den ESP8266 mit der Standardfirmware ??? und > programmiere ihn in C mit der Arduino Software dies funktioniert auch. > In vielen Beispielen wird aber mit Lua programmiert. Laufen die > Programme damit stabieler oder was ist der Vorteil? Welche Firmware ist > besser? der ESP hat in dem Sinn keine Standardfirmware, nur seinen ROM-Bootloader. Die Standardfirmware in dem Sinn ist das von Espressif gelieferte SDK. Natürlich gibt es darin fertige Module, die nur eingebunden werden und nicht weiter bekannt sind (WLAN z.B.). Dieses SDK benutzen aber alle, egal ob LUA, Du in der ArduinoIDE, das ESP-Basic, daß es gibt, die AT-Thinker-Software usw. Ich programmiere den ESP auch aus der ArduinoIDE, C oder C++ oder einer bunten Mischung daraus (ist ja nur Hobby...). Stabilität wird ja oft angesprochen. Hier laufen 6-9 ESPs mit MQTT, teilweise Webserver, ein ICECast-Streaming-Client, alles Experimetierphase. Alle Module laufen mit meiner Software seit inzwischen 3-4 Wochen stabil. Fast alle Module hier sind per OTA updatebar. Manchmal etwas sehr lahme Reaktion des einen Webservers, auf dem ESP läuft aber noch einige, u.a. mein RFM12 für die alten Sensorren im Interrupt usw. WLAN-Reconnects gibt es nur dann, wenn hier mal wieder Hochbetrieb im Umfeld ist (Wochende und alle Nachbarn müssen im Internt kramen), dann hackt aber auch mein Notebook im WLAN. Also belib bei Deiner Kombination, wenn Du das in Gang bekommst, was Du vorhast. PS: ArduinoIDE 1.6.7 und ESP 2.0.0 sind im Moment offenbar stabil, mit ESP 2.1.0 gibt es definitv noch ein paar Bus, auch die IDE1.6.8 hat mich mit irgendeiner Sache genervt. Gruß aus Berlin Michael
OK dann weiß ich erstmal bescheid. Dann werde ich wohl erstmal mal bei C Varinate bleiben da ich mit Lua auch noch nicht vertraut bin. Vielen Dank
Hallo, Stefan U. schrieb: > Aber: Zeitweise Aussetzer mit langen > Übertragungszeiten sind auch damit nicht auszuschließen. Ich denke, das > liegt in der Natur der WLAN netze, dafür kann weder der Chip noch dessen > Firmware etwas. ich hatte durch meine Streamplayer Sache Gelegenheit, mir das reale WALN-Verhalten genauer anzuschauen. Hier sind bis zu 20 WLAN-Netze in erreichbarer Nähe, es ist also ziemlich egal, auf welchem Kanal ich mich mit dem Router rumtreibe. Die ganze Woche über keinerlei Probleme, kontinuierlicher Stream mit 192kBit ohne jede (erkennbare) Verzögerung. Ich habe mit jeweils den zeiger des Playbuffers (20kB) ausgeben lassen, wenn der Fillzeiger auf den Anfang gesetzt wurde. Er kam immer hinterher, Play war im ersten 2k-Block des Buffers. Zum Abend passierte es alle 10-20s, daß Pakete verzögert ankamen oder quittiert wurden. Play war dan im 2.-3. 2k-Block. Aufholen war kein Problem, nach 2 Durchläufen des Loop war er wieder oben. Am Wochenende vergrößerten sich die Verzögerung, Play lief bis auf 12-14k des Buffers runter, wurde aber noch ohne Aussetzer aufgeholt. Es passierte dann aber, das die Verzögerung so groß wurde, daß die 20k leerliefen und es Aussetzer gab. Es gibt zu diesen Zeiten dann auch den Zustand, daß er in 3m Entfernugn vom Router mit -48dBm connectet, kaum Pakete bekommt und nach 2 Minuten aus dem WLAN fliegt und reconnect. Ein verscheiben des ESP-Module um 5cm und drehen um ein paar Grad ergab dann plötzlich eine völlig stabile Verbindung... Der Kram lag ohne Probleme seit ein paar Tagen dort und spielte bis dahin. Das ist WALN in real, mit dem Notebook merke ich es auch, nur da dauert eben mal ein Seitenaufbau etwas länger, das nimmt man garnicht wahr und Audio-Sreaming geht auch problemlos, weil der verfügbare Ram einen viel größeren Buffer zuläßt. Videostreaming ist zu solcehn Zeite bei mir völlig unmöglich. 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.