Verschiedenes > ESP8266

Sming als Alternative zu Arduino

(1/6) > >>

Pf@nne:
Moin,

Patrick hat seinen ESP8266-RGB-Controller mit nicht mit der ArduinoIDE umgesetzt.
Stattdessen hat er das ganze Projekt mit Sming umgesetzt.
https://forum.fhem.de/index.php/topic,34464.0.html

Programmiert wird dann unter Eclipse, Sming stellt dann eine Art Frontend des Hersteller-SDK.
So kann in gewohnter Arduinomanier programmiert werden.

Wer nutz noch Sming?
Was waren ggf. die Gründe für den Umstieg?

Ich habe für mich beschlossen das mal zu testen.
Der Installations und Konfigurationsaufwand ist nicht ganz unerheblich, aber ja nur einmal vorhanden.

http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/135-sming-alternative-zur-arduinoumgebung
http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/136-sming-installation
http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/137-sming-hello-world

Vielleicht haben ja noch mehr Bastler Interesse an dieser Alternative und berichten über ihre Erfahrungen.


Gruß
Pf@nne

ext23:
Nabend,

ist das jetzt nur für den ESP gedacht? Oder generell Arduinos?

Ich benutze seit Jahren schon AVR Studio. Mittlerweile kann man dort auch Arduino Projekte öffnen/kompilieren. AVR Studio benutze ich wegen dem debuggen, das kann die Arduino IDE ja nun überhaupt nicht wenn ich mich recht erinnere. Auch zum flashen und setzen der Lock- und Fusebits ist das bequemer, so was geht mit der Arduino IDE auch nicht. Aber ich nutze auch nicht die Arduino Umgebung für meine Projekte. Aber es geht wie gesagt mit der neuen Version.

/Daniel

Pf@nne:
Moin,

Sming ist speziel für den ESP8266 gemacht.

In Sachen Debugging ist Eclipse natürlich weit vor der ArduinoIDE, ist aber für den Anfang ein schönes Installationsgefriemel.
Auch die Arduino Sketche lassen sich nicht mehr 1:1 kompilieren.

Ich werde das mal beobachten......

mrpj:
Den Thread gerade erste gesehen... wegen dem RGBWW Controller hatte ich die letzten Wochen mehr mit Sming zu tun und hab noch ein paar Punkte, die vielleicht für den einen ganz spannend sind:


* Sming ist event basiert
Bei Arduino Code werden z.B. webrequests via polling im loop() { } abgehandelt. Bei Sming wird die Asynchrone Struktur des espressif SDKs an den Nutzer weiter gereicht - bedeutet im Beispiel webserver, dass Anfragen dann abgehandelt werden, wenn diese beim Controller eintreffen.

Wenn es darum geht mehrere Anfragen zu verarbeiten, ist ein event-basiertes System, wenn es nur einem Thread wie beim Arduino IDE gibt, immer im Vorteil. Anfragen werden "schneller" abgehandelt. Es wird kein unnötiger Code der im loop vorhanden ist zwischendurch ausgeführt z.B.


--- Code: ---void loop () {
webserver->handleclient();
mqtt->handlerequest();
tcpserver->handlerequest();
udpserver->handlerequest();
leds->refresh();
(....)
}

--- Ende Code ---

In Sming fällt die permanente Ausführung von diesen Routinen weg. Einzig und allein in dem Beispiel, benötigt es einen regelmäßigen Timer der "leds->refresh();" durchführt (im RGBWW Controller sind das 20ms)



* Sming stellt Methoden zur Verfügung die auf den espressif SDK Implementierungen basieren
Während der Entwicklung des RGBWW Controllers bin ich über die Fallstricke des Arduino SDKs gestolpert, dass dort viele der Funktionalitäten die eigentlich von espressif zur Verfügung gestellt werden, nochmals neu implementiert wurden und damit eine Reihe von Problemen mit sich bringt.
Konkret war es bei dem RGBWW Projekt die Nutzung des PWMs. Auch wenn Espressif eine PWM Funktionalität zur Verfügung stellt, nutzt die Arduino Variante eine Implementierung die mit dem Timer/Interrupts vom Wifi Modul gekoppelt ist. Bei verschiedenen Frequenzen und Werten hatte ich damit dann regelmäßige Aussetzer/Probleme.
Die Implementierung des Arduino SDKs verändert einige Optionen/Register, so dass es mir nicht mehr möglich war die PWM SDK Funktionen zu nutzen.




* Sming hat einen eigenen Bootloader (rBoot)
Der Bootloader von raburton (rBoot) ist fest in Sming integriert. Der Bootloader bietet z.B. die Möglichkeit vor dem starten schon nach OTA updates zu suchen. Auch ist es möglich ihn als echten Bootloader zu betreiben, der es ermöglicht über verschiedene Methoden roms/dateisystem je nach wunsch zu switchen, bevor diese gestartet wird.

Gleichzeitig ist es möglich auch mehr als nur 2 roms im Flash zu haben.


* Sming ist als BETA für den RTOS SDK vorhanden
Mit dem ESP32 hat espressif angekündigt - vorerst nur den SDK, der auf FreeRTOS basiert, zur Verfügung zu stellen. Es gibt derzeit schon eine Version von Sming die auf dem RTOS SDK basiert - Funktionalität wird gerade nach und nach portiert.

Der Arduino Aufsatz ist noch nicht soweit und basiert sehr stark auf dem espressif NON-OS SDK



Ich bin sehr positiv gegenüber Sming eingestellt und habe bei der Entwicklung des RGBWW Projekts immer wieder patches und Funktionsergänzungen zu Sming geleistet. Auch wenn der erste Aufwand etwas größer erscheint, empfinde ich Sming als ausgereifter

Bapt. Reverend Magersuppe:
Hi,

das macht ja einen sehr guten Eindruck. Je näher man an der Hardware arbeitet, desto rock-stabler wird die ganze Sache.

Jetzt habe ich anhand der Anleitung versucht, das ganze Paket zu installieren. Leider wird (mindestens) Eclipse nicht installiert und ich habe keinen Schimmer wodran das liegt. Wo kann ich suchen?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln