Ankündigung

Einklappen
Keine Ankündigung bisher.

4TE Reg Controller (ESP8266 Basis)

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

    4TE Reg Controller (ESP8266 Basis)

    Hey,

    neben der Beta3 der Suite bastle ich derzeit an meinem ersten "richtigen" KONNEKTING Device. Erstmal für den Eigenbedarf, aber auch gleich mit Ausrichtung auf "wiederverwendbar für andere Zwecke". Ich stell's mal kurz vor:

    Es wird ein 4 TE Reg Gerät für den Verteilerschrank, modular aufgebaut und möglichst komplett vom Anfänger lötbar, da fast kein SMD.

    Aufbau

    reg.png

    Der Controller sitzt an Platinenposition B und enthält den KNX Transceiver und einen µController. Quasi das "Hirn" des ganzen Geräts.

    An Platinenposition A sitzt später die Applikationsplatine (Releas, PWM Mosfets, ... whatever). Und falls benötigt, kann noch Platine C eingesetzt werden, die eine Benutzerschnittstelle in Form von Tastern LEDs oder was auch immer haben kann.

    Die Platine B ist modular aufgebaut: Sie besitzt eine 20-polige Verbindung (kann man bestückungsmäßig abspecken auf 10) die die Versorgungsspannung in 3.3V und 5V, sowie die Anschlüsse für die KNX-Klemme beherbergt. Über eine Flachbandleitung (steckbar) wird damit die Platine A angebunden.
    Die KNX Klemme selbst, sitzt auf Platine A. So man man alle Layout-Freiheiten und ist nicht an eine bestimmte STelle gebunden. Des weiteren gibt's eine 4-polige Verbindung für Platine C die auf B einfach aufgesteckt wird. Hier sind 3.3V und I2C enthalten (mittels Port-Extender super-leicht auf 8 oder 16 IO Pins aufzubohren).

    Anfängerfreundlich

    Um das ganze möglichst Benutzer und Anfängerfreundlich zu gestalten, ist alles bis auf 2 bzw. 3 Bauteile in THT ( = Nicht-SMD) ausgeführt.
    Lediglich der KNX Transceiver ist SMD. Optional gibt's einen Port-Extender (dann braucht man die vollen 20 Pin der Verbindung zu Platine A), der auch als SMD ausgeführt ist.
    Und zuguter letzt kommt erstmalig ein ESP8266 Microcontroller mit ins Spiel. Dieser bietet 80Mhz Rechenleistung und verfügt über massig an Speicher und RAM.
    Dadurch muss auch der Anfänger selbst bei großen Sketches nicht gleich anfangen mit dem Speicher zu haushalten. Es ist für den Sketch ausreichend Speicher verfügbar und mit RAM ist man auch sehr gut bedient.
    Seine WLAN-Funktionalität "kann" (theoretisch, wenn man hand an die Platine mit Fädeldraht anlegt) genutzt werden, ist aber für's erste nicht geplant (spart viel Strom). Der Microcontroller kommt auf einer eigenen Platine daher, welche flach aufgelegt auf die KONNEKTING Controllerplatine aufgelötet wird:

    esp12e.png

    Alle anderen Teile kann man auch "mit einem Anfängerset" (z.B. http://www.reichelt.de/L-TSET-FP-30/...%F6tkolben+set) löten und braucht weder Lupe noch besondere Kenntnisse oder Fähigkeiten (naja, ein wenig dosieren können sollte man das Lötzin schon...aber das kriegt wohl jeder hin).

    Ich will's noch nicht versprechen, aber die Idee ist die Platine inkl. bestücktem KNX-Transceiver und optional dem Port Extender ordern zu können. Den ESP8266 bekommt man eigentlich ohne weiteres selbst gelötet.

    Layout im Detail

    Die Platine steht bereits zu über 90%. Einen Probeausdruck des Layouts hab ich schon mal ausprobiert:

    2016-03-19.jpg

    Unten links auf der Platine sieht man zwei Taster und eine LED:
    Der linke Taster ist der Reset-Taster und wird im laufenden Betrieb eigenltlich nicht benötigt. Während der Entwicklung ist der aber ganz praktisch.
    Der rechte Taster ist der Prog-Taster und darunter die Prog-LED.
    Bis auf ein paar Buchsenleisten und den Prog-Taster und die Prog-LED sind alle Teile "unten" bestückt.
    Unten links im Gehäuse hab ich schon mal den Ausschnitt für die KNX-Klemme ausprobiert.

    Von unten sieht das dann so aus:

    2016-03-19 (1).jpg
    Links sitzt der Wannenstecker mit 10 bzw. 20 Pins. Oben rechts sitzt der ESP8266. Unten rechts hat man Debug-Schnittstelle sowie Programmierschnittstelle (für den Sketch).

    Besonderheiten

    Des ESP8266 hat zwar jede Menge IO-Pins, doch gehen davon schon allein 6 Stück für die Anbindung des Speichers drauf. Im Gegensatz zu der AVR Familie, hat der ESP8266 selbst keinen Speicher on-board und muss dieses von extern einbinden. Ist aber auf der Modulplatine für den ESP aber bereits geregelt.
    Ich hab die Beschaltung des ESP Moduls so entworfen, dass man die Programmierschnittstelle dediziert zur Verfügung hat. D.h. man kann den Programmieradapter während der Entwicklung angesteckt lassen und kann schnell mal eine neue Version des Sketches aufspielen. Auch gibt es einen dedizierten Debug-Port: Das ist eine "halbe UART-Schnittstelle". Diese verfügt nur über einen TX-Pin + Gnd, aber kein RX. Ist auch nicht nötig. Es reicht ja wenn man die Debug-Ausgaben des Sketches mitlesen kann. Auch hier kann man den Debug-Adapter während der ganzen Entwicklung angesteckt lassen. Da der ESP8266 in dieser Konstellation über 4MB (ja, richtig gelesen...4 MB) verfügt, muss man mit den Debug-Ausgaben auch nicht sparen. Dank der 80Mhz beeinflussen sie auch nicht spürbar die Ausführungsgeschwindigkeit, so dass man den Debug-Code einfach komplett drin lassen kann.

    Besonderheiten, Teil 2

    Das alles bekommt man natürlich nicht geschenkt. Man muss in Form von GPIO Pins dafür bezahlen. In unserem Fall heisst das:
    Es bleiben 4 GPIO Pins am ESP zur freien Verfügung übrig. Das klingt wenig und ist auch wenig. In ein 4TE Modul bekommt man gut und gerne 8 Kanäle (Relais, PWM, ...) rein. Und dann sind 4 Pins zu wenig. Deshalb ist unsere Controllerplatine auch vorgesehen für einen 8-Kanal IO Extender.
    Von den verbleibenden 4 Pins am ESP opfert man 2 für eine I2C Schnittstelle und bekommt dafür 8 IO Pins über den Extender.
    Man hat dann also:
    2x IO Pin des ESP8266
    1x I2C
    8x IO über den Extender

    Der Extender ist optional. D.h. man kann ich Bestückungsseitig weglassen und braucht dann nur einen 2x5er Wannenstecker auflöten (und lässt damit die externder GPIOs weg) statt 2x10. Ist für alle die interessant die mit den wenigen Pins auskommen oder gleich auf I2C setzen.

    Warum eigentlich dieses ESP8266 Modul? Warum nicht einen AVR?

    Nun, zum einen reizt das "neue" unheimlich. Zum anderen hat man mit 80Mhz einfach mehr Zeit zur Verfügung und verpasst somit weniger KNX-Telegramme (das ist unter Umständen nämlich ein echtes Problem).
    Zum anderen ist der ESP einfach klein, sehr günstig zu haben und einfach zum löten. Für unter 4EUR bekommt man deutlich mehr für sein Geld wie bei einem AVR. Aber bzgl. der Pins hat das natürlich auch seine Schattenseiten. Das ist aber nichts das man nicht lösen kann.
    Mein eigentliches Hauptargument ist aber der Speicher... Man stößt da als Anfänger sehr lange an keine Grenzen. Beim AVR hatte ich das Anfangs ständig und es hat mich Stunden gekostet überhaupt rauszufinden was das Problem ist und nochmal einige Stunden den Code so zu optimieren dass der RAM ausreicht.

    Was wird der Spaß kosten und wie läuft das dann ab?!

    Die reine Controllerplatine mit allen Bauteilen wird voraussichtlich rund 20..25EUR kosten. Bis auf den NCN5120, den Port-Extender und den ESP bekommt man alle Bauteile bei Reichelt. NCN und Port-Extender gibt's bei Digikey (Sammelbestellung, damit die VSK von 18EUR wegfallen), den ESP beim China-Mann (<4EUR inkl. Versand).

    Weiter hab ich noch nicht gerechnet, aber z.B. ein einfacher 8-fach Relais-Controller mit Gehäuse dürfte um die 35..50EUR kosten, je nach Ausstattung.

    Alle genannten Zahlen ohne Gewähr!

    Einen genauen Ablauf gibt es noch nicht. Das ist bis jetzt erstmal nur eine Projektvorstellung. Sobald ich das Platinenlayout fertig habe, werde ich mal 10 Platinen ordern und die ersten 1-2 Platinen aufbauen und testen. Dann sehen wir weiter.

    Zukunft

    Wenn das Projekt anklang findet, würde ich es gerne versuchen als "Standard" für Konnekting-Reg-Geräte zu etablieren. Standard im Sinne von: Pin-Belegung des Applikationssteckers, Anordnung der Buchsenleisten für die aufsteckbare Platine C. Welcher uC dann verbaut ist und ob SMD oder THT ist erstmal zweitrangig.


    P.S.
    Für die noch unwissenden hab ich ganz vergessen zu erwähnen: Der ESP8266 lässt sich wie ein normaler Arduino AVR mit der Arduino IDE programmieren. Er hat nur für seine Spezial-Features ein paar API Befehle mehr.
    Zuletzt geändert von tuxedo; 07.11.2016, 20:26.

    #2
    gefällt mir sehr gut, da passt es ja das vor ein paar tagen mein erster ESP8266 zum spielen hier angekommen ist. (hatte aber noch keine zeit mich näher damit zu beschäftigen). also von mir ein klares Daumen hoch und weiter so

    Kommentar


      #3
      ich finde das ganze auch äusserst spannend. wenn man i2c hat könnte man noch schön ein 4x20 display einbauen und so bestimmte zustände anzeigen.

      für mich nach wie vor ein thema ist die ansteuerung von led-stripes da gibt es meiner meinung nach auch erheblich bedarf dafür ...

      Kommentar


        #4
        Was du ansteuerst, ist dann Sache der Applikationsplatine. Hab zum Testen einen 12Bit, 16 Kanal PWM Controller den man mit i2c ansteuern kann daheim liegen.
        Bei mir ist das Thema LED Controller auch weit oben auf der Liste. 4 Kanäle sollten ohne weiteres im 4TE Gehäuse machbar sein.

        Man muss nur darauf achten, dass, sobald eine Fremdspannung (12V oder 24V für die LEDs) ins Spiel kommt, die Controller-Platine galvanisch vom Rest getrennt ist.

        Hier bin ich noch am schauen wie man das am besten löst ohne für jeden IO-Pin einen Optokoppler davor zu setzen.
        Das einfachste wäre es, die I2C Verbindung über den Applikationsstecker auf der Applikationsplatine mit einem AdumXXXX zu entkoppeln und "unten" nur diese I2C Verbindung nach "oben" zu nutzen. Ob das wirklich eine gute Idee ist, muss ich mir noch überlegen.

        LIeber wäre es mir, der KNX Transceiver wäre schon galvanisch vom µC getrennt. Aber irgendwann ist auch der Platz auf der Controller-Platine erschöpft. Mit SMD ließe sich da einiges an Platz sparen, aber dann wäre der ganze Sinn der Übung für die Katz :-)

        Bzgl. Display im Reg-Gehäuse:
        Du hast von der "Platine B" bis unter die Gehäuseabdeckung nur 12..13mm Platz. Und . Die meisten LCD Displays (vor allem die 4x20) sind größer/dicker.davon musst du noch die Verbindung für Platine C abziehen.

        Etwas in dieser Bauform wäre aber sicherlich gut möglich: http://www.amazon.de/8-Zoll-Serien-T.../dp/B00Q6WVVA4

        Würde mich übrigens freuen etwas Feedback zur Idee mit "so wenig SMD wie möglich" zu bekommen...

        [update]
        Bzgl. LED Controller fällt mir gerade noch was ein:

        Der von mir genannte PWM Controller hat 16 Kanäle... Mehr wie 4 könnten in einem 4TE Gehäuse ggf. thermisch ein Problem sein (ich werde auf 12V und 4..5A pro Kanal optimieren). 12 Kanäle sind dann dummerweise ungenutzt. Macht aber nix:

        1) Der Controller ist nicht sonderlich teuer (~2,50EUR/Stück bei Digikey)
        2) Der µC hat genug Power um mehrere solcher Controller anzusteuern.
        3) Man könnte die I2C Verbindung aus dem ersten 4-Kanal-PWM-Dimmer rausführen und in den nächsten Stecken. Und von da wieder in den nächsten, ....

        Dadurch hätte man einen Master (mit Hirn) und mehrere Slaves (ohne Hirn). Durch die Adressierung sind bis zu 62 solcher PWM Controller möglich. Jeder mit 16 Kanälen. Macht fast 1000 Kanäle :-)
        Nein, so viel braucht man nicht. ABER dadurch lässt sich der Kanalpreis drastisch drücken. Mit einem passenden Adapter, kann man den PWM Controller auch auf Rastermaß bringen und zur Not die Slaves auf Lochraster aufbauen.

        Ist bis jetzt alles noch fantastiererei... Aber man sieht schnell: Die Möglichkeiten sind unendlich.

        I2C wird mir immer sympathischer.

        Um das LED Thema auszuweiten, können wir ja bei Gelegenheit einen neuen Thread aufmachen. Aber erst würde ich den Controller gern mal fertigstellen und testen.
        Zuletzt geändert von tuxedo; 21.03.2016, 14:55.

        Kommentar


          #5
          So wenig SMD wie moeglich, find ich gut, dann ist der Einstieg fuer Anfaenger leichter.
          Einheitliche Pin-Belegung des Applikationssteckers und Position der Buchsenleiste fuer die Aufsteckplatine, ist eine super Idee.

          Kommentar


            #6
            beim 4 Kanal 12V Dimmer bin ich dabei

            Binäreingänge wäre auch ein guter Anwendungsfall.

            Alex, evtl. auf deiner Platine einen Adum zwischen µC und i2c Header vorsehen. und zwar, so dass man die "Lötbrücken" trennen und Adum drauflöten muss. So wärst noch flexibler.
            PWM Controller sitzt wohl auf der Applikationspaltine? dann braucht man die 10-Extra-Pins nicht und somit reicht ein Adum für i2c aus.

            Kommentar


              #7
              Anwendungsfälle gibt's viele. Da ich aktuell drei RS485 Geräte habe die alle über einen USB-Adapter an einem mini-server hängen, wäre auch ein Mehrfach-RS485 Controller eine Idee. UARTs mit I2C Anschluss gibt's ja auch.

              Den Adum auf die Controllerplatine mit drauf machen wird langsam "eng". Muss ich mal schauen.
              Denke aber dass die meisten Anwendungsfälle ohne externe Spannung auskommen, so dass das fast schon unnötig wäre das auf dem Controller vorzusehen. Aber wenn Platz ist, werde ich versuchen das mit drauf zu packen.

              Und ja: Adum für I2C würde wohl reichen für den LED-Controller.

              Weiß nur noch nicht welches Gerät ich dann, wenn ich soweit bin, als erstes angehe: LED Controller oder 8-fach Relais-Controller (bistabil). Mit letzterem würde ich mit einer HW-Entwicklung mindestens 2 Geräte (unterscheiden sich nur in der SW) erschlagen.

              Kommentar


                #8
                also ich persönlich hab mit smd kein Problem, etwas Respekt hab ich vor dem NCN5120 aber auch das werden wir hinbekommen.
                Wenns aber ohne Geht ist es sicherlich für einige ungeübte einfacher.

                Kommentar


                  #9
                  Moin,
                  am LED-Controller (für APA102 LEDs) bin ich derzeit dran, ist aber noch nicht über nen Prototyp hinaus.
                  Grob ist es so aufgebaut:
                  KNX >> Siemens Busankoppler >> ADUM >> Arduino Mega (ließe sich dann auch durch den ESP ersetzen, wichtig ist wohl ein 5v-Pegel) >> 3-4 LED - Streifen.
                  Stromversorgung über ein 5V Schaltnetzteil.

                  je LED-Streifen sollen mindestens folgende Funktionen angesteuert werden:
                  - An/Aus (Switch)
                  - Helligkeit gesamt (sollte man nicht dimmen, flackert bei den APAs da nur 5 bit breit)
                  - Rot (0-255)
                  - Grün (0-255)
                  - Blau (0-255)
                  - RGB-Wert und Fadezeit (2 Byte, Softstart)

                  Über abrufbare Chases/Sequenzen denke ich derzeit noch nach, bin aber noch zu keinem eindeutigen Ergebnis gekommen, da stört mich primär, dass ich noch keinen guten Weg gefunden habe, wie ich diese Anweisungen per KNX übertrage.

                  Viele Grusse
                  Hans

                  Kommentar


                    #10
                    "Normale" LED Streifen hab ich bereits mit MOSFETs mit 5V TTL Logik gedimmt. Funktioniert prima, auch mit höheren Lasten.
                    Werde das noch auf 3.3V adaptieren und dann irgendwann eine Applikationsplatine daraus machen.

                    Kommentar


                      #11
                      das master-hirn / slave konzept gibt es schon von einem KNX Hersteller. Da kann man die Aktoren dann verbinden und mischen. so kann man sich einen 'kombi aktor' aufbauen ...

                      wobei ich die sachen nicht nur in der Verteilung (REG) sehe sondern durchaus auch im Haus verteilt. Und beim LED controller warum auf 12V optimieren. Kabeltechnisch wäre 24V besser da die Ströme sich halbieren.

                      Kommentar


                        #12
                        Die 12V / 24V Diskussion hatte ich schon.

                        24V hat Vorteile, ja. Aber bis dato hat sich 24V für mich nicht gerechnet. Meine 12V LED Streifen warn (sind sie glaub immer noch) ne ganze Stange günstiger als 24V. Da kann ich mit dem bisschen Verlust den ich durch 12V fahre eindeutig leben und alt werden.

                        Hast du nen Link zu dem Hersteller? Würde mich interessieren was der so alles anbietet.

                        Kombi-Aktor an sich klingt gut. Nur wird's dann zunehmend mit der Software schwerer. Mein gestern angedachte Mehrfach-RS485 Aktor hat bereits einen Haken:

                        Die Software die je RS485 Kanal da drauf muss ist an und für sich schon recht aufwendig und speziell. Das wäre dann ein 3-in-1 Gerät. So eine Lösung würde als 1 bis 2TE Einzelgerät mehr Sinn ergeben.

                        Aber für den Dimmer an sich wäre das eine Idee um einfach die Anzahl der Kanäle ausweiten zu können, und damit die Kanalkosten weiter zu senken. Der Sketch skaliert da einfach entsprechend der Anzahl Kanäle mit.

                        Kommentar


                          #13
                          ja die geräte sind von theben und nennen sich mix2. hab die bei mir mit 2x4 Jalousie.

                          naja ich will mein garagentor mit led beleuchten. einmal rund rum so zum ausprobieren. sind insgesamt 8 meter. wollte da einfach mal ein wenig spielen mit den leds da wärs mir im prinzip auch egal ob 12 oder 24v ...

                          aber ich möchte bei mir im wohnzimmer leds indirekt einmal rundrum machen das sind 34m. und anfahren wollte ich das zentral aus dem verteiler da kommen ein paar meter kabel zusammen. von daher bin ich schon an den 24V interessiert. ich denke mal das prinzip und das layout ist das gleiche nur halt andere bauteile bei der bestückung. das sollte man ja ohne grossen aufwand hinbekommen.

                          Kommentar


                            #14
                            Wenn ihr eine Arduino Standardansteuerung 5V auf Mosfet (Ugs) macht, dann ist es absolut egal ob ihr 12V oder 24V anschließt. Der Mosfet muss halt die 24V (Uds) schalten können, aber das tun die meisten eh.
                            www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

                            Kommentar


                              #15
                              Naja, was mich bei den 12V +x - Streifen halt massiv stört, ist dass ich noch keine gefunden habe, bei denen ich die LEDs einzeln ansteuern kann - das machen die 5V-Streifen deutlich besser und ich kann mit dem gleichen Netzteil auch gleich noch den Arduino mit betreiben (liegt bei mir alles hinter einer Vorsatzscheibe / GK-Wand, daher ist Platz hier nicht das Problem)...

                              Kommentar

                              Lädt...
                              X