Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:tech:gw60 [2021/01/18 12:16] – [Erweiterung] bullar | de:tech:gw60 [2021/01/19 08:27] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
====Motivation==== | ====Motivation==== | ||
- | Will man bei der Hausautomatisierung auch die Rolladen einbinden so bedarf es einer entsprechenden Steuerung. Wer nicht gleich die Rolladen selbst umrüsten möchte, kann auf elektronische Gurtwickler ausweichen. Diese sind ausgereift benötigen aber eine externe Stromversorgung. Es sind mehrere Hersteller auf dem Markt zu finden, die auch eine drahtlose Fernsteuerung im Program haben. Gemeinsam ist fast allen, dass sie auf eigene Standards setzen und auf eine Zentrale des jeweiligen Herstellers | + | Will man bei der Hausautomatisierung auch die Rolladen einbinden so bedarf es einer entsprechenden Steuerung. Wer nicht gleich die Rolladen selbst umrüsten möchte, kann auf elektronische Gurtwickler ausweichen. Diese sind ausgereift benötigen aber eine externe Stromversorgung. Es sind mehrere Hersteller auf dem Markt zu finden, die auch eine drahtlose Fernsteuerung im Program haben. Gemeinsam ist fast allen, dass sie auf eigene Standards setzen und eine Zentrale des jeweiligen Herstellers |
{{ : | {{ : | ||
- | {{: | + | {{: |
Ein preiswerter elektronischer Gurtwickler ist der [[https:// | Ein preiswerter elektronischer Gurtwickler ist der [[https:// | ||
- | Es gibt auch ein paar Umbaulösungen im Internet, die z.B. mit Hilfe eines {{https:// | + | Es gibt auch ein paar Umbaulösungen im Internet, die z.B. mit Hilfe eines {{https:// |
Der Traum wäre ein Modul, dass in den vorgesehenen Platz des GW60 Gehäuses passt und auch die aktuelle Position übermitteln kann. Ein Rückkanal steht tatsächlich schon an der Modulschnittstelle zur Verfügung, da RxD und TxD des GW60 Controllers an das Empfangsmodul gehen. Die anliegende Spannung von 5V ist aber nur mit deutlich weniger als 100mA belastbar. Da kommt ein ESP8266 eher nicht in Frage. | Der Traum wäre ein Modul, dass in den vorgesehenen Platz des GW60 Gehäuses passt und auch die aktuelle Position übermitteln kann. Ein Rückkanal steht tatsächlich schon an der Modulschnittstelle zur Verfügung, da RxD und TxD des GW60 Controllers an das Empfangsmodul gehen. Die anliegende Spannung von 5V ist aber nur mit deutlich weniger als 100mA belastbar. Da kommt ein ESP8266 eher nicht in Frage. | ||
- | Bis der Traum sich verwirklichen lies, musste ich auf die neuen Rollos [[https:// | + | Bis der Traum sich verwirklichen lies, musste ich auf die neuen Rollos [[https:// |
==== Hardware ==== | ==== Hardware ==== | ||
Zeile 20: | Zeile 20: | ||
{{ : | {{ : | ||
- | Links ist der Anschluss zum GW60 im Original als Federkontakt ausgelegt. Leider habe ich kein Lieferanten | + | Links ist der Anschluss zum GW60 im Original als Federkontakt ausgelegt. Leider habe ich kein Lieferanten |
{{ : | {{ : | ||
- | Rechts sind die Anschlüsse für die Modulprogrammierung als Pads ausgeführt. Damit lässt sich TRÅDFRI Modul programmieren. Schliesslich will man ja nicht jedesmal eine teure Rollosteuerung von IKEA kaufen um ein Modul für die eigene Lösung zu ergattern. Doch dazu später | + | Rechts sind die Anschlüsse für die Modulprogrammierung als Pads ausgeführt. Damit lässt sich TRÅDFRI Modul flashen. Schliesslich will man ja nicht jedesmal eine teure Rollosteuerung von IKEA kaufen um ein Modul für die eigene Lösung zu ergattern. Doch dazu in einem anderen [[de: |
- | Für die Verbindung mit der TRÅDFRI Steuerung ist der Taster und die LED vorgesehen. Einmal angelernt brauchen wir beides nicht mehr. | + | Für die Verbindung mit der TRÅDFRI Steuerung ist der Taster und die LED vorgesehen. Einmal angelernt brauchen wir beides nicht mehr. Der zur Verfügung stehende Platz reicht um alle Komponenten unterzubringen. |
- | Der zur Verfügung stehende Platz reicht um alle Komponenten unterzubringen. | + | |
{{ : | {{ : | ||
- | Damit auch der Deckel aufs Gehäuse passt, sollte das PCB nur 1mm dick wie beim Original sein. | + | Damit auch der Deckel aufs Gehäuse passt, sollte das PCB wie beim Original |
==== Gehäuse ==== | ==== Gehäuse ==== | ||
Mit einem Messschieber ist das Gehäuse schnell in Fusion360 erstellt und sieht dann so aus: | Mit einem Messschieber ist das Gehäuse schnell in Fusion360 erstellt und sieht dann so aus: | ||
+ | |||
{{ : | {{ : | ||
- | Es lässt wie abgebildet im 3D Drucker ohne Stützstrukturen drucken. Der kleine Block rechts dient zum Schutz der POGO Pins und lässt sich auf diese aufschieben. | + | |
+ | Es lässt | ||
{{: | {{: | ||
Zeile 43: | Zeile 45: | ||
==== Software ==== | ==== Software ==== | ||
- | Das TRÅDFRI Modul ist zwar jetzt elektrisch und mechanisch mit dem GW60 verbunden allerdings kann der GW60 Controller noch nichts mit den Daten anfangen. Dazu muss die vorhandene Firmware erweitert werden. Den GW60 steuert ein PIC16F690 mit on-board Programming Interface. Als preiswerter Programmer bietet sich der PICkit3 an, den es auch als China-Nachbau gibt. | + | Das TRÅDFRI Modul ist nun zwar jetzt elektrisch und mechanisch mit dem GW60 verbunden, allerdings kann der GW60 Controller noch nichts mit den Daten anfangen. Dazu muss die vorhandene Firmware erweitert werden. Den GW60 steuert ein PIC16F690 mit on-board Programming Interface. Als preiswerter Programmer bietet sich der PICkit3 an, den es auch als China-Nachbau gibt. |
- | {{ : | + | {{ : |
Um als erstes die Original Firmware auslesen zu können, müssen wir die GW60 Platine mit dem PICkit3 verbinden. Als sehr hilfreich erweisen sich die Testpads auf der Rückseite des GW60 PCBs. Dort lassen sich leicht die 5 Kabel anlöten. | Um als erstes die Original Firmware auslesen zu können, müssen wir die GW60 Platine mit dem PICkit3 verbinden. Als sehr hilfreich erweisen sich die Testpads auf der Rückseite des GW60 PCBs. Dort lassen sich leicht die 5 Kabel anlöten. | ||
Zeile 55: | Zeile 57: | ||
==== Erweiterung ==== | ==== Erweiterung ==== | ||
- | Der eigentliche Teil der Arbeit bestand nun aus Reverse Engineering. Für die Erweiterung ist genug Platz im FLASH. Der Bereich '' | + | Der eigentliche Teil der Arbeit bestand nun wiederum |
- INIT --> wird einmal während der Initialisierung aufgerufen. | - INIT --> wird einmal während der Initialisierung aufgerufen. | ||
- ISR --> Erweiteung der Interrupt Service Routine | - ISR --> Erweiteung der Interrupt Service Routine | ||
Zeile 98: | Zeile 100: | ||
</ | </ | ||
- | Vorsicht! Die Adressen sind 16-bit Word Adressen. Die jeweils untere Zeile gibt den Originalcode wieder und die darüber liegende den zu patchenden Code. Durch den Austausch springt der Controller jeweils in unsere Erweiterungssoftware und kommt wieder als wäre nichts geschehen. Damit bleibt die gesamte Funktionalität des GW60 erhalten. | + | Vorsicht! Die Adressen sind 16-bit Word Adressen. Die jeweils untere Zeile gibt den Originalcode wieder und die darüber liegende den zu patchenden Code. Das gilt natürlich nur für die mir vorliegende Softwareversion. Allerdings war die Software im Gegensatz zum PCB bei allen meinen zu unterschiedlichen Zeiten gekauften GW60 identisch. |
+ | Durch den Austausch springt der Controller jeweils in unsere Erweiterungssoftware und kommt wieder als wäre nichts geschehen. Damit bleibt die gesamte Funktionalität des GW60 erhalten. | ||
- | Die Grösse des Erweiterungscodes liegt bei 374 Words: | + | Die Grösse des Erweiterungscodes liegt bei 374 Words und ist hier einfach mal gelistet: |
< | < | ||
ADDR 0600h - 0775h | ADDR 0600h - 0775h | ||
Zeile 127: | Zeile 130: | ||
Die Erweiterung in den vier oben genannten Bereichen haben folgende Funktion: | Die Erweiterung in den vier oben genannten Bereichen haben folgende Funktion: | ||
==INIT== | ==INIT== | ||
- | Hier werden die eigenen Variablen initialisiert und die Baudrate auf 2400 festgelegt. Die AUsfuehrung | + | Hier werden die eigenen Variablen initialisiert und die Baudrate auf 2400 festgelegt. Die Ausführung |
==ISR== | ==ISR== | ||
- | Die Originalsoftware empfängt schon Bytes von der UART. Hier müssen wir nur noch mit einem Flag der Erweiterung signalisieren, | + | Die Originalsoftware empfängt schon Bytes von der UART. Hier müssen wir nur noch mit einem Flag der Erweiterung signalisieren, |
==PANEL== | ==PANEL== | ||
- | Hier werden die Tastendrücke simuliert wenn ein entsprechendes Kommando vom TRÅDFRI | + | Hier werden die Tastendrücke simuliert wenn ein entsprechendes Kommando vom TRÅDFRI |
==LOOP== | ==LOOP== | ||
Hier erfolgt züglich die Auswertung eines empfangenden Frames und bei Anfrage wird der Statusframe mit der aktuellen Position gesendet. | Hier erfolgt züglich die Auswertung eines empfangenden Frames und bei Anfrage wird der Statusframe mit der aktuellen Position gesendet. | ||
- | Das ASM File beinhaltet mehr Erklärungen: | + | Das ASM File der Erweiterung |
<file asm GW60_ext.asm> | <file asm GW60_ext.asm> | ||
; File: | ; File: | ||
Zeile 830: | Zeile 833: | ||
</ | </ | ||
- | Nach dem Patch der Originalsoftware verhält sich der GW60 wie ein IKEA Rollo. Es kann über die TRÅDFRI | + | Nach dem Patch der Originalsoftware verhält sich der GW60 wie ein IKEA Rollo. Es kann über die TRÅDFRI |
- | Der Umbau ist bei mir seit April 2020 ohne Probleme im Einsatz. Eine kleine Einschraenkung ergibt sich nur bei manueller Betätigung: | + | |
+ | ==== Fazit ==== | ||
+ | Der Umbau ist bei mir seit April 2020 ohne Probleme im Einsatz. Eine kleine Einschraenkung ergibt sich nur bei manueller Betätigung: | ||
+ | Falls man doch nochmal die Software aktualisieren muss habe ich das Programming Interface nach draussen gelegt. Ist aber sicher nur nice-to-have... | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Downloads ==== | ||
+ | |||
+ | * {{: | ||
+ | * {{: | ||
+ | * {{: | ||
+ | ==== Spenden ==== | ||
+ | Wenn ihr meine Arbeit unterstützen wollt, so könnt ihr mir gerne einen Cappuccino oder so spenden: . | ||
+ | < | ||
+ | <form action=" | ||
+ | <input type=" | ||
+ | <input type=" | ||
+ | <img alt="" | ||
+ | </ | ||
+ | </ |