R20 sorgt dafür, dass ein I/O-Pin kippt (PortE.0), wenn die Batterien entfernt werden. Dies kann zum Speichern von sensiblen Daten (Uhrzeit) im EEPROM genutzt werden, damit man beim Wiedereinlegen der (neuen) Batterien nicht wieder alles neu einstellen muss. Wird auch hier erläutert: http://www.mikrocontroller.net/articles/Sparmatic_Heizungsthermostate#Batterieerkennung
> Huuu - mutig. Der Mega169P ist nur bis 4.5V spezifiziert.
in meinem Datenblatt steht 1V8..5V5
???
ot:
Anfängerfrage,
wenn ich das Thermy-Board für alternative Zwecke
einsetzen möchte, lässt sich der mega196pa einfach so
löschen, bzw. muss ich irgendetwas beachten?
Kay schrieb: >> Huuu - mutig. Der Mega169P ist nur bis 4.5V spezifiziert. > in meinem Datenblatt steht 1V8..5V5 Ich denke auch, dass da jemand was durcheinander gebracht hat. Die Teile gingen schon immer bis 5,5 V hinauf, aber sie brauchen mindestens 4,5 V, um mit maximalem Takt laufen zu können. Spielt aber hier keine Rolle, denn hier muss der Controller bis 1,8 V hinab laufen können (Entladeschlussspannung der 2 x LR6), damit darf er nur mit einem entsprechend geringeren Takt arbeiten. > wenn ich das Thermy-Board für alternative Zwecke > einsetzen möchte, lässt sich der mega196pa einfach so > löschen, bzw. muss ich irgendetwas beachten? Ja, kannst du.
Ich kann mich auch erinnern, in einem alten Mega169-Datenblatt etwas von 4.5V als obere Grenze gelesen zu haben. Ob´s ein Typo war... wer weiß?!
Knut Ballhause schrieb: > Ob´s ein Typo war... wer weiß?! Kann nicht anders sein, denn die AVRs dieser Jahre sind allesamt im gleichen Prozess hergestellt worden, mit jeweils vergleichbaren Grenzdaten.
Hatte mich damals auch gewundert, aber es hätte ja sein können, dass gerade der extrem sparsame Mega169 mit LCD-Controller und dessen Ladungspumpe andere Spezifikationen hat, als seine "normalen " Kollegen...
ohne alles lesen zu müssen: war der Originalregler ein P-, PI- oder PID-regler? MfG
Knut Ballhause schrieb: > Autor: > > Knut Ballhause > (Firma: TravelRec.) > (travelrec)> > > Datum: 23.09.2012 20:06 Hallo Knut, ich wollte mal fragen wie genau ich mein JTAGICE MKII an den Zero anschließe. Habs vorher mit dem AVRISP MKII gemacht und nun hab ich mit dem neuen gerät probleme. Könntest du mir viellecht erklären wie ich den genau anschließen soll. Der hat ja die Verbindungen TCK, GND, TD0, VTref, TMS, nSRST, nTRST, TDI und GND. Ich kann das Tool dann ja parallel als ISP und JTAG anschließen und beide Optionen gleichzeitig nutzen. Ich wäre dir sehr Dankebar. Gruß Ingmar
Ingmar H. schrieb: > Der hat ja die Verbindungen TCK, > GND, TD0, VTref, TMS, nSRST, nTRST, TDI und GND. Laut Schaltplan und Fotos gibt es dafür Testpads, an die du entsprechend Drähte löten musst. Ich habe mal die Pads eingerahmt, die es meiner Meinung nach sein sollten (habe meine Comets noch nicht geöffnet). TravelRec brauchst du nach JTAG nicht zu fragen, er schrieb oben schon, dass er das nicht nutzt.
Jörg Wunsch schrieb: > Ich habe mal die Pads eingerahmt, > die es meiner Meinung nach sein sollten (habe meine Comets noch nicht > geöffnet). Ja genau die hab ich auch ausprobiert nur leider funzt das nicht. Bekomme da immer eine Fehlermeldung, das ich nach der Betriebsspannung gucken soll oder mein Tool richtig anschließen. PS: Weißt du wie man am besten die Temperatur anzeigen lassen kann??? Gruß Ingmar
Jörg Wunsch schrieb: > TravelRec brauchst du nach JTAG nicht zu fragen, er schrieb oben > schon, dass er das nicht nutzt. Ich könnte aber, da ich ein JTAG-ICE mkII ´rumliegen habe (originalverpackt ;-)). Beim alten Zero habe ich die JTAG-Pins teils für das Funkmodul benutzt, beim Comet nutze ich sie gar nicht, weil mir das Aufdröpseln der Geräte nervig genug ist. Die USB-Buchse bietet alle für mich nötigen Pins. Ingmar H. schrieb: > Ja genau die hab ich auch ausprobiert nur leider funzt das nicht. > Bekomme da immer eine Fehlermeldung, das ich nach der Betriebsspannung > gucken soll oder mein Tool richtig anschließen. Vielleicht hast Du wirklich VCC nicht richtig dran... oder unabsichtlich verfused? Ingmar H. schrieb: > PS: Weißt du wie man am besten die Temperatur anzeigen lassen kann??? Messen, umrechen und dann anzeigen oder was war Deine Frage?
Knut Ballhause schrieb: >> Ja genau die hab ich auch ausprobiert nur leider funzt das nicht. >> Bekomme da immer eine Fehlermeldung, das ich nach der Betriebsspannung >> gucken soll oder mein Tool richtig anschließen. > > Vielleicht hast Du wirklich VCC nicht richtig dran... oder unabsichtlich > verfused? Hardware kann man nicht verfusen. ;-) Noch bevor das JTAG-ICE überhaupt versucht, JTAG zu reden (ab da käme die Fuse ins Spiel), will es die anliegende Betriebsspannung "sehen". Die muss an VTref (Pin 4 des ICE-Steckers) geführt worden sein; neben der Messung dient sie auch den Pegelwandlern im ICE als Referenz/Versorgung. Dass die Spannung anliegt, erkennt man daran, dass neben den zwei initial roten LEDs die dritte LED grün leuchtet. Bevor man diesen Zustand erreicht hat, braucht man gar nicht versuchen, mit Software (AVR Studio, AVRDUDE) auf das JTAG-ICE zuzugreifen. (Eine grüne LED allein genügt aber nicht als Voraussetzung: auch, wenn man den 10poligen Stecker 180° verdreht aufsteckt, sind die Pegel so, dass die LED grün leuchtet, aber eine JTAG-Kommunikation bekommt man dann natürlich nicht zustande. ;-)
Jörg Wunsch schrieb: > aber eine JTAG-Kommunikation bekommt man > dann natürlich nicht zustande. ;-) Also ich hab mir diese 6 Pads, die auf dem Bild markiert waren zu herzen genommen. Hab alle möglichen Kombinationen ausprobiert und klappt einfach nicht. Und die anderen 6 Pads sind fürs ISP zuständig. Hab ich auch probiert und funktioniert ebenfalls nicht. Ich weiß nicht was ich noch machen soll. Jörg Wunsch schrieb: > (Eine grüne LED allein genügt aber nicht als Voraussetzung: auch, wenn > man den 10poligen Stecker 180° verdreht aufsteckt, sind die Pegel so, > dass die LED grün leuchtet, aber eine JTAG-Kommunikation bekommt man > dann natürlich nicht zustande. ;-) Die Spannung hat er mir richtig angezeigt, im AVR-STudio und die erste LED auf meinem Toll hat geleuchtet. Genauso wie das zweite Rot sein muss. Allerdings war die letzte LED mal Rot und mal aus. Wenn sie rot aufleutet heißt das, dass keine Verbindung zum AVR-Studio hergestellt wurde. Wenn jemand einen guten Rat oder weiß wo der Fehler liegt wäre ich sehr dankbar.
Ingmar H. schrieb: > Also ich hab mir diese 6 Pads, die auf dem Bild markiert waren zu herzen > genommen. Hab alle möglichen Kombinationen ausprobiert Das ist keine zielführende Methode. ;-) > und klappt > einfach nicht. Ja. > Und die anderen 6 Pads sind fürs ISP zuständig. Hab ich > auch probiert und funktioniert ebenfalls nicht. Davon braucht man nur 4, denn VCC (VTref beim JTAGICEmkII) und GND sind dort nicht mit dabei. ISP muss man unbedingt zuerst zum Laufen bekommen, denn sie haben da die JTAGEN-Fuse abgeklemmt (high fuse = 0xD9, Auslieferungszustand ist 0x99). Da der Controller mit 1 MHz läuft, muss man den ISP-Takt entsprechend gering ansetzen. Ich bin mit 100 kHz zu Werke gegangen, dann klappt das. Die JTAGEN-Fuse lässt sich natürlich nur wieder setzen, indem man zuvor einen chip erase macht, denn der Chip ist natürlich gelockt. Nachdem man auf diese Weise JTAG wieder aktiviert hat, klappt das auch. Ich habe mir einen "Tintenfisch-Adapter" vom JTAGICE gekürzt und da direkt angelötet, siehe Foto.
Jörg Wunsch schrieb: > Davon braucht man nur 4, denn VCC (VTref beim JTAGICEmkII) und GND > sind dort nicht mit dabei. Das ist schon mal gut zu wissen. Aber welche 4 Tintenfisch-Adapter müssen auf die Pads?? Vielen Dank für die Hilfe Jörg
Ingmar H. schrieb: > Jörg Wunsch schrieb: >> Davon braucht man nur 4, denn VCC (VTref beim JTAGICEmkII) und GND >> sind dort nicht mit dabei. > > Das ist schon mal gut zu wissen. Aber welche 4 Tintenfisch-Adapter > müssen auf die Pads?? MISO, MOSI, SCK, /RESET. Hatte ich aber nur kurz einen Stecker angelötet, für den Rest werde ich dann JTAG benutzen. Die Pinbezeichnungen findest du hier: https://www.mikrocontroller.net/wikifiles/c/cb/SparmaticComet_Platine_BOT.jpg Selbstverständlich musst du natürlich GND und VTref vom AVRISPmkII (oder JTAGICE) trotzdem noch anschließen, nur nicht an diese Pads! Die musst du dir woanders her suchen.
Jörg Wunsch schrieb: > MISO, MOSI, SCK, /RESET. Hatte ich aber nur kurz einen Stecker > angelötet, für den Rest werde ich dann JTAG benutzen. Ich wollte mich erstmal für das engagement bedanken echt super... Der ISP-Mode funzt jetzt mittlerweile auch allerdings klappts mit dem JTAG noch nicht. Hab die Tintenfischarme genauso angebracht wie, nur leider kann er den Debug-Mode nicht ausführen, weil Ihm die Device ID fehlt, die kann er nicht auslesen. Was beim ISP wiederrum geht. Kann ich eigentlich den ISP prallel zum Debug-Modus ausführen, also so das ich iihm zuerst die neue Firmware flash und dann debugge??? Gruß Ingmar
Ingmar H. schrieb: > Was beim ISP wiederrum geht. Hast du die JTAGEN-Fuse denn wieder gesetzt? Wie ich oben schrieb, die haben sie im Auslieferungszustand gelöscht gehabt. Nein, ein chip erase allein genügt dafür nicht, er ist lediglich die Voraussetzung, dass man die Fuses überhaupt wieder anfassen darf (weil der Chip mit gesetzten Lockbits kommt und man dann keine Fuses mehr ändern darf). > Kann ich eigentlich den ISP prallel zum Debug-Modus ausführen, also so > das ich iihm zuerst die neue Firmware flash und dann debugge? Könnte gehen, ist aber unnötig, da man die JTAG-Schnittstelle ja nicht nur zum Debuggen, sondern auch zum Programmieren benutzen kann. In diesem Falle ist sie sogar schneller, weil man aufgrund der CPU-Frequenz von 1 MHz nur mit weniger als 250 kHz ISP-Takt fahren darf, während man die Programmierung via JTAG beliebig schnell vornehmen kann, denn JTAG hat seinen eigenen Takt. (Beim Debuggen muss man aber auch bei JTAG auf kleiner 250 kHz zurückgehen, denn dann ist der CPU-Takt wieder der Master, gegen den intern alles synchronisiert werden muss.) Daher hatte ich die ISP-Leitungen auch nur kurz dran, um die JTAGEN-Fuse wieder zu aktivieren.
Jörg Wunsch schrieb: > Daher hatte ich die ISP-Leitungen auch nur kurz dran, um die JTAGEN-Fuse > wieder zu aktivieren. So habe ich es jetzt auch gemacht und klappt alles einwandfrei. Vielen Dank nochmal
Hallo, wäre jemand von euch bereit, mir die alternative Firmware auf zwei meiner "Sparmatic Zero"-Thermostate zu flashen ? Ich besitze zum flashen leider nicht das nötige Equipment, und habe das Problem, dass einer meiner Regler sich immer selbst vom Ventil reißt. Ich würde mich natürlich dafür mit einem Beitrag zur Kaffee/Bierkasse erkenntlich zeigen ;) Grüße, Christian
Christian Ostermeier schrieb: > Ich besitze zum flashen > leider nicht das nötige Equipment Kein AVR´ler in der Nähe? ;-) Christian Ostermeier schrieb: > zwei > meiner "Sparmatic Zero"-Thermostate Sind das noch die alten rechteckigen Kisten oder die neuen abgerundeten? Weil die neue Firmware ist ja noch nicht fertig... Christian Ostermeier schrieb: > Ich würde mich natürlich dafür mit einem Beitrag zur Kaffee/Bierkasse > erkenntlich zeigen ;) Klingt gut, Rückporto wäre auch nicht schlecht. Schick mal her, wenn es die alten Modelle sind, ich hab´ zufällig die Sources hier :-P. Du weißt aber, dass einige Funktionen nicht unterstützt werden (keine Urlaubsfunktion, nur 2 Heizzeiten/Tag, kein Kinderschutz)?
Hallo, es handelt sich um dieses Modell : http://cdn.idealo.com/folder/Product/2475/7/2475740/s1_produktbild_gross/eurotronic-sparmatic-zero.png Kinderschutz u. Urlaubsmodus brauche ich alles nicht. Aber die Anzeige der IST-Temperatur, die Akku-Verträglichkeit und das eventuell verbesserte ADAP-verhalten wären für mich evtll. nützlich.
Hallo Christian, Deine Zeros sind gestern angekommen und gehen heute wieder in die Post. Danke für die Kartonbeilage ;-)
Hallo, ich finde diese software ziemlich interessant, aber wie öffne ich die Software? Wäre super, wenn du mir da helfen könntest. Kann ich die Software auch auf einen anderen Stick packen, denn der Stick ist aktuell nicht lieferbar und ich würde es gerne nutzen. Vielleicht kannst du mir auch die normale Software schicken oder mir hier irgendwelche Tipps geben. Bin gerade in eine Wohnung gezogen, wo diese Thermostate schon in der Wohnung waren und habe noch nie mit den Teilen gearbeitet. Danke für deine Hilfe. Viele Grüße
Denis Lehmann schrieb: > ich finde diese software ziemlich interessant, aber wie öffne ich die > Software? Hast Du den ganzen Thread gelesen? Denis Lehmann schrieb: > Kann ich die Software auch auf einen anderen Stick packen, denn der > Stick ist aktuell nicht lieferbar und ich würde es gerne nutzen. ??? Wenn Du den originalen Programmierstick meinst, dann wird dieser nicht zum Firmware-Update benutzt, sondern nur zur Konfiguration der Heizuparameter. Daher kannst Du mit dem "Stick" auch keine neue Firmware auf die Regler laden, sondern brauchst einen speziellen Programmieradapter und einen AVR-Programmer und eine Entwicklungsumgebung für AVRs. Das sind die in den Reglern verwendeten Mikrocontroller. Denis Lehmann schrieb: > Bin gerade in eine Wohnung gezogen, wo > diese Thermostate schon in der Wohnung waren und habe noch nie mit den > Teilen gearbeitet. Dann lies Dir am besten mal den ganzen Thread durch und überlege, ob sich ein Eingriff in die laufende Situation lohnt und ob dieser vom Vermieter (?) auch erlaubt wird.
Dear Knut Ballhause, Please excuse my English. My German is very bad. A Google Translate is at the bottom. Almost a year ago I bought 14 Thermy's at Aldi. My plan has always been is to modify them so that I could control the temperature remotely. I have been searching for a way how to do this, until I saw your new firmware! Very nice that with your firmware flash it is possible to switch between Comfort and "Night Temp" by use of 1 press on the middle button! My plan is to solder 2 wires to the Thermy print board so that I can switch remotely between Comfort and "Night Temp" with the use of "Klik aan – Klik uit". http://www.klikaanklikuit.nl/shop/producten/sets/apa3-1500r-2/ So now the difficult part :-) How to flash the Thermy's... I read the thread "Alternative Firmware für Sparmatic Zero Heizungsthermostat" however I'm not familiar with AVR Studio or AVR flash devices. Therefore I'm having doubts if I should do this myself or perhaps you could do it for me for an affordable fee? However that would perhaps take the fun out of it :-) If I would do it myself I've understood that I need the following: * I can flash the Thermy with the use of a AVR-ISP mkII like this one: "http://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-ALL-AVR/3/index.html?;ACTION=3;LA=446;ARTICLE=110345;GROUPID=2969;artnr=DIAMEX+ALL+AVR;SID=14ULstz38AAAIAAH4vF7s566cf936ec6a279df940bedfcbdc676a" * I have to flash with 3.3V and 20kHz and AVR Studio * I have de make a cable from the AVR-ISP mkII to the Thermy like this: "Beitrag "Re: Preisgünstiger Heizungsregler bei Praktiker"; * The latest software version is 0.14. I found the software here: "Beitrag "Re: Alternative Firmware für Sparmatic Zero Heizungsthermostat"; There is still one obstacle: I want to make some electronics which converts the "Klik aan – Klik uit" to a pulls for the middle button. However I won't know for sure if the Thermy is pulsed to Comfort or to "Night Temp". Is there a way to see if a chip output is high, or low? Or could this functionality be programmed over 2 button; 1 for Comfort and one for "Night Temp"? Thanks in advance for you help. Best regards, Han Hallie Hallo Knut Ballhause, entschuldigen Sie mein Englisch. Mein Deutsch ist sehr schlecht. Ein Google Translate ist an der Unterseite. Vor fast einem Jahr kaufte ich mich 14 Thermy beim Aldi. Mein Plan war sie so ändern, dass ich die Temperatur fernsteuern konnte. Ich habe nach einer Möglichkeit, wie dies zu tun gesucht, bis ich deine neue Firmware entdeckte! Sehr schön, dass mit einen Firmware-Flash es möglich ist, zwischen Komfort und "Nacht Temp" durch Verwendung von 1 Druck auf die mittlere Taste zu wechseln! Mein Plan ist 2 Adern zu löten auf die Thermy platte, so dass ich aus der Ferne Umschalten kann zwischen Komfort und "Night Temp" mit der Verwendung von "Klik aan - Klik uit". Für link. [Bitte siehe Englisch-Version für Link] So, jetzt der schwierige Teil :-) Wie die Thermy zu Flashen ... Ich las das Gewinde "Alternative Firmware für Sparmatic Null Heizungsthermostat" aber ich bin nicht vertraut mit AVR Studio oder AVR Flash-Geräte. Deshalb bin ich mit Zweifel, ob ich sollte diese selbst oder vielleicht könnten Sie es für mich tun für eine erschwingliche Gebühr? Jedoch, das nehmt vielleicht den Spaß daraus :-) Wenn ich es selbst tune, habe ich verstanden dass ich den folgenden benötige: * Ich kann die Thermy mit der Verwendung eines AVR-ISP mkII wie diese verbinden: [Bitte siehe Englisch-Version für Link] * Ich sollte mit 3,3 V und 20 kHz und AVR Studio verbinden * Ich sollte einen Kabel fabrizieren für dem AVR-ISP mkII zu der Thermy: [Bitte siehe Englisch-Version für Link] * Die neueste Software-Version ist 0,14. Ich fand die Software hier: [Bitte siehe Englisch-Version für Link] Es ist immer noch ein Hindernis: Ich möchte ein bißchen Elektronik, die das "Klik aan - Klik uit" wandelt machen. Das ist für die Konvertierung für die mittlere Taste. Allerdings werde ich nicht sicher wissen, ob die Thermy Comfort oder "Night Temp" gepulst wird. Gibt es eine Möglichkeit zu sehen, ob ein Chip Ausgang die 1 oder 0 ist? Oder könnte diese Funktionalität über 2 Taste programmiert werden; 1 für Komfort und einen für "Night Temp"? Vielen Dank im Voraus für Ihre Hilfe. Mit freundlichen Grüßen, Han Hallie
Han H schrieb: > So now the difficult part :-) How to flash the Thermy's... The biggest thing there is that you have to get access to the /RESET line. ISP needs 6 lines, but the Mini-USB socket only has 5 pins. Thus, /RESET is a copper plane on the opposite part of the PCB, so you have to drill a hole into the Thermy's case, and somehow contact a wire to that plane. > * I can flash the Thermy with the use of a AVR-ISP mkII like this one: > Reichelt DIAMEX-ALL-AVR Well, this is not the AVRISP mkII (which is from Atmel). They claim compatibility with AVRDUDE and AVR Studio, so one would guess it's possible to do it. > * I have to flash with 3.3V and 20kHz and AVR Studio You can use a much higher frequency than 20 kHz; at least 200 kHz ought to work. > I want to make some electronics which converts the "Klik aan – Klik uit" > to a pulls for the middle button. However I won't know for sure if the > Thermy is pulsed to Comfort or to "Night Temp". I guess it's not pulsed, but to be sure, Knut has to answer it, or someone has to look into the source code.
Ich hab mal eine Frage speziell zum Programmierstick: Wäre es nicht interessant, wenn man den als universellen AVR Programmierstick verwenden könnte? Von der Hardware her müsste das doch sowas sein?
Marvin eigentlich schrieb: > Ich hab mal eine Frage speziell zum Programmierstick: Wäre es nicht > interessant, wenn man den als universellen AVR Programmierstick > verwenden könnte? Nein, das geht deswegen nicht, weil dieser "Programmierstick nur einen über den Computer transferierten Datensatz über ein proprietäres Interface in das EEPROM des Hauptcontrollers spielt. Auch dieser Stick nutzt nicht den /Reset-Pin und kann demzufolge auch keine AVRs programmieren, höchstens über einen bereits eingespielten Bootloader. Marvin eigentlich schrieb: > Von der Hardware her müsste das doch sowas sein? Nein. Nur bedingt, siehe oben. @Han Hallie Han H schrieb: > Almost a year ago I bought 14 Thermy's at Aldi. Han H schrieb: > * The latest software version is 0.14. I found the software here: > "Beitrag "Re: Alternative Firmware für Sparmatic Zero Heizungsthermostat" This Firmware is not compatible with the ALDI THERMY, due to hardware upgrade between Sparmatic Zero (for that the firmware was made in 2009) and the newer THERMY (End of 2011). A compatible firmware exists for Sparmatic Comet, which is 99% compatible with the THERMY, but this is still in experimental state due to time constraints. Sorry for that. Please check this thresd: Beitrag "Entwicklungen und Forschung um den Sparmatic Comet / Zero v2 Heizungsthermostat"
Knut Ballhause schrieb: > Nein, das geht deswegen nicht, weil dieser "Programmierstick nur einen > über den Computer transferierten Datensatz über ein proprietäres > Interface in das EEPROM des Hauptcontrollers spielt. Auch dieser Stick > nutzt nicht den /Reset-Pin und kann demzufolge auch keine AVRs > programmieren, höchstens über einen bereits eingespielten Bootloader. Ich meinte ja nicht mit der original firmware des Sticks, sondern rein die hardware. Den Reset noch zu ergänzen wäre ja kein Problem. Natürlich nicht über den USB Stecker...
Marvin eigentlich schrieb: > Ich meinte ja nicht mit der original firmware des Sticks, sondern rein > die hardware. Dazu kann ich leider nichts sagen. Wenn der Heizungsreglercontroller einen Bootloader hat, wäre das natürlich möglich. Aber das würde die Kapazität des ohnehin etwas kleinen Flashs unnötig einschränken.
Hallo Herr Ballhausen ich besitze Cometregler Rev 02 die ich an mischventile betreiben möchte, leider arbeiten diese ventile genau verkehrt herum ( normal ohne betätigung offen ) da bei inbetriebnahme messfahrt erfolgt ,kann ich die regler so nicht einsetzen ich habe die motor polarietät umgedreht ,leider ohne Erfolg. es kommt fehlermeldung. sehen sie eine Möglichkeit die arbeitsweise des Reglers so zu programieren das er auf die mischventile passt mit freundlichen grüssen aus dem Schwabenland
Manfred Weisser schrieb: > ich besitze Cometregler Rev 02 die ich an mischventile betreiben möchte, > leider arbeiten diese ventile genau verkehrt herum Hmmm... Manfred Weisser schrieb: > da bei inbetriebnahme messfahrt erfolgt ,kann ich die regler so nicht > einsetzen Die Messfahrt muss auch erfolgen, damit der Regler den Ventilhub lernen kann. Es ist die Frage, wie die anschließende Regelung dann auf das Ventil wirkt. Manfred Weisser schrieb: > ich habe die motor polarietät umgedreht ,leider ohne Erfolg. > es kommt fehlermeldung. Natürlich. Damit kann die Firmware nicht umgehen, da der Ventilstößel so nie am inneren Anschlag ankommt. Manfred Weisser schrieb: > sehen sie eine Möglichkeit die arbeitsweise des Reglers so zu > programieren das er auf die mischventile passt Das geht bestimmt. Man müsste einfach die Regelung umkehren und den Rest so lassen. Einige Anpassungen bei der Messfahrt müssten noch gemacht werden. Haben Sie nähere Infos zu den Mischventilen? Passt der Regler denn rein mechanisch?
hallo Herr Ballhause das Ventil ist von der fa Honeywell Type V5833A der regler passt mech nur wie gesagt es arbeitet genau verkehrt herumm wie standardventile gruss aus dem schwabenland
OK, haben Sie die Möglichkeit, die Firmware der Comet-Regler zu ändern, also einen modifizierten USB-Stecker, einen AVR-Programmmer und das ATMEL-Studio 6.1? Wie gedenken Sie die Solltemperatur des Mediums zu messen?
hallo Herr Ballhause mir fehlt das schaltbild des modifizierten USB-Stecker ,das schaltbild habe ich nicht gefunden ,mit dem foto komme ich nicht klar aber programmer und software ist in der firma , da wird mir ein kollege behilflich sein den sensor habe ich mit abgeschirmten käbelchen ca 100mm verlängert und widerstand eingefügt für den offset habe es auch ausgetestet und tut (mit normaler heizung ausprobiert) wenn der regler ohne widerstandskerrektur die temeratur regeln würde , wäre das natürlich der absolute hit !! mit sonnigen grüssen aus dem schwabenland vielen dank !!!
Manfred Weisser schrieb: > mir fehlt das schaltbild des modifizierten USB-Stecker ,das schaltbild > habe ich nicht gefunden ,mit dem foto komme ich nicht klar Wenn sie von vorn in den Mini-USB-Stecker gucken und der breite Teil unten ist, dann ist von links beginnend Kontakt 1: Vcc 2: MISO 3: MOSI 4: SCK 5: Masse Pin 4 ist an normalen Mini-USB-Steckern nicht belegt und der Kontakt muss im Steckergehäuse (mühsam) freigelegt und mit Fädeldraht kontaktiert werden. Es soll auch Steckersets am Markt geben, die vollständig belegt sind. Der noch fehlende Pin RESET muss über einen Federdraht 1.5mm oberhalb des Steckergehäuses hergestellt werden. In den Comet ist daher oberhalb der USB-Buchse ein 1.5mm Loch mit 1.5mm Abstand vom Lochrand zur Buchse zu bohren. Hierbei darf nur das Kunststoffgehäuse durchbohrt werden. Bohrt man tiefer, wird unweigerlich das LCD beschädigt. Manfred Weisser schrieb: > den sensor habe ich mit abgeschirmten käbelchen ca 100mm verlängert und > widerstand eingefügt für den offset Offset kann man in der Originalfirmware einstellen oder ist dieser Einstellbereich zu gering? Manfred Weisser schrieb: > wenn der regler ohne widerstandskerrektur die temeratur regeln würde , > wäre das natürlich der absolute hit !! Dazu kommen wir, wenn der Rest funktioniert. Absolut hilfreich wäre eines der von Ihnen verwendeten Ventile als Testkandidat bei mir vor Ort.
hallo Herr Ballhause vielen dank für die promte anschlussbeschreibung das mit dem offset ist für mich kein problem habe es auch nicht mit dem softwareoffset probiert weil laut beschreibung nur +-5C° einstellbar sind ich aber eine vorlauftemperatur 45-50C° habe und der fühler an dem rohr befestigt wird leider habe ich kein ersatzventil das ich ihnen zuverfügung stellen kann auser einem standardventil für heizkörper gruss aus dem sonnigen süden
OK, ich probiere nächste Woche mal ´was aus, wenn Sie keinen Programmierstecker aud absehbare Zeit zusammenbauen können, können Sie mir auch einen Ihrer Regler zuschicken, dem ich die Software mal testhalber aufspiele. Schicken Sie mir doch eine PN.
hallo Herr Ballhause den progamieradapter habe ich zusammengebaut da ich kein internetfuchs bin kann ich mit ( Schicken Sie mir doch eine PN. ) nichts anfangen. mit feundlichen grüssen vom wohltemperierten sonnigen süden
Manfred Weisser schrieb: > PN PN: private note - private Nachricht anmelden und dann auf "(travelrec)" im header klicken
Manfred Weisser schrieb: > den progamieradapter habe ich zusammengebaut Das ist doch schon mal ein Anfang. Zum Umschreiben der Routine bin ich noch nicht weiter gekommen, muss mal sehen, was die nächsten Tage bringen. Wenn ich ´was habe, stelle ich die *.hex zum Probieren hier ´rein. Ansonsten können wir die Kommunikation vielleicht privat abwickeln. water schrieb: > PN: private note - private Nachricht Exakt. Ich bekomme dann eine e-Mail vom Forum-Server, die ich beantworten kann und die anschließend Ihnen zugeht.
Anbei sind 2 flashfertige .hex-Dateien. Da es 2 verschiedene Comet-Regler auf dem Markt gibt, muss die jeweilige Datei für den passenden Regler verwendet werden. Die älteren Regler tragen keine Aufschrift auf dem Gehäuse und die Tasten sind direkt beschriftet. Diese Regler verwenden den ATMEGA 169P. Die neueren Regler tragen die Aufschrift "Comet" mit geöffneter Ellipse auf dem Gehäuse und die Beschriftung ist über den Tasten auf dem Gehäuse angebracht. Diese Regler verwenden den ATMEGA169PA. Die Programme funktionieren weitgehend kompatibel zu der originalen Firmware, bis auf die noch nicht implementierten Funktionen und die zusätzlichen Istwertanzeigen. Im Menü gibt es einen zusätzlichen Eintrag an der Stelle von "INST", was durch "ADAP" abgedeckt ist, da das Ventil ohnehin immer erst auffährt. Dieser Eintrag nennt sich "VENT", wie Ventil. Drückt man die OK-Taste, erscheint das blinkende "NORM". Dies ist die Einstellung für normale Ventile, die beim Eindrücken des Stiftes schließen. Mit dem Drehgeber kann man auf das blinkende "INVE" drehen. Diese Einstellung kehrt die Regelung um, so dass Ventile bedient werden, die beim Eindrücken des Stiftes öffnen. OK bestätigt die jeweilige Einstellung und verlässt das Menü. Bitte testen Sie diese Firmware, ob sie Ihren Ansprüchen genügt oder ob eventuell Anpassungen vorgenommen werden müssen. Die Offset-Funktion ist noch nicht implementiert.
Einstellung der Fuses:
1 | Extended: 0xFF |
2 | High: 0xD1 |
3 | Low: 0x62 |
> PN:
hallo herr Ballhause
habe es endlich geschafft die software von ihnen
(Sparmatic_Comet_M169P.hex )
in betrieb zu nehmen
soweit tut die richtungsumkehr
ein kleines problem habe ich aber
in der anzeige kommt wenn ich das richtig sehe ( uhrzeit solltemp
isttemp)
im wechsel
die isttemp kommt aber nicht richtig, das heist sehr stark verzögert
( ich kann den tempsensor mit jeder gewünschten temp bis 0-80°
temperieren )
desweiteren ist der arbeitspunkt von 4-30° vom gefühl zu knapp
4-50° denke ich wäre besser
mfg we
Manfred Weisser schrieb: > habe es endlich geschafft die software von ihnen > (Sparmatic_Comet_M169P.hex ) > in betrieb zu nehmen Schön! Manfred Weisser schrieb: > in der anzeige kommt wenn ich das richtig sehe ( uhrzeit solltemp > isttemp) > im wechsel > die isttemp kommt aber nicht richtig, das heist sehr stark verzögert Das Messintervall ist 3 Minuten, daher wird die Anzeige des Istwertes auch nur alle 3 Minuten aufgefrischt. Häufigeres Messen verbraucht mehr Strom und ist in so trägen Systemen nicht unbedingt nötig. Manfred Weisser schrieb: > desweiteren ist der arbeitspunkt von 4-30° vom gefühl zu knapp > 4-50° denke ich wäre besser Das stimmt wohl. Die Stelle habe ich nicht geändert, der Einstellbereich stammt noch von den normalen Raumthermostaten, da will man selten mehr als 30°C. Werde ich ändern und Ihnen zusenden. BTW: stellen Sie bitte sicher, dass die Zeit und das Datum richtig eingestellt sind. Wird die Firmware das erste Mal geflasht, ist das EEPROM nicht initialisiert. Deshalb kann es sein, dass die einzelnen Variablen außerhalb des erlaubten Bereiches liegen. Erst ein Überlauf wird sie in den korrekten Bereich laufen lassen. Am besten drehen Sie dazu bei allen Variablen (Jahr, Monat, Datum, Stunden, Minuten) das Drehrad stetig nach links, bis Sie merken, dass die erlaubten Werte für den höchsten und niedrigsten Wert angefahren werden (Beispiel: Monat wechselt beim Linksdrehen von 1 auf 12, nicht auf 99). Die neuen Werte werden beim Verlassen des Menüs in das EEPROM übernommen und müssen dann nicht wieder initialisiert werden.
:
Bearbeitet durch User
Hallo Herr Weisser, anbei die Dateien mit Regelbereichserweiterung bis 50°C.
Tolles Projekt! Danke dafür. Werde das mal für mich ins Auge fassen.
Jo, bei direkten Fragen zum aktuellen Projektstatus bitte PN schicken, um den Thread nicht zu überladen. Werde in der kalten Jahreszeit noch einige Erweiterungen vornehmen. Aktuell ist eine externer Baustein zum Anschluss an die USB-Buchse dazugekommen, der seinerseits den Anschluss eines NTCs mittels Kabel ermöglicht. Somit kann man dann beispielsweise Fußbodenheizungen kontrollieren, indem man die Rücklauftemperatur misst und auf einen Sollwert regelt. Externer Baustein deshalb, weil die Cometen schlecht zu öffnen und erst recht schlecht wiederzuverschließen sind. Dieser externe Baustein ließe sich dann auch mit einem RFM70 erweitern, so dass eine Funkanbindung zur Verfügung stünde. Als externe Controller kommen Tiny13A und Tiny24A zum Einsatz. Anbei die Eagle-Files, funtionierende Beta-Versionen. Als USB-Stecker kommen handelsübliche 4-pin Mini-USB5-Stecker zum Einsatz, die direkt auf die Platinen gelötet werden. Beiliegendes Foto ist vom RFM70-Tray.
Meine Herren, ich schlacker mit den Ohren was alles geht. Was wohl nicht geht, ist eine digiSchaltuhr für eine Steckdose, die über usb programmierbar ist. Die suche ich händefringend. Der USB-Programmierstick von Zero wäre doch schon mal ein guter Ansatz. Wenn jemand sowas kennt: her damit. gruss dj
dieterj schrieb: > Was wohl nicht geht, ist eine digiSchaltuhr für eine Steckdose, die über > usb programmierbar ist. Sinnvoller ist es, eine über Bluetooth programmierbare Schaltuhr zu bauen. Dann kann man sich die Potentialtrennung in der Schaltsteckdose schenken und muss auch kein Kabel ziehen. Weiteres Plus: man kann - die entsprechende App vorausgesetzt - die Steckdose über ein Smartphone oder ein Tablet programmieren ;-)
Habe heute meine ersten 2 Test-Comet erhalten und sie gleich mal eingebaut um zu sehen, wie sie arbeiten. Die ersten Stunden schon mal alles bestens, sehr nette Teile. Hat denn jemand für den Comet schon eine RFM12-Huckepack-Platine gemacht um den Comet in ein Home-Automation-Netzwerk zu integrieren, d.h. ihn Temperaturen an die Zentrale senden zu lassen und von der Zentrale die Temperaturvorgaben zu setzen?
Mahlzeit! Ich hab die Cometen jetzt schon ne Weile und was mich total nervt ist die Adaption, die mit der Zeit verloren geht. Dann heizt es mir jedes Mal sinnlos das Wohnzimmer über Nacht. Könnte man da nicht eine Funktion einbauen, die mitbekommt, dass die Temperatur nicht sinkt, obwohl das Ventil zu ist, und dann eine automatisch Neuadaption starten? Fragt sich natürlich auch, warum die Adaption verloren geht.... Liegt es an der wackeligen Plastikkonstruktion der Adapter? Ich hab Danfoss RA. Lohnen sich Messingadapter? 10EUR pro Stück die da teilweise verlang werden find ich ziemlich happig... Oder verliert die Originalfirmware mit der Zeit die Kalibrierung? Bevor ich die Dinger wegschmeiße, bin ich bereit, es mit alternativer Firmware zu probieren. Bzw. falls jemand passenden Quellcode in einer Hochsprache hat, würde ich mich sogar selbst daran versuchen... EDIT: ich hätte im Parallelthread nachschauen bzw. posten sollen... Beitrag "Entwicklungen und Forschung um den Sparmatic Comet / Zero v2 Heizungsthermostat" Naja... vielleicht bekomme ich hier trotzdem ne Antwort.
:
Bearbeitet durch User
Andreas K. schrieb: > vielleicht bekomme > ich hier trotzdem ne Antwort. Klar, e-Mail-Benachrichtigung macht´s möglich ;-) Andreas K. schrieb: > was mich total nervt ist > die Adaption, die mit der Zeit verloren geht. Andreas K. schrieb: > Oder verliert die Originalfirmware mit der Zeit die Kalibrierung? So ist es. Ich habe mit der alternativen Firmware auch erst so meine Schwierigkeiten gehabt, weil es eben schwergängige und leichtgängige Ventile gibt und die Erkennung der richtigen Schaltpunkte nicht trivial ist. Daher messe ich die oberen und unteren Totpunkte ständig nach. Meine Testregler funktionieren derweil ganz gut. Andreas K. schrieb: > Bevor ich die Dinger wegschmeiße, bin ich bereit, es mit alternativer > Firmware zu probieren. Bzw. falls jemand passenden Quellcode in einer > Hochsprache hat, würde ich mich sogar selbst daran versuchen... Hochsprache gibt´s bei mir nicht, dafür aber ASM. Die Firmware ist auch noch nicht in allen Teilen fertig, aber die timergesteuerte Regelung funktioniert. Schick mir mal ´ne e-Mail, dann sende ich Dir das Projekt. Alternativ kannst Du die anderen kursierenden Firmwares ausprobieren.
hallo tolles Projekt, an dem hier gefeilt wird :-) Doch vorwiegend habe ich ein banalers(?) Anliegen: ist es möglich die FW des SparmaticZero dahingehend zu ändern, anstatt den 7-Tage-Wochenrythmus auf ein 10-Tage-Rythmus zu ändern? Konkret sollen meine 3 Regler unabhängig vom Wochentag alle zwei Tage ein anderes Programm fahren, welches sich nach 10Tagen wiederholt: [c]Tag 1+2 14-22 Uhr Heizzeit Tag 3+4 8-12 und 21-23 Heizzeit Tag 5+6 12-20 Uhr Heizzeit Tag 7-10 8-22 Uhr Heizzeit[/kursiv/]
Mathias M. schrieb: > Doch vorwiegend habe ich ein banalers(?) Anliegen: > > ist es möglich die FW des SparmaticZero dahingehend zu ändern, anstatt > den 7-Tage-Wochenrythmus auf ein 10-Tage-Rythmus zu ändern? Banal? Naja... Möglich? Sicher, aber nicht so ohne Weiteres. Die Firmware ist mit den Wochentags-Timern ziemlich tief verankert. Eine Änderung würde einen massiven Eingriff in das Programm und die vorgesehenen Speicherblöcke erfordern. Der Arbeitsaufwand dafür wäre schätzungsweise mit 10 Stunden ununterbrochener Programmierung zu veranschlagen, mit anschließenden Tests. zudem wäre dies dann eine eigene Firmware, die separat zu der "normalen" zu warten wäre. Für ein multifunktionales Timerprogramm ist der Speicher im Controller zu knapp. Wenn Du selber tätig werden möchtest, nimm Dir die Sourcen vor - ich habe die Zeit nicht wirklich.
Knut Ballhause schrieb: > Wenn Du selber tätig werden > möchtest, nimm Dir die Sourcen vor Knut, ich habe viel aus deinen Beiträgen gelernt und möchte deine Arbeit nicht schlechtreden. Aber bevor du die Sourcen rausgibst, fallen Weihnachten und Ostern auf den selben Tag. Seit Anfang an vertröstest du alle Anfragenden, oder hab ich da in der Zwischenzeit etwas verpasst? Gruß, Torsten
Torsten F. schrieb: > oder hab > ich da in der Zwischenzeit etwas verpasst? Ja hast Du, ich habe in der Zwischenzeit per e-Mail an etwa 1 Dutzend Interessierte Sourcen für den Comet verschickt.
Knut Ballhause schrieb: > Torsten F. schrieb: >> oder hab >> ich da in der Zwischenzeit etwas verpasst? > > Ja hast Du, ich habe in der Zwischenzeit per e-Mail an etwa 1 Dutzend > Interessierte Sourcen für den Comet verschickt. Das Problem an der Sache ist wahrscheinlich, dass der Knut froh ist, wenn er überhaupt mal dazu kommt an der Firmware weiter zu machen und kann den Aufwand von richtigem Opensource nicht leisten. Gleichzeitig kann man nicht mehr in Ruhe an seinen Ideen basteln, weil viel Wünsche, Input und Checkins reinkommen, die man alle bearbeiten, verwalten, überarbeiten muss. Und ab dann kommt man nicht mehr zu seinen eigenen Ideen, wenn man nicht viel Zeit hat. Wenn man überhaupt genug Zeit für obiges hat. Also spricht er lieber 1:1 mit wenigen, die es ernst meinen und ihn nicht mit Ideen und wilden Änderungen fluten. Kann das schon nachvollziehen. Habe mir den Code inzwischen auch schon mal kurz durchgeschaut: übersichtlich, verständlich, gut gemacht. Wobei es für mich wg Asm eine Produktivitatsbremse gibt, weil es 15 oder 20 Jahre her ist, dass ich das letzte Mal Assembler programmiert habe, deshalb wäre mir C schon lieber. Das Projekt ist aber schon groß genug, dass eine Portierung auf C nicht mal an einem Wochende gemacht ist. Und dann müsste man noch ständig syncen, wenn man den Stand gleich behalten will. Also heißt das für mich: für ein kleines Feature lieber mal 1 Wochende Asm friemeln, dann geht das danach auch wieder leichter.
Knut Ballhause schrieb: > Sicher, aber nicht so ohne Weiteres. das höhrt sich für mich schon mal sehr aufbauend an, danke. > Der Arbeitsaufwand dafür wäre schätzungsweise mit 10 Stunden > ununterbrochener Programmierung zu veranschlagen > Wenn Du selber tätig werden möchtest, nimm Dir die Sourcen vor Kann mir schon denken, dass mir niemand die Arbeit fürn Obulus abnehmen möchte (oder doch jemand?). Da die Dinger, allein wegen dem Genannten für mich praktisch wertlos sind, werd ich mich in die Thematik mal einstudieren. Bleibt mir vorerst ein fettes Lob für die bisherige Arbeit auszusprechen.
Anbei zwei neue Comet-Hex(en), einmal für den neuen (mit Comet Logo und ohne Tastenaufdruck, ATMEGA169PA) und einmal für den älteren Comet (ohne Logo und mit Tastenaufdruck, ATMEGA169PV). ChangeLog: - Fehler in Programmiermenü beseitigt: Bei der Erstellung von mehr als 2 Timerintervallen pro Tag wurden, wenn der letzte Timer inaktiv ist, darauf folgende Timer im RAM gelöscht und auch beim Speichern in das EEPROM übernommen - Programm ist auf externe Sensoren (RFM70-Tray) vorbereitet - Build Nummer 006. Sourcen auf Anfrage bei mir.
So, nach einigen Wochen mit Knut's Firmware kann ich sagen, dass die Regler damit super funktionieren. Kein Überheizen mehr (es sei denn meine kleine Tochter hat "sabotiert") und auch kein unnötiges Rumregeln. Bin sehr zufrieden! Die neue Firmware hab ich noch nicht geflasht, weil ich eh nur 1 Heizzeit pro Tag programmiert hab.
Danke für die Blumen ;-). Frohes Neues an alle Mitleser!
Hallo Knut, jetzt wo es richtig Winter geworden ist muss ich mich etwas korrigieren - die Regler überheizen manchmal noch - nämlich morgens wenn die Solltemperatur um 7:00 von 18 auf 23 Grad oder so springt. Da hatte ich auf einmal in einem größeren Zimmer 28 Grad und das Heizungsventil war immernoch offen - das war um 8:30. Adaptieren hat erstmal geholfen und heute früh war es nicht so. Woran könnte das liegen? Reagiert der Regler zu zaghaft wenn es deutlich zu warm ist? Bei 3 Grad Übertemperatur würde ich (d.h. wenn ich der Regler wäre...) erstmal sagen: Ventil komplett zu - auf Anschlag - und abwarten. So eine Art Panik-Modus ;)
Andreas K. schrieb: > jetzt wo es richtig Winter geworden ist muss ich mich etwas korrigieren > - die Regler überheizen manchmal noch - nämlich morgens wenn die > Solltemperatur um 7:00 von 18 auf 23 Grad oder so springt. Hmm, könnte die Vorlauftemperatur vielleicht zu hoch sein? Bei unserer Anlage fahren wir mit moderater Vorlauftemperatur und von daher sind die Regler schnell genug zu. Schau mal, ob Du den Fehler reproduzieren kannst, dann kann ich mich darum kümmern. Knut
Auf die Vorlauftemp hab ich leider keinen Einfluss - ist ein Mehrfamilien-Mietshaus... Ich find's jedoch merkwürdig, wie der Regler immernoch das Ventil offen haben kann, wenn Ist>28 und Soll=23. Reproduzieren lässt es sich leider nicht - scheint eher sporatisch aufzutreten. Ich könnte mir hier eine Art Panik-Funktion vorstellen, die den Regler garantiert schließt wenn Soll mehr als 3 Grad über Ist liegt... Was meinst Du dazu?
Andreas K. schrieb: > Ich find's jedoch merkwürdig, wie der Regler immernoch das Ventil offen > haben kann, wenn Ist>28 und Soll=23. Ja, ist merkwürdig und bei mir noch nicht aufgetreten... Andreas K. schrieb: > Reproduzieren lässt es sich leider nicht - scheint eher sporatisch > aufzutreten. Das deutet auf einen grundsätzlichen Firmware-Fehler hin, da die Regelung normalerweise adaptiv ist und solche Probleme daher nicht auftreten dürften. Wahrscheinlich ist eine in die Regelung eingehende Variable verändert worden, weshalb die Regelung dann nicht mehr funktioniert. Für eine Fehlerbehandlung müsste man eine gewisse Reproduzierbarkeit haben Andreas K. schrieb: > Ich könnte mir hier eine Art Panik-Funktion vorstellen, die den Regler > garantiert schließt wenn Soll mehr als 3 Grad über Ist liegt... Was > meinst Du dazu? Das würde den Fehler nicht beseitigen, sondern nur die Auswirkungen begrenzen. Wenn die Regelung nach der Panik-Funktion dann nicht anständig weiterläuft, wird es in Deiner Wohnung recht kalt... Wir sollten versuchen, das Problem einzugrenzen. Es gibt eine Debug-Funktion im Heizungsregler, die über das Menü zu erreichen ist: - Menu-Taste einmal drücken - mittels Drehgeber auf 'DBUG' drehen - OK-Taste drücken (FIRM und V006 blinken abwechselnd) - mit Drehgeber 1x rechts drehen, FUZZ und ein Wert blinkt - weiter nach rechts drehen, POSI und ein Wert blinkt - weiter nach rechts drehen, VTOP und ein Wert blinkt - weiter nach rechts drehen, RWAY und ein Wert blinkt Wenn der Regler wieder überheizt, bitte alle 4 Werte notieren und mir mitteilen.
:
Bearbeitet durch User
Ok, danke - ich check das mit dem Debugmodus. FUZZ klingt nach Fuzzy-Logik - ist das ein Schwellwert für's Ansprechen? POSI=Aktuelle Position, VTOP=Anschlagsposition? Was bedeutet RWAY? Was mir noch eingefallen ist - Du schreibst immer dass Du Akkus nimmst - ich nehm Batterien - Akkus mit 1.3V pro Zelle liefern den vollen Kurzschlossstrom, ne Batterie wahrscheinlich nicht mehr. Ich hab bei nem anderen Regler bei 2.7V Gesamt-Batteriespannung beobachtet, dass der Regler zwar beim Adaptieren voll zu dreht, nicht aber beim Regeln. Ansonsten - der Panikmodus sollte natürlich wieder deaktiviert werden sobald Soll unter Ist gesunken ist ;) Dann dürfte eigentlich nichts schiefgehen...
:
Bearbeitet durch User
Andreas K. schrieb: > FUZZ klingt nach > Fuzzy-Logik - ist das ein Schwellwert für's Ansprechen? Nee, das ist die adaptive Regelung. Die Temperaturkurve um den Sollwert ist in 5 Bereiche eingeteilt, in denen unterschiedlich stark und in Abhängigkeit zum Temperaturverlauf geregelt wird. Andreas K. schrieb: > POSI=Aktuelle > Position, VTOP=Anschlagsposition? Was bedeutet RWAY? Soweit korrekt, RWAY ist der Regelweg, den das Ventil beim letzten Regelvorgang zurückgelegt hat. Andreas K. schrieb: > Was mir noch eingefallen ist - Du schreibst immer dass Du Akkus nimmst - > ich nehm Batterien - Akkus mit 1.3V pro Zelle liefern den vollen > Kurzschlossstrom, ne Batterie wahrscheinlich nicht mehr. Das ist wohl wahr. Wenn die Batterie leergenuckelt ist, wird die Regelung den Motor wahrscheinlich zudrehen wollen, die Batterien geben dann aber nicht genug Saft. Ergebnis: das Ventil bleibt ein Stück weit offen. Vielleicht wäre es sinnvoll, den Batterietyp und somit die Entladeerkennung einstellbar zu machen. Die Entladeerkennung müsste dann auch bei laufendem Motor das Einbrechen der Spannung feststellen, um rechtzeitig zu warnen. Nicht zuletzt deswegen nehme ich Akkus, da ich noch mit der Funkschnittstelle experimentiere und noch nicht alle Stromsparmaßnahmen greifen, wenn der Funk ausfällt. Das würde immer einen neuen Satz Batterien bedeuten, wenn man´s nicht merkt. Bei Akkus spielt das keine Rolle. Andreas K. schrieb: > Ansonsten - der Panikmodus sollte natürlich wieder deaktiviert werden > sobald Soll unter Ist gesunken ist ;) Dann dürfte eigentlich nichts > schiefgehen... Ja, klingt logisch - wenn die Batterien noch voll genug sind ;-).
So, es ist wieder "passiert", nur dass noch keine 28 Grad erreicht wurden: Ist=25.1 Soll=23.0 FIRM V005 FUZZ 20 POSI 0000 VTOP 0131 RWAY 000 VBAT 0504 Und: das Ventil ist leicht geöffnet, man hört das Wasser rauschen. Wenn ich dagegen drücke wird das Rauschen weniger, kommt aber wieder wenn ich loslasse. Nach dem Adaptieren ist es wieder zu. Die Daten kurz nach dem Adaptieren: Ist=25.4 Soll=23.0 FUZZ 21 POSI 0000 VTOP 0131 RWAY 000 VBAT 0510
Vielen Dank für die Dokumentation! Aha, ich sehe gerade, dass Du die 005er Firmware drauf hast. Soweit ich mich erinnere, hat diese Firmware die Abschaltung in Richtung Ventil zu erst dann, wenn der Motor zum Stillstand kommt. Bei der 006 wird der Motor dann abgeschaltet, wenn der Strom zu hoch wird und wenn der Motor stehenbleibt. VBAT 0504 / 0510 heißt, dass die Batterien schon kurz vor ihrem Lebensende sind. Normal sind Werte zwischen 0400 und 0490. Das Batteriesymbol geht bei 0530 an. Für den Fall dass die Batterien nicht mehr das Ventil zugedreht bekommen, blockiert der Motor aus Strommangel, der Positionszähler wird zu 0000 geschrieben und der Regler denkt, dass das Ventil zu ist... Hier müsste nachgebsessert werden. Ich schicke Dir die 006er Sourcen per e-Mail.
Ah, ok - ich dachte bei der 006er wurde nur ein Bug mit den Timern gefixt, deshalb hatte ich die nicht drauf gemacht... Die Batterien tuns aber noch - beim Adaptieren schafft es der Regler problemlos, auf Anschlag zuzudrehen. Ist VBAT eine Spannung oder misst Du zum Prüfen des Ladenstands die Motor-Ströme?
Andreas K. schrieb: > Ah, ok - ich dachte bei der 006er wurde nur ein Bug mit den Timern > gefixt, deshalb hatte ich die nicht drauf gemacht... Weiß ich nicht mehr genau, zu lange her :-/ Andreas K. schrieb: > Die Batterien tuns aber noch - beim Adaptieren schafft es der Regler > problemlos, auf Anschlag zuzudrehen. Das hat den Grund, dass der Motor beim Adaptieren bereits läuft. Beim Regeln muss das Anlaufmoment noch überwunden werden und das könnte knapp ausgehen. Andreas K. schrieb: > Ist VBAT eine Spannung oder misst Du zum Prüfen des Ladenstands die > Motor-Ströme? VBat ist eine Spannung (Voltage), die Ausgabe sind die Rohwerte des ADC, der die interne Bandgap-Referenz misst.
Ok, verstehe. Da könnte man höchstens noch schlappe Batterien eine Funktion einbauen, wo der Motor erstmal kurz zurückfährt und Schwung holt :D Für Akkus ist das natürlich tödlich... Auf der anderen Seite wären Akkus sicher die umweltfreundlichere Wahl, aber da ich hab Angst, dass die mir unbeaufsichtigt tiefentladen werden und futsch gehen. Normale Batterien haben bei mir meist über 1 Jahr gehalten, zumal ich im Sommer wieder die mechanischen Regler montiere.
Hm... hab die 006beta aus Deiner Email von heute geflasht - nachdem ich sie neu fur den 169P kompiliert habe - war auf 169PA eingestellt. Aber irgendwas stimmt da nicht: als Ist-Temperatur wird 0 Grad angezeigt Hab auch alle Temperaturen nochmal neu einstellen müssen - die standen alle auf 53 Grad. Anschließend hab ich die 006 für den 169PV von weiter oben geflasht. Die scheint anders zu sein - es fehlt z.B. das URLAUB-Menü - aber ansonsten gleiches Problem. => Version 005 (Sparmatic_Comet_M169_AVR6_2013_11_23) geflasht => Ist-Temperatur wird wieder angezeigt. Ja, und dann habe ich weiter oben was von externem Sensor gelesen und genauer hingeschaut - bei der 006 ist da jetzt so ein Funkturm im Display ;) Kann man das irgendwo umschalten? Ansonsten noch 2 Bugs, die auch in der 005 drin sind: 1.) Das Offset-Menu ist kaputt - da lässt sich nichts einstellen und die Anzeige zeigt eine defekte 2 und eine 0 an. 2.) Wenn die Temp auf 53.5 Grad eingestellt ist und man runterdrehen will und dabei ausversehen kurz hochdreht, springt sie sofort wieder auf 50 Grad.
:
Bearbeitet durch User
Andreas K. schrieb: > Aber irgendwas stimmt da nicht: als Ist-Temperatur wird 0 Grad angezeigt Ja, externer Sensor voreingestellt, bitte unten in der INIT.inc deaktivieren, sbr Temp, (1<<_ExternalTempSensor) ändern in cbr Temp, (1<<_ExternalTempSensor) Andreas K. schrieb: > Anschließend hab ich die 006 für den 169PV von weiter oben geflasht. Die > scheint anders zu sein - es fehlt z.B. das URLAUB-Menü - aber ansonsten > gleiches Problem. Urlaub ist erst in der aktuellen Version drin. Andreas K. schrieb: > Aber irgendwas stimmt da nicht: als Ist-Temperatur wird 0 Grad angezeigt > > Hab auch alle Temperaturen nochmal neu einstellen müssen - die standen > alle auf 53 Grad. Ja, das ist ein Init-Problem scheinbar. Habe ich vorhin auch beim Neuflashen festgestellt. Edit: Beim erneuten Flashen eines Reglers trat das Problem nicht auf... Andreas K. schrieb: > Ja, und dann habe ich weiter oben was von externem Sensor gelesen und > genauer hingeschaut - bei der 006 ist da jetzt so ein Funkturm im > Display ;) Kann man das irgendwo umschalten? Ja, in der Init, siehe oben. Andreas K. schrieb: > Ansonsten noch 2 Bugs, die auch in der 005 drin sind: > 1.) Das Offset-Menu ist kaputt - da lässt sich nichts einstellen und die > Anzeige zeigt eine defekte 2 und eine 0 an. Bestätigt. Ansonsten ist OFFSET noch nicht implementiert. Kannst Du erst mal ignorieren. Andreas K. schrieb: > 2.) Wenn die Temp auf 53.5 Grad eingestellt ist und man runterdrehen > will und dabei ausversehen kurz hochdreht, springt sie sofort wieder auf > 50 Grad. Das ist ein Feature. Von 50°C aus kannst Du dann innerhalb des erlaubten Bereiches auf die Solltemperatur stellen. 53.5°C ist ein Init-Bug, der noch behandelt werden muss.
:
Bearbeitet durch User
Gut. Um die Bugs kümmere ich mich demnächst. Danke nochmal für den Report.
Hallo Knut, ich bin beim Stöbern nach alternativen Firmwares für den ALDI-Thermy hier auf diesen Thread gestoßen. Ist es möglich, dass Du mir die aktuellen Sourcen zur Verfügung stellst? Besten Dank im Voraus + Gruß Jürgen
Hallo, im November hatte ich angefangen auf Grundlage von sparmatic2011 eine Fussbodenheizungs-Firmware für Aldi-Thermies zu schreiben. Inzwischen läuft das seit etwa 2 Monaten reibungslos. Dafür habe ich die Antriebe über die PB2/PB3-Portbits der Buchse "vernetzt". Diese Busleitung nutze ich im Moment nur dazu um immer nur ein Ventil zur Zeit den Motor fahren zu lassen, damit ein möglichst kleines Netzteil reicht. Die Ventile in unseren Verteilern haben viel weniger Hub als Heizkörperventile. Sie schliessen ein gutes Stück (20 Reflexe) vor dem Anschlag. Mechanisch passen die Thermies nur leidlich auf den Verteiler. Wenn alle Kabel gesteckt sind, passt keine Briefmarke mehr dazwischen. Es ist dann nicht ganz einfach einen nicht gut sitzenden Antrieb festzubekommen ohne alles wieder abzubauen. Die Befestigungsschellen des Verteilers passen nicht zwischen die Thermies, da habe ich Ersatz aus M3-Gewindestangen gebastelt. Eigentlich wollte ich die Stromversorgung über die Buchse einspeisen, das hat aber nicht geklappt obwohl es nach dem Schaltplan gehen müsste. Kann sein dass mein Versuchs-Kabel kaputt war, Abweichungen zwischen meinen Platinen und dem Plan habe ich (immer noch) nicht gefunden. Bei Interesse mache ich den Quellcode und die Schaltung gerne zugänglich.
Hallo Knut, einer meiner Cometen leider spinnt neuerdings: Trotz Soll=22” und Ist=17.2” dreht er nicht auf und das Zimmer wird nie richtig warm. Adaptieren hilft nicht, nur Batterie rausnehmen hilft, aber nur für kurze Zeit. Debug-Werte: Firm=V006, Fuzz=21, Posi=0000, VTOP=0168, Rway=000, VBat=0456 Das ganze im Auto-Modus. Manuell warmstellen bringt auch keine Reaktion.
Andreas K. schrieb: > Debug-Werte: Firm=V006, Fuzz=21, Posi=0000, VTOP=0168, Rway=000, > VBat=0456 Fuzz=21 bedeutet, dass es schon zu warm ist und die Temperatur noch steigt. Von daher dreht das Teil 'richtigerweise' zu. Passt aber nicht zu der Istwertanzeige... Vielleicht ist die Solltemperatur beim Speichern in das EEPROM durcheinandergekommen. Kannst Du bitte die Temperaturen nochmal über das Menü neu einstellen? Drehe das Drehrad mal an die Extremwertgrenzen von 4°C und 50°C, um zu sehen, ob die Solltemperatur auch in dem Bereich liegt.
Hm... irgendwas ist hier kaputt: 1.) Tempwerte einstellen: beim drehen nach rechts ist die Solltemp für zuhause sofort von 22” auf 55” gesprungen. Ich hab sie zurück auf 22 gedreht. Die anderen beiden Temperaturen waren ok und die Grenzen liegen bei 4 und 55”. 2.) Die manuelle Temp spinnt. normalerweise blinkt das Haus-Symbol nur, wenn manuell eingestellte Temp verschieden von programmierter, aber das blinkt jetzt immer. Außerdem kann ich die Temp manuell zwischen 0 und 99.5” verstellen! Was genau bedeutet Fuzz eigentlich? Die Werte scheinen zwischen 0 und 21 zu liegen... Nachtrag: wie funktioniert eigentlich die Fenster-Auf-Erkennung? Weil nach dem Schließen des Fensters steigt die Temp ja auch erstmal von alleine wieder an... vielleicht kommt sich hier was in die Quere... Nachtrag2: mit dem Wechsel in die nächste Schaltzone scheint die Regelung wieder zu stimmen. Auch die Grenzen für die manuelle Temp liegen wieder bei 4..55”
:
Bearbeitet durch User
Andreas K. schrieb: > 1.) Tempwerte einstellen: beim drehen nach rechts ist die Solltemp für > zuhause sofort von 22” auf 55” gesprungen. Ich hab sie zurück auf 22 > gedreht. Die anderen beiden Temperaturen waren ok und die Grenzen liegen > bei 4 und 55”. Läuft damit die Regelung? Andreas K. schrieb: > 2.) Die manuelle Temp spinnt. normalerweise blinkt das Haus-Symbol nur, > wenn manuell eingestellte Temp verschieden von programmierter, aber das > blinkt jetzt immer. Außerdem kann ich die Temp manuell zwischen 0 und > 99.5” verstellen! Klingt nach zerfetzten EEPROM-Werten, ausgelöst duch Batterieentnahme bei laufendem Motor oder durch korrodierte Kontakte. Drehe alle Temperaturen auf die untere Grenze (4°C) bis es nicht mehr weniger wird, drehe dann wieder auf die gewünschten Werte. Stelle gegebenenfalls die Timer neu ein. Andreas K. schrieb: > Was genau bedeutet Fuzz eigentlich? Die Werte scheinen zwischen 0 und 21 > zu liegen... Das ist die Fuzzy Regelung. Die Werte liegen zwischen 0 und 26, je nach momentanem Regelbereich, vovon es 5 gibt. Andreas K. schrieb: > Nachtrag: wie funktioniert eigentlich die Fenster-Auf-Erkennung? Weil > nach dem Schließen des Fensters steigt die Temp ja auch erstmal von > alleine wieder an... vielleicht kommt sich hier was in die Quere... Fenster-Offen-Erkennung ist nicht implementiert. Andreas K. schrieb: > Nachtrag2: mit dem Wechsel in die nächste Schaltzone scheint die > Regelung wieder zu stimmen. Auch die Grenzen für die manuelle Temp > liegen wieder bei 4..55” Hmmm... Lass uns mal per e-Mail kommunizieren, um den Thread nicht zuzuquasseln...
Gibt es inzwischen eigentlich schon eine C Firmware für diese Teile? (Konkret: Comet)
Guten Tag. Ich plädiere eigenen Thermostat (foto nach einem der Thermo v3). Nach dem Hochladen v5 oder v6 firmvare lcd funktioniert - die korrekte Temperatur und Zeit, aber wenn ADAP den Motor bewegt sich unmerklich und manuelle Temperaturänderung nicht bewegt. Vielen Dank im Voraus für Ihre Beratung (sorry, aber Deutsch ist meine Muttersprache - das ist eine Google-Übersetzung)
Die neueren V3-Thermostate haben eine andere Pinbelegung und einen anderen Controller. Daher funktioniert die Firmware nicht, die vor der Auslieferung dieser Geräte erschienen ist. Ich werde demnächst eine Anpassung für diese Regler hochladen.
Anbei die angepasste *.hex-Datei. Bitte nur für Geräte der neuen Herstellserie verwenden (Geräte ab September 2014 im Handel)!
Danke für die Antwort, morgen versuchen. Schreiben, wie es gelaufen
Der Motor funktioniert perfekt, vielen Dank
Zur Frage, ob es inzwischen schon eine C-Firmware gibt, ich habe hier geschaut: Info schrieb: > Beitrag "Entwicklungen und Forschung um den Sparmatic Comet / Zero v2 Heizungsthermostat" und dort: http://cccgoe.de/wiki/Sparmatic und da passiert leider nix, das git ist nicht erreichbar / vorhanden. Gibt es sonst eine C-Firmware?
Hi, ich habe mir vor ein paar Tagen bei Reichelt unter [1] ein paar Sparmatic Zero V2 gekauft. Mit der original Firmware funktionieren die soweit ganz gut. Laut eurotronic Homepage passt das Bild des Sparmatic Zero S612 von [2] auf dieses Modell. gibt es nun eine sichere Methode herauszufinden, um welches Modell es sich genau handelt um die passende alternative Firmware zu flashen? Und woher bekommt man die aktuelle Version für den Controller? Ich habe im Thread [3] eine Version 6 für Comet gefunden, aber ich vermute mal, für den Zero V2 wird eine andere benötigt. Zum Flashen wird anscheinend auch noch die Reset Leitung benötigt, welche nicht an der USB-Buchse im Gehäuse liegt, wenn ich den Programmieradapter unter [4] richtig verstehe. Dafür muss dann auf jeden Fall das Gehäuse geöffnet werden zum Programmieren? Viele Fragen auf einmal, aber in den mehreren Threads hier, welche teilweise zig hunderte Posts umfassen, ist es schwierig alle wichtigen Informationen zu finden. :) Ciao, Rainer [1] http://www.reichelt.de/ET-SM-ZERO-V2/3/index.html?&ACTION=3&LA=446&ARTICLE=108176 [2] http://www.eurotronic.org/produkte/sparmatic-zero-s612.html [3] Beitrag "Re: Alternative Firmware für Sparmatic Zero Heizungsthermostat" [4] http://www.mikrocontroller.net/articles/Sparmatic_Heizungsthermostate#Programmieradapter
R. W. schrieb: > ich habe mir vor ein paar Tagen bei Reichelt unter [1] ein paar > Sparmatic Zero V2 gekauft. Hmm, gibt bei Pollin den neuen Comet V3 für 4 EUR günstiger... R. W. schrieb: > gibt es nun eine sichere Methode > herauszufinden, um welches Modell es sich genau handelt Sieht sehr nach einem Zero V3 (aktuelle Generation) aus, der dem Comet V3 entspricht, aber anstatt des Drehgebers 2 Tasten mehr hat. R. W. schrieb: > Zum Flashen wird anscheinend auch noch die Reset Leitung benötigt, Das ist richtig. Das Gehäuse ist glücklicherweise nicht mehr mit Schweißnippeln verschlossen, sondern geclipst. 2 Klammern sieht man direkt im Batteriefach, 2 sind weiter vorn am Getriebe. Wenn man vorsichtig hebelt, hat man das Gehäuse recht leicht zerlegt. Die Reset-Leitung befindet sich auf einem von 6 Pads auf der Platine; wenn das Display auf dem Tisch liegt und das Batteriefach vorn ist, auf der linken Seite. Es ist das mittlere rechte Pad der 6-er Gruppe. R. W. schrieb: > Und woher bekommt man die aktuelle Version für den Controller? Bei mir nicht, da ich ausschließlich für den Comet programmiert habe. Einziger Unterschied ist die Tastenabfrage, aber ich habe keine Zeit und keine Test-Zeros zum Bemustern. Du kannst Die Sources haben und selbst aktiv werden.
:
Bearbeitet durch User
Knut Ballhause schrieb: > Hmm, gibt bei Pollin den neuen Comet V3 für 4 EUR günstiger... Naja, denke ich werde die Regler jetzt nicht wieder umtauschen. ;) Knut Ballhause schrieb: > Sieht sehr nach einem Zero V3 (aktuelle Generation) aus, der dem Comet > V3 entspricht, aber anstatt des Drehgebers 2 Tasten mehr hat. Ok, das bestätigt meine Vermutung. Knut Ballhause schrieb: > Bei mir nicht, da ich ausschließlich für den Comet programmiert habe. > Einziger Unterschied ist die Tastenabfrage, aber ich habe keine Zeit und > keine Test-Zeros zum Bemustern. Du kannst Die Sources haben und selbst > aktiv werden. Ich programmiere normalerweise zwar eine andere Controller-Familie, aber ich denke das wäre wohl der beste Ansatz. Also deiner Meinung nach unterscheiden sich beide Regler nur dadurch, dass der Comet einen Drehencoder und der Zero dafür zwei Tasten haben? Sollte es sich wirklich nur darauf beschränken dürfte die Anpassung der Firmware vermutlich nicht so aufwendig werden. Wegen anstehender Klausuren habe ich gerade zwar nicht die Zeit dafür, aber in ein paar Wochen wieder. Also es wäre nett, wenn du mir deine Version mal zuschicken könntest und ich schaue dann mal nach den Änderungen, wenn ich etwas mehr Luft habe. :) Ciao, Rainer
Knut B. schrieb: > Anbei die angepasste *.hex-Datei. Bitte nur für Geräte der neuen > Herstellserie verwenden (Geräte ab September 2014 im Handel)! Hallo, ich habe die Firmware Version V6 und V7 auf dem Comet Regler getestet. Meine Version benötigt V7 ist also eine neuere Version. Auf der Verpackung steht ganz unten in der Ecke auf der Rückseite folgendes: Art.Nr. 700 100 340 1 / Verp. Nr. 900 000 261 3 / Version 2013/1 Ist von der Firma EUROtronic Technology GmbH. Mir ist in der Firmware beim einstellen vom Datum noch etwas aufgefallen, bei der Tages Anzeige wurde der heutige Tag 19.10.2015 als Dienstag geführt. Kann es sein das mit dem Internen Datum etwas nicht stimmt? Ah und wie war das nochmal mit der Ventilsteuerung, was wird als Normal und was als Invers bezeichnet? Im Modus Offset funktioniert gar nichts da steht immer 0° ist das ebenfalls so gewollt? Viele Grüße
Knut B. schrieb: > Einstellung der Fuses: > Extended: 0xFF > High: 0xD1 > Low: 0x62 Hatte bisher den Regler mit der Firmware 007 wie oben Beschrieben verwendet, jedoch hat dieser Trotz mehrmaliger Prüfung der Konfiguration nicht so geregelt wie er eingestellt war. Aus diesem Grund habe ich ihn mit den Vorgeschlagenen FUSEs nochmal neu programmiert. Das Ergebnis ist jetzt, dass ich keine Verbindung mehr zum Regler über die ISP-Schnittstelle herstellen kann. Habe schon alle ISP-Frequenzen getestet. Nun würde ich Hilfe benötigen, wie der Controller wieder ins Leben gerufen werden kann. Noch eine Frage, und zwar besitzt der Regler einen (ich vermute) Uhrenquarz. Wird dieser verwendet?
Marc schrieb: > Mir ist in der Firmware beim einstellen vom Datum noch etwas > aufgefallen, > bei der Tages Anzeige wurde der heutige Tag 19.10.2015 als Dienstag > geführt. > Kann es sein das mit dem Internen Datum etwas nicht stimmt? Wenn das Datum noch nie eingestellt war, wird in der Init 0xFF aus dem EEPROM gelesen (also 55:55:2055 als Datum). Da beim Einstellen nur jeweils 2 Ziffern dargestellt werden, könnte statt 2015 auch 2115 gemeint sein. Dies habe ich nicht abgefangen. Drehe also am besten alle Werte durch linksdrehen 3x auf "00" und dann wieder auf das aktuelle Datum. Marc schrieb: > Ah und wie war das nochmal mit der Ventilsteuerung, was wird als Normal > und was als Invers bezeichnet? "Normal" ist die Einstellung für 99% aller Heizungsventile. "Invers" ist für den kleinen Rest der Ventile, die beim Herauskommen des Betätigungsstiftes schließen, war ein Kundenwunsch ;-). Marc schrieb: > Im Modus Offset funktioniert gar nichts da steht immer 0° ist das > ebenfalls so gewollt? Nicht gewollt, die Funktion ist bis dato nicht implementiert. Marc schrieb: > Aus diesem Grund habe ich ihn > mit den Vorgeschlagenen FUSEs nochmal neu programmiert. > > Das Ergebnis ist jetzt, dass ich keine Verbindung mehr zum Regler über > die ISP-Schnittstelle herstellen kann. Habe schon alle ISP-Frequenzen > getestet. Das ist bitter, hatte ich auch schon 2x. Bei mir lag das Problem vermutlich an einem wackeligen Reset-Kontakt. Dabei müssen die Fuses so durcheinandergekommen sein, dass der Controller sich tot stellt. Jetzt habe ich 2 Comet-Briefbeschwerer... Du kannst versuchen, über JTAG mit dem Teil zu reden, Erfolg ist aber nicht garantiert :-(.
:
Bearbeitet durch User
Hallo, habe gerade die Version 6 m169pv installiert. Ich kann das Display nun nur noch in sehr flachen Winkel ablesen. Ich bin mir aber nicht sicher od dies vorher schon der Fall war. Besteht die Möglichkeitden Contrast einzustellen ?
Alban Glunz schrieb: > Besteht die Möglichkeitden Contrast einzustellen ? Grundsätzlich ja, aber die Firmware liefert an sich schon einen sehr guten Kontrast und das an allen Reglern, die ich probiert habe. Sieht eher nach einem Wackler am Display aus oder die Batterien sind leer. Oder das Teil ist mal feucht geworden und es haben sich leitende Brücken zwischen den rech hochohmigen Displaypins gebildet...
Ok, beim zweiten exemplar sieht es besser aus... Ich verzweifel gerade an der Programierung der Heizzeiten gibt es dazu eine besthenden Beitrag ? Es gibt 3 temperaturen... Wenn man die timer programiert zeigt er irgendwann auch eine zeit mit Mond an wie habe ich das zu deuten ? Ausserdem schaltet er im automodus nicht um.. wo mache ich einen Fehler ?
Alban Glunz schrieb: > Ich verzweifel gerade an der Programierung der Heizzeiten Nur Mut! Alban Glunz schrieb: > Es gibt 3 temperaturen... > Wenn man die timer programiert zeigt er irgendwann auch eine zeit mit > Mond an wie habe ich das zu deuten ? Das Männlein im Haus ist die Wohlfühltemperatur. Das Männlein neben dem Haus ist die Absenktemperatur. Der Mond ist die Nachttemperatur, die separat eine noch niedrigere Temperatur erlaubt, falls gewünscht. Wird diese nicht programmiert (--:--), ist sie inaktiv und es wird mit einfacher Absenkung gefahren. Pro Tag sind 3 Wohlfühl-/Absenktemperaturen und eine Nachttemperatur möglich, Blockbildung für Tag 1-5 ist möglich, was die Einstellung der Arbeitstage vereinfacht. Alban Glunz schrieb: > Ausserdem schaltet er im automodus nicht um.. wo mache ich einen Fehler > ? Um wohin? Im Manuellmodus verschwinden Programmsymbole, im Automodus werden sie wieder eingeblendet und die aktuell geltende Einstellung wird angefahren.
ok... ich war es gewohnt, das er beim wechsel auf auto, automatisch die laut timer eingestellte temperatur einstellt, das passiert in deioner Version nicht. wird eigentlich noch an der Software entwickelt... oder ist das projekt beendet ?? habe hier 10 Regler und die nase von der alten software voll... ständig muß mann über die ADAP-Funktion die Regler wieder in die Spur bringen ;-( Aber das ist ja bekannt. oder gibt es eine weiter entwicklete Version ? Danke schon einmal für deine Antworten... Mfg Alban
Alban Glunz schrieb: > automatisch die laut > timer eingestellte temperatur einstellt, das passiert in deioner Version > nicht. Hmmm... sollte eigentlich... Muss ich nochmal ´reingucken... Alban Glunz schrieb: > wird eigentlich noch an der Software entwickelt... oder ist das projekt > beendet ?? Wird weiterentwickelt. Ab und an. Hast Du konkrete Wünsche?
Hier sind ja schon einige Arbeitsstunden investiert worden um das Gerät sowohl hardwareseitig, als auch softwareseitig zu verbessern, daher hoffe ich, dass mir jemand ein paar Fragen beantworten kann. Wieviel platz ist noch im Gehäuse? Ich würde gerne ein Arduino einbauen um meine Heizung in mein Smarthome einzubinden (mit Wifi und co). Ich weiß allerdings noch nicht so recht, wie ich das anstelle, weil ich mir unschlüssig bin, ob ich entweder das vorhandene System erweitere (was wahrscheinlich deutlich aufwändiger ist, dafür aber weiterhin standalone benutbar wäre) oder alles intern raus schmeiße und dann ein Arduino Nano nehme, dass dann alles regelt und funkt... Problematisch ist allerdings, dass ich (noch) keinen dieser Regler habe und nicht weiß was das genau für ein Motor ist und wie man den ansteuert. Wenn ich mir so diese encoder geschichte anschaue, dann fallen ja schonmal servo und schrittmotoren als Kandidaten aus :D Hat jemand eine Idee, wie ich diesen Motor mit nem Arduino ansteuern kann und die position effektiv bestimmen könnte? Ich bin über Ideen und Infos sehr dankbar. Liebe Grüße Andi
Andi schrieb: > Wieviel platz ist noch im Gehäuse? Wie viel ist viel? RFM12 oder RFM70 Funkmodule zum Beispiel passen spielend mit rein. Allerdings ist der Platz nicht linear in dem Gehäuse verteilt, an manchen Ecken passt kein Blatt Papier mehr zwischen. Andi schrieb: > Ich würde gerne ein Arduino einbauen um meine Heizung in mein Smarthome > einzubinden (mit Wifi und co). Du weißt, dass es die Regler inzwischen mit Bluetooth gibt, direkt fertig vom Hersteller? Da musst Du ggf. nur die Firmware anpassen. Andi schrieb: > Problematisch ist allerdings, dass ich (noch) keinen dieser Regler habe > und nicht weiß was das genau für ein Motor ist und wie man den > ansteuert. Ist ein ganz normaler DC-Motor mit Getriebe. H-Brücke mit 2 Pins für Rechts- und Linkslauf, mehr gibt's da nicht. Andi schrieb: > Hat jemand eine Idee, wie ich diesen Motor mit nem Arduino ansteuern > kann und die position effektiv bestimmen könnte? Für den Vorschub gibt es eine Reflexlichtschranke, da musst Du Pulse zählen, um zu wissen, wie weit der Stößel gefahren ist. Zusätzlich kann der Motorstrom gemessen werden, um den Touch am Ventil zu detektieren. Alles kein Hexenwerk. Die meiste Arbeit steckt in der Menu-Verwaltung und in der Temperaturregelung.
Hallo, Knut B. schrieb: > Du weißt, dass es die Regler inzwischen mit Bluetooth gibt, direkt > fertig vom Hersteller? Da musst Du ggf. nur die Firmware anpassen. Bei Lidl gibt es diese Woche Heizkörperregler mit eingebautem Bluetooth im Angebot -> Typ "RT200BT" (als App wird EUROprog bzw. NOX by Eurotronic erwähnt). Diese sehen rein äusserlich den Thermy V3 (ohne BT) ziemlich ähnlich, bzw. dem Comet Blue (mit BT smart4.0). Hat schon jemand Erfahrungen damit (evtl. eine angepasste Firmware) ? Die bereits integrierte BT smart4.0 Möglichkeit scheint sehr interessant zu sein. Lieber Gruss reinis
reinis schrieb: > Hat schon jemand Erfahrungen damit Eröffne doch bitte einen eigenen Thread. Die, die hier mitlesen, werden ganz gewiss nicht die sein, die mit dem von dir gewünschten Teil Erfahrungen haben, und letztere wiederum werden keine Veranlassung haben, in diesen Thread hier zu schauen.
@Knut Ballhause: Vielen Dank für deine schnelle und ausführliche Antwort! Eben ist mein Thermostat für 6€ (inkl. Versand) angekommen. Das mit dem "Firmware anpassen" hatte ich so noch nicht überdacht. Ich dachte bis eben, das da irgendein für mich gänzlich unbekannter Chip drauf ist, bis ich es zerlegt habe und "ATMEL MEGA 169PA" lesen konnte. Zwar hatte ich mit dem noch nichts zu tun, aber er ist immerhin schonmal von einem bekannten Hersteller einer bekannten Produktfamilie. Ich weiß, dass es die Regler inzwischen mit Bluetooth für 18€ gibt. Allerdings kann man dort dann das BT nur nutzen um die Heizzeiten zu übermitteln. Eine direkte Steuerung ist (erstmal) nicht möglich und das ist mir zu eingeschränkt. Andernfalls muss man alles wieder reversen und selber machen, was mich mehr Arbeit und mehr Geld kostet als es selbst neu zu machen. Da kaufe ich lieber über Kleinanzeigen für 6€ "normale" Regler und nutze nur die Hardware um sie mit ESP8266 und Co. für 4€ so zu erweitern, damit ich für insgesamt 10€ kompletten Zugriff drauf habe. Aber ich behalte das mal im Auge, für den Fall, dass mein Gerät eine zu kurze Akkulaufzeit hat... (das Wifi Modul ist ja leider relativ Stromhungrig). Ich habe bisher Atmels immer nur mit der Arduino IDE genutzt. Da man hier damit nicht weiterkommt (oder?) werde ich mich vermutlich mal mit AVR-Studio anfreunden müssen. Wäre es möglich, dass du mir deinen Code zukommen lässt, damit ich den für mich anpassen kann? Das wäre sehr freundlich!
Ach und nochwas... Du (Knut) schreibst ====================== Einstellung der Fuses: Extended: 0xFF High: 0xD1 Low: 0x62 ====================== Woher hast du diese Werte? Ich hab das komplette Thema mittlerweile zum 3. Mal durchgelesen und damit sind dir und einem Nutzer hier ja schon ein insgesamt 3 Heizregler zum Opfer gefallen. Laut dieser Seite hier: http://www.engbedded.com/fusecalc/ finde ich zum Atmega169PA die Werte: extended_fuses=0xFF high_fuses=0x99 low_fuses=0x62 kann es daran liegen? Ist das Schaltbild von Leopold korrekt? Weil ich bräuchte noch einen Analogen Input und der ist ja nicht mehr frei laut diesem Schaltbild (nutze den Thermy Regler vom Aldi). Laut Schaltplan ist dann nur noch PE5 als digitaler I/O frei... Liebe Grüße!
Das Zum-Opfer-fallen lag nicht an den Fuse-Einstellungen, sondern an einer mangelhaften RESET Verbindung. Seitdem die Regler wieder mit Schnappnasen anstelle der Schweißnippel verschlossen sind, löte ich den RESET-Draht an dem entsprechenden Pad an. Danach wird ein Bootloader aufgespielt und die Regler künftig mittels Speicherstick upgedated. Poste mal einen Link von der Zeichnung, die Du meinst.
:
Bearbeitet durch User
Hmmm... Das heißt also der High-Fuse-Wert ist auf dieser Seite falsch? Bei dem Schaltplan meine ich diesen hier von Leopold: https://www.mikrocontroller.net/attachment/92338/S... Laut diesem Schaltplan hier von Kervin, sind allerdings noch ein paar Anschlüsse nicht belegt (u.a. PF1 und PF3): https://www.mikrocontroller.net/attachment/116246/... Da hier ja schon einige Zeit verstrichen ist, weiß ich nicht, inwiefern diese Schaltbilder (bzw. falls eins, dann welches) auch für meinen Regler zutreffen. Ich habe einen Thermy der Modellnummer X/06/2014 ("Comet 01-05" steht auf dem Board). Im Anhang habe ich ein Bild von meinem Board, auf dem die Messspitze auf einen ResetKontakt zeigen (ich denke mal den meintest du auch mit "entsprechenden Pad", weil man da einfach besser dran kommt als an die USB-Port-Rückseite). Ich werde mir deinen Code dann mal anschauen und als Orientierung nutzen (ich will da nämlich etwas zuuu spezielles für mich). Programmieren würde ich dann gerne über die Arduino IDE in C, da ich ASM nicht kann und AVR-Studio noch komplett Neuland für mich ist. Geflasht wird dann der Bootloader (da der CP2102 wohl nicht funktionieren wird) mit einem Arduino Nano wie hier zu sehen: https://www.arduino.cc/en/Tutorial/ArduinoISP Ob das allerdings überhaupt funktioniert weiß ich nicht, da der Atmega169PA für Arduinos nirgends verwendet wird. Ich habe mich daher an dem ATmega169 orientiert und nur die Fuse-Einstellungen angepasst, das folgende Settings in der "boards.txt" hat: ############################################################## arduino_butterfly.name=Arduino-Butterfly stk500 arduino_butterfly.upload.protocol=stk500 arduino_butterfly.upload.maximum_size=14336 arduino_butterfly.upload.speed=57600 arduino_butterfly.bootloader.low_fuses=0xE2 arduino_butterfly.bootloader.high_fuses=0x98 arduino_butterfly.bootloader.extended_fuses=0xFF arduino_butterfly.bootloader.path=butterfly arduino_butterfly.bootloader.file=bf_boot.hex arduino_butterfly.bootloader.unlock_bits=0x3F arduino_butterfly.bootloader.lock_bits=0x0F arduino_butterfly.build.mcu=atmega169 arduino_butterfly.build.f_cpu=8000000L arduino_butterfly.build.core=arduino ############################################################## Ob die Einstellungen passen werde ich dann sehen müssen... Falls nicht bin ich ratlos :-( Noch bin ich mir auch unsicher, ob ich als High-Fuse 0xD1 oder 0x99 nehmen soll. Ich danke aber ich werde es (entgegen der Information auf der oben genannten Seite) mit deinen Werten machen. Ich kenne nur den weg über USB den Sketch hochzuladen, mittels CP2102 an RxD und TxD + Reset (beim Pro Mini) denn Sketch hohzuladen oder den Bootloader an dem MISO, MISO und SCK + Reset neu drauf zu brennen. Wie machst du das mit dem Speicherstick-Update? Klingt nämlich gut :-)
Andi Z. schrieb: > Hmmm... Das heißt also der High-Fuse-Wert ist auf dieser Seite falsch? ??? Andi Z. schrieb: > Bei dem Schaltplan meine ich diesen hier von Leopold: Nee, der ist ja hameralt. Wenn die Platine grün ist, dann ost es doeser Schaltplan https://www.mikrocontroller.net/articles/Datei:SparmaticZerov2_Schaltplan.png Wenn die Platine weiß ist, ist es dieser Schaltplan: https://www.mikrocontroller.net/articles/Datei:THERMYV3-sch.jpg Andi Z. schrieb: > Ob das allerdings überhaupt funktioniert weiß ich nicht, da der > Atmega169PA für Arduinos nirgends verwendet wird. Achtung! Atmega169 != Atmega169PA. Es unterscheiden sich einige Bits in bestimmten I/O-Registern, so dass bestimmte Interrupte nicht funktionieren, wenn nicht der korrekte Controller und dessen Definitionsdatei ausgewählt wird. Andi Z. schrieb: > Ich kenne nur den weg über USB den Sketch hochzuladen, mittels CP2102 an > RxD und TxD + Reset (beim Pro Mini) denn Sketch hohzuladen oder den > Bootloader an dem MISO, MISO und SCK + Reset neu drauf zu brennen. > > Wie machst du das mit dem Speicherstick-Update? > Klingt nämlich gut :-) Ich nutze einen eigenen Stick mit Atxmega32E5 und CP2102. Die Firmware für den Regler wird zuerst am PC auf den Xmega übertragen. Dann muss ich nur noch den Stick in den Regler stecken, die Batterien einlegen und dann wird die Firmware automatisch geflasht. Geht einfacher, als mit dem Laptop von Heizkörper zu Heizkörper zu springen.
Zu den Fuse Werten: auf der von mir verlinkten Seite: 0xD1 (High) Von Knut verwendeter Wert: 0x99 (ebenfalls für high) Das finde ich merkwürdig. Ich hab die Datenblätter vom Atmega169 und Atmega169PA jetzt über 2 Stunden (komplett) verglichen. Unterschiede konnte ich bei den Bits hier finden: EIMSK – External Interrupt Mask Register EIFR – External Interrupt Flag Register MCUCR – MCU Control Register LCDCRA – LCD Control and Status Register A LCDCCR – LCD Contrast Control Register (das werden die wichtigen Unterschiede sein...) Durch den PG5 (der beim Atmega169PA beim Reset mit integriert ist) kommen noch diese Änderungen der Bits dazu: PORTG – Port G Data Register (der Atmega169PA hat noch zusätzlich den PORTG4) DDRG – Port G Data Direction Register (der Atmega169PA hat noch zusätzlich den DDG5) PING – Port G Input Pins Address (der Atmega169PA hat noch zusätzlich den PING5) (eher unwichtige Unterschiede) Zusätzliche Unterschiede im Namen: Atmega169 ----- Atmega169PA UCSRA ----- UCSRnA UCSRB ----- UCSRnB UCSRC ----- UCSRnC UMSEL ----- UMSELn USBS ----- USBSn UCSZ0 ----- UCSZn1 UCSZ1 ----- UCSZn1 UCSZ0 ----- UCSZn0 UCPOL ----- UCPOLn UBRRL and UBRRH ----- UBRRLn and UBRRHn (wahrscheinlich nur im Namen und nicht in der Funktion unterschiedlich) Jetzt müsste ich nur noch verstehen, wo ich da wie was ändern muss, damit ich es vom Atmega169 ausgehend anpassen kann... Das einzige, was ich ziemlich sicher nicht hinbekomme ist das erstellen der bootloader.hex Datei. Der Rest ist reines Anpassen und Fleiß (sobald ich weiß wie). Kann ich den Bootloader vom Atmega169 für den Armega169PA nehmen oder stecken genau da die wichtigen Informationen der Bits und I/O-Registern drinne?
Andi Z. schrieb: > Ach und nochwas... Du (Knut) schreibst > ====================== > Einstellung der Fuses: > Extended: 0xFF > High: 0xD1 > Low: 0x62 > ====================== > > Woher hast du diese Werte? So, ich habe es nochmal überprüft - diese Werte passen! Hier nochmal die Aufdröselung: BODLEVEL = DISABLED RSTDISBL = [ ] OCDEN = [ ] JTAGEN = [ ] SPIEN = [X] WDTON = [ ] EESAVE = [X] BOOTSZ = 1024W_1C00 BOOTRST = [ ] CKDIV8 = [X] CKOUT = [ ] SUT_CKSEL = INTRCOSC_6CK_65MS Wenn der Bootloader verwendet werden soll, lautet die Einstellung: Extended: 0xFF High: 0xD4 Low: 0x52 Die Einstellung (ohne Bootloader!): Extended: 0xFF High: 0x91 Low: 0x62 funktioniert auch, dabei bleibt JTAG aktiv (wie beim Originalregler) - diese Pins können dann aber nicht für alternative Anwendungen (internes Funkmodul) verwendet werden.
Das verstehe ich nicht :D Die beiden Werte die du schreibst sind doch anders (weil du schreibst, dass sie passen) Also das hier: ====================== Einstellung der Fuses: Extended: 0xFF High: 0xD1 Low: 0x62 ====================== ist von dem mit Bootloader ====================== Extended: 0xFF High: 0xD4 Low: 0x52 ====================== und dem hier ohne Bootloader ====================== Extended: 0xFF High: 0x91 Low: 0x62 ====================== unterschiedlich. Zusammengefasst: Der High-Wert 0xD1 ist falsch? Wenn ich nen Bootloader flaschen will, nehme ich die dort genannten Werte (0xFF, 0xD4 und 0x52) und ab dann kann ich mit den Werten ohne Bootloader (0xFF, 0x91 und 0x62) nur das Programm (ohne einen neuen Bootloader drauf zu flashen) "updaten"? Wenn ich die Schaltung richtig verstehe, dann schalte ich den Motor über PE7 und PE6 ein (je nach Richtung) und schalte ab dann die "Diode" im optischen Encoder über PE2 an, um ab dann über PE3 die Motorschritte zu zählen. Da der Motor weder einen Sensor (oder Kontaktschalter) zum Erfassen des Zustandes "komplett eingefahren" und "komplett ausgefahren" hat, kann ich beide Positionen "nur" über den Motorstrom erfassen (an PF2). Weißt du noch Knut, ab welchem Wert man dann stoppt (will nichts kaputt machen). Werden PF4, PF5, PF6 und PF7 für irgendeine Funktion benötgt?
Ok vergiss meinen letzten Beitrag. Einzig die Frage nach dem Strommesswert bleibt interessant. Habe jetzt viel nachgelesen und gelernt, dass es nicht "die" richtigen Fuse Werte gibt, sondern dass man damit den µC anders Einstellt. Was mich aber dennoch wundert ist, dass man einen Quarz hat, aber du den Internen Quarz verwendest. Warum nimmst du nicht den 32MHz Quarz als Taktquelle?
Andi Z. schrieb: > Warum nimmst du nicht den 32MHz Quarz als Taktquelle? Weil der nur 32 Kilohertz hat und asynchron weiterlaufen kann, während die CPU, die mit 1...8Mhz intern getaktet werden kann, schläft und so kaum Strom verbraucht. Andi Z. schrieb: > Einzig die Frage nach dem > Strommesswert bleibt interessant. Guck mal in die Sources, da ist eigentlich alles drin.
Ui.... ja da war ein Fehler: Mega != Kilo :D Ich dachte dennoch, dass man den power-save-mode nur benutzen kann, wenn man den low-frequency crystal (CKSEL 0111 statt 0010 für den internen RC ooscillator) verwendet, denn da steht immer nur "Power-save mode 32kHz TOSC enabled". Ist das falsch? Also du lässt den Chip auf 8MHz laufen mit CKDIV8=0 (=1MHz) und legst ihn dann so oft es geht schlafen? Ich werde morgen mal den bootloader brennen mit den Fuses (0x62, 0xD1 und 0xFF). Sehe mich schon nächste Woche im lokalen Hackerspace sitzen um den AVR wiederzubeleben :D Danke Knut für deine Hilfe (sorry... duck)
Andi Z. schrieb: > Also du lässt den Chip auf 8MHz laufen mit CKDIV8=0 (=1MHz) und legst > ihn dann so oft es geht schlafen? Ganz genau, macht im Sleep mit laufendem LCD gerade 0.03mA.
Ich danke dir vielmals! Jetzt bin ich erstmal ne Weile still und melde mich dann wenn es entweder funktioniert oder gepufft hat :D
Wär ich doch mal früher hier gelandet... Also ich bastel gerade auch an dem Teil rum - den Temperaturen draußen sei dank. Viele Dinge die hier stehen (oder woanders auf mikrocontroller.net) musste ich selbst rausfinden (Schaltplan etc.). Ich hatte sogar vorher mal gegoogled, allerdings mit dem Begriff "EasyHome" und nicht Comet oder Thermy und hatte nur jemanden gefunden, der ein Arduino MEGA nahm um das Teil zu steuern (was dann wegen Strombedarf extern versorgt werden muss etc... nicht so das, was ich gerne hätte) Naja.. egal. Wie weit bist du denn Andi? Ich habe das gleiche vor wie du. Der Regler lässt sich mittlerweile mit der Arduino IDE nutzen (Sketches hochladen, fuses und bootloader brennen etc.). Auch die Steuerung und das Auslesen der Sensorwerte läuft dank tatkräftiger unterstützung bereits. Bei Interesse, schau mal hier vorbei: http://forum.arduino.cc/index.php?topic=371928.0
Ich hoffe Knut liest hier noch mit, denn ich habe mittlerweile eine (rudimentäre) Regelung in der Testphase, bei der allerdings im Bezug auf den Heizkörper ein relativ starkes Schwingen der Temperatur zu bemerken ist. Den optischen Encoder lese ich während der Motor läuft aus und Zähle jedes mal einen Schritt, wenn der Zustand des Encoders wechselt (also von 1 auf 0 ist ein Schritt und von 0 auf 1 ist ein Schritt). Somit habe ich bei einer Umdrehung des "Encoder-Reflektier-Zahnrades" 4 Schritte gemacht (ich weiß, dass es auch realistischer ginge, aber so hat die Funktion gerade mal 6 Zeilen mit 2 boolean Variablen und ist daher schön schnell und hat zusätzlich noch eine feine Auflösung). Bei der Adaptierfahrt (erst komplett auf, von da aus wird das Ventil zu gefahren und Schritte gezählt, dann auf gefahren und Schritte gezählt und dann wieder zu gefahren und Schritte gezählt und dann der Maximalwert als "Gesamtschritte" gespeichert) lese ich die Spannung an PF2 aus und stoppe entsprechend den Motor. Die daraus gewonnene Erkenntnis über die "Gesamtschritte" nutze ich um mit einer Funktion auf Position (Schrittnummer) X zu fahren oder um das Ventil X Schritte zu oder auf zu fahren. Dabei ist vom Zustand "Ventil komplett zu" am Anfang eine relativ lange Strecke (etwa 70 Schritte) das Ventil komplett zu und öffnet sich dann relativ schnell mit einem starken (gefühlt fast logarithmischen) Volumenstrom in den Heizkörper der dann auch nicht mehr sehr viel wächst. Wenn ich jetzt versuche den Heizkörper auf eine möglichst Konstante Temperatur zu regeln, dann muss ich immer wieder Schritte vor und zurück fahren. Dabei erscheinen mir die Schritte nicht reproduzierbar zu sein. Zum Beispiel höre ich die Flüssigkeit in den Heizkörper strömen, wenn ich sieben mal 10 Schritte fahre (per Hand am Rad gesteuert). Wenn ich aber das Ventil zuerst 250 Schritte öffne und dann per "Regelung-für-Arme" bei steigender Temperatur jeweils 10 Schritte schließe, dann höre ich bei 130 schon keine Flüssigkeit mehr in den Heizkörper strömen. Hast du eine Erklärung dafür Knut? Ich hätte nämlich gerne komplett reproduzierbare Fahrwege in beide Richtungen, weil sonst kann ich nur zuverlässig "ZU" und "AUF" steuern. Meine Funktionen sehen gekürzt (ohne TimeOut, Motorstrom-Stopp etc.) etwa so aus: void fahreSchritteAuf(int zuFahrendeSchritte) { //Zahl der gefahrenen Schritte zurück setzen motorSchritte = 0; //sichergehen, dass der Motor aus ist motorStop(); //EncoderLED einschalten digitalWrite(motorEncoderLED, HIGH); //Encoderwert speichern encoderStatusVorher = digitalRead(motorEncoder); //Motor in Richtung "Ventil offen" einschalten ventilAuf(); //so lange den Motor eingeschaltet lassen //bis die Anzahl der zu fahrenden Schritte erreicht ist while (motorSchritte < zuFahrendeSchritte) { if (schrittCount()) { motorSchritte++; } } //Ziel erreicht, Motor stoppen motorStop(); //EncoderLED ausschalten digitalWrite(motorEncoderLED, LOW); } bool schrittCount(void) { //den momentanen Wert (0 oder 1) des Encoder speichern encoderStatusJetzt = digitalRead(motorEncoder); //Falls der Wert sich geändert hat, //zurück geben, dass ein Schritt gefahren wurde if (encoderStatusVorher != encoderStatusJetzt) { encoderStatusVorher = encoderStatusJetzt; return true; } else { return false; } } Ich hab es extra leserlich kommentiert. Ich hoffe dir fällt ein logischer oder sonstiger Fehler auf. Vielen Dank!
Als erstes fällt mir auf, dass grundsätzlich Schritte verloren gehen können. Bei der Art, wie Du sie zählst, ist das sehr wahrscheinlich. Zum Einen stoppt der Motor nicht sofort, es muss also nach dem Abschalten des Motors noch getestet werden, ob noch ein Impuls gekommen ist oder ob die Reflexmarke vielleicht sogar auf dem Koppler liegengeblieben ist und vielleicht sogar kippelt. Daher messe ich die Schritte drehrichtungsabhängig in Richtung AUF nur bei der Flanke 0->1 und in Richtung ZU nur bei der Flanke 1->0. Und ich passe den Zählernullpunkt beim kompletten Verschließen des Ventils ständig an, so dass Fehlschritte kompensiert werden. Weiterhin setzt Du den Schrittzähler immer wieder zurück. Damit verlierst Du die absolute Ventilposition. Oder speicherst Du diese woanders? Ohne Absolutwert ist keine vernünftige Regelung möglich. Phil G. schrieb: > Wenn ich jetzt versuche den Heizkörper auf eine möglichst Konstante > Temperatur zu regeln, dann muss ich immer wieder Schritte vor und zurück > fahren. Das ist schon sinnvoll, aber bei gleichen Bedingungen (alle Fenster und Türen zu, Vorlauftemperatur in etwa gleich) sollte die Regelung sehr bald zur Ruhe kommen. Wenn die schwingt, passen die Regelwerte nicht zu Soll- und Ist-Werten und müssen angeglichen werden. Abgesehen davon gibt es aber geade bei alten Ventilen Hystereseeffekte im Stellverhalten durch Verkalken oder Verdrecken. Das kannst Du sehr einfach mit einer Stellschraube am Ventilstift überprüfen. Die gibt es als kleines Aufschnappteil als Notventil. Wenn sich beim vorsichtigen Drehen der Schraube überlappende Totbereiche beim Stellen des Durchflusses ergeben, sollte vielleicht mal das Ventil gewechselt werden.
:
Bearbeitet durch User
Danke Knut für die schnelle und hilfreiche Antwort. Ich habe dir nur einen kleinen Teil meines 2500 Zeilen langen Codes gezeigt, der noch dazu vereinfacht und Kommentiert wurde um es dir zu vereinfachen. Es gibt eine globale Variable, die die aktuelle Position beinhaltet. Das der Motor noch etwas weiter drehen könnte und ich dann am Encoder nach dem Abschalten weiterlesen müsste, hatte ich auch schon mal bedacht, dann aber verworfen aus dem Grund, dass ich jedes Logische Level als einen Schritt zähle (und es dann eben beim kippeln ins unermessliche weiterzählen würde). Da war mir die "kleine" Ungenauigkeit am Ende das vertretbarere Übel. Das mit dem Flanken zählen ist allerdings eine sehr gute Idee, was ich allerdings noch nie gemacht habe. Ist es korrekt, dass ich das Zählen dann je nach Richtung in eine eigene Funktion packen muss (weil sonst dürfte der Rückgabewert ja kein boolean mehr sein und mittels if-Abfragen, würde dann mal die eine und mal die andere Richtung beim kippeln zurück gegeben werden) ? Mein Ansatz sieht so aus: bool schrittAufCount(void) { //den momentanen Wert (0 oder 1) des Encoder speichern encoderStatusJetzt = digitalRead(motorEncoder); //Falls der Wert sich geändert hat, //zurück geben, dass ein Schritt gefahren wurde if ( (encoderStatusVorher == 0) && (encoderStatusJetzt == 1) ) { encoderStatusVorher = encoderStatusJetzt; return true; } else { encoderStatusVorher = encoderStatusJetzt; return false; } } Hierbei ist mir dann aufgefallen, dass das so wie ich das mache mit dem flanken erkennen, dann dennoch nicht klappt, falls der Wert am Encoder "kippelt". Würde das so denn deiner Meinung nach funktionieren, wenn ich zusätzlich nach dem Motor abschalten noch weiterzähle? (Stichwort: kippeln) Die Ventile sind mit 4 Jahren relativ neu, allerdings könnte ich mir dennoch aufgrund des Momentes das der Motor aufbringen muss eine Hysterese je nach Drehrichtung vorstellen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.