Ankündigung

Einklappen
Keine Ankündigung bisher.

Zukunftsmusik aus dem Nähkastchen: Firmwareupgrade über den Bus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zukunftsmusik aus dem Nähkastchen: Firmwareupgrade über den Bus

    Hey Leute,

    wollte euch mal an einer kleinen Zukunftsmusik-Idee teilhaben lassen:

    Während ich mit einem anderen Arduino Bastler über den ESP8266 gefachsimpelt habe, und dieser jene Firmware-Updates über das WLAN macht, kam mir die Idee:
    WLAN... braucht so viel Strom dass der Controller nicht vom Bus versorgt werden kann. Wieso also nicht das Update über den Bus machen?!

    Die Theorie sieht wie folgt aus:

    Wir erweitern unser Programmierprotokoll um weitere Nachrichten um häppchenweise eine neue Firmware-Datei auf den ESP8266 angetriebenen KNX Controller zu schieben. Dieser reicht die so erhaltenen Daten an seinen bereits existierenden OTA Updatemechanismus weiter und aktualisiert sich so selbst...

    Mal davon abgesehen dass ich noch ausrechnen muss wie lange so eine Update-Übertragung dauern würde (wir haben ja nur 12 byte pro Telegramm für solche Späße), hätte das den Vorteil dass man gänzlich ohne Zusatzhardware im laufenden Betrieb eine neue Version der Firmware einspielen könnte. Auch aus der Ferne.
    UND: Wenn wir uns einen Programmieradapter mit sogenannten Pogo-Pins basteln würden, könnten wir die für den ESP8266 angetriebenen Controller benötigten ESP12 Module ohne viel Aufwand Vorab mit einem vorbereiteten KNX-OTA-Sketch versehen. D.h. ich lötet nur noch fertig zusammen und könntet ohne Programmieradapter und dergleichen euer KNX Gerät in Betrieb nehmen.

    Aber wo es auch Vorteile gibt, gibt es natürlich auch Nachteile:

    * Die Sache ist nicht 100% trivial in der Entwicklung. Da müsste schon ein wenig Zeit für investiert werden
    * Das ganze ginge bis auf weiteres nur mit dem ESP8266 Controller. Die ganzen herkömmlichen, AVR basierten Arduinos wären außen vor. Denn diese würden einen separaten Bootloader benötigen. Und der wäre für die normalen AVRs (328p,m 32u4, ...) sicherlich zu groß. Einzig der Arduino Zero mit seinem Cortex M0+ "könnte" da mitspielen, wenn man denn einen Bootloader dafür schreiben kann (zu der Kategorie von Embedded-Entwickler zähle ich leider noch nicht).


    Wie gesagt, ist alles noch Zukunftsmusik. Bis dato haben wir ja noch keinen einzigen ESP8266 mit KNX in Betrieb genommen (warte noch auf meine Platinen und Bauteile...).


    Gruß
    Alex

    #2
    Fast 70 Leser, und keiner hat eine Meinung dazu :-(

    Kommentar


      #3
      Na da fang ich mal an. Wie oft muss man den die Firmware ändern?

      Kommentar


        #4
        Ich schätze ein early adopter der nicht wirklich selbst entwickelt wird nicht mehr wie 2-5x im Lebenszyklus eines Gerätes ein Update machen. Wer erst später einsteigt kann gleich auf eine ausgereifte Firmware setzen. Und für die Erstinbetriebnahme könnte es auch praktisch sein, da man weder Programmer noch USB Kabel bräuchte. Zusammenbauen, KNX kabel dran, Knopf drücken und schon kann es losgehen.

        Kommentar


          #5
          Das sehe ich auch so. Bei unseren Entwicklungen sind auch immer Bootloader dabei. Brauchen diese aber nur in der Entwicklungszeit. Wenn die Software release eher nicht mehr.
          Aber die Idee ist gut.
          Ich bleiber erstmal bei den kleine Arduinos. Werde jedoch die Libs in AVR-Studio umschreiben. Da wird das auch mit den Platz nicht so kritisch im µC.
          Das Projekt ist Spitze.

          Grüße Ronny

          Kommentar


            #6
            Bisher haben wir das Limit bei den 328P und 32U4 Controllern nicht ausgereizt, selbst mit so einem Controller dreamy1 's kombinierter Temp,RH und VOC Sensor. Da ist noch einiges an Luft.

            Wenn es doch mal mehr werden sollte, dann eben ein größerer ATmega (denn dann reicht sicherlich nicht nur der Platz nicht mehr, sondern auch die Performance nicht), oder einen Zero oder sowas wie den ESP8266 (der sehr vieeeeel Speicher hat).

            Am Bootloader scheitert es also so schnell nicht. Bis dato haben wir viele begeisterte Bastler die es allesamt mit der SW Entwicklung nicht ganz so haben. Ergo ist es erstmal ein Ziel das System klein genug zu halten damit man mit der Standard Arduino IDE die wirklich jeder bedienen kann auskommt.

            Kommentar


              #7
              Das finde ich gut. Werde mich wenn ich mal wieder Zeit habe aktiv mit dem Projekt beschäftigen und mal ein testboard fräsen und den knx Baustein bestellen.

              Kommentar


                #8
                Wie gross ist den so eine Firmware in kb? Bei 12 Byte 20 Telegramme pro sec kann man pro Minute vielleicht 14 K schaffen.

                Kommentar


                  #9
                  Eben mal geschaut. Die File die auf den ESP geschoben werden muss ist 234k groß (Demo-Sketch mit Debug-Informationen). Bei 14,4k/min würde das Update rund 16-17 Minuten dauern...

                  Das ist irgendwie verdammt lange :-( Und wie das dem Bus so schmeckt wenn da 17min lang riesige Telegramme durchrasen weiß ich auch noch nicht.

                  Mal sehen, vielleicht fällt mir noch was ein. Ansonsten gibt's das OTA-Feature dann halt nur für Geräte die WLAN aktiv haben.

                  [update]
                  Ohne Debug-Informationen/Ausgaben schrumpft der Code auf 230k. Ich tippe mal darauf dass hier "zuviel" unnötiges aus dem ESP8266 SDK mit eingebaut wird, das wir nicht direkt beeinflussen können. Hatte das Thema in der ESP8266 Entwickler-Community angesprochen, aber die meisten stört das nicht, weil der ESP sowieso über genug Speicher verfügt (ESP12E --> 4MB Flash !)
                  Zuletzt geändert von tuxedo; 20.05.2016, 07:42.

                  Kommentar


                    #10
                    Beim synohr braucht es 30 bis 45 min bis die Firmware drauf ist. 10 bis 20 min find ich nicht so wild.

                    Kommentar


                      #11
                      Interessant...Da kommt das update auch über KNX?

                      ​​​​​​Würde trotzdem versuchen wollen das auf 5..10min zu reduzieren, sofern möglich.

                      Kommentar

                      Lädt...
                      X