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.
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.
Kommentar