Lüftersteuerung, Open Source Projekt

Die Firmware sollte auf der ersten Seite des GUIs stehen...

Klingt als ob die Kommunikation zwischen GUI und Steuerung nicht sauber läuft. Um zu testen ob die Steuerung selber was abbekommen hat, mal an einen anderen PC anschließen. Vorzugsweise an einen Alten, über einen billigen Hub, nur für den Fall...

Mit der ConFLiCT kannst du das neue Dashboard, also die neue GUI nutzen, wenn du die neue C-Firmware drauf spielst. Ich empfehle dir aber zu warten, bis das neue GUI vollständig läuft (ist momentan sehr buggy und die meisten Funktionen fehlen noch) und ich das ordentlich getestet habe.

Das das Mainboard so schrott ist nur wegen dem falschen Anschluss, kann ich mir kaum vorstellen... Das Z87 Board aus deiner Sig?
Obwohl wenn du es doof erwischt hast, hattest du 12V und 5V kurzgeschlossen, dann kann das schon sein... Der ConFLiCT hat aber einen internen 3,3 V Regler und sollte dabei nicht ernsthaft kaputt gegangen sein.

Mfg Bimbo385
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Habe nun alle internen USB Ports am Z87 durch.. bei keinem eine Reaktion.
Selbst die Info seite bleibt leer. Somit auch keine FW Information (glaub müsste was um die 3 sein soll?!)
An einem anderen PC muss sich die Tage testen.
... hoffe echt das es nur am Board liegt ;(
 
Wow, echt klasse Arbeit!
Könnte gut zu meinem aktuellen Projekt passen, da muss ich mich aber erst mal tiefer einlesen :-)
 
So, entschuldigt das ich mich jetzt erst wieder melde. Habe nun ein neues Board bekommen. Konnte vorher nicht testen.
Win8.1 erkennt nun nur noch ein Unbekanntes Gerät - Fehler beim Anfordern einer Gerätebeschreibung. Deinstallieren und Treiber neu installieren war nicht erfolgreich. Weis auch auf Anhieb nicht, wie ich den Treiber erstmal löschen kann. Früher gab es Deinstallieren und Treiber löschen.

Hoffe sehr, das es noch kein schlimmes Zeichen ist?

FW müsste 0.3 glaube ich sein.
 
Die Firmware hat mit diesem Fehlerbild nichts zu tun. Der MCP2200 baut auch ohne Firmware auf dem ATXmega ne COM Verbindung auf.

Listet er das Gerät oben mit nem gelben Fragezeichen im Gerätemanager oder unten als defektes USB-Gerät? Mach doch mal bitte nen Screenshot.

Dann kann ich einschätzen ob's ein Treiber Problem ist, oder ob der MCP2200 auf der Steuerung hin ist. Der Treiber geht aber eigentlich problemlos für 8 und 8.1.


Mfg Bimbo385
 
conflict1.JPG
conflict.JPG
wird unter USB Controller angezeigt.

Lief ja zuvor auch auf dem selben Board mit Win8.1
Das 2. Bild ist mit einer extra Software ausgelesen.

In den Eigenschaften steht das:

Dieses Gerät wurde angehalten, weil es Fehler gemeldet hat. (Code 43)

Fehler bei einer Anforderung des USB-Gerätedeskriptors.

Bios Name:\_SB.PCI0.XHC.RHUB.HS05
 
Zuletzt bearbeitet:
Das sieht nicht gut aus.
Folgende Möglichkeiten:

1. MCP2200 kaputt (und evtl. auch noch mehr)
2. USB nicht richtig angeschlossen (viel zu langes Kabel oder so, glaube das aber weniger),
3. Spannungsversorgung vom ConFLiCT defekt, der MCP2200 bekommt keine Spannung.

Um letzteres zu überprüfen mal mit einem Voltmeter die Spannung zwischen dem mittlerem Pin (-) und dem Pin Richtung Kühlkörper (+) vom LF33CV messen. Da müssen 3,3 V sein. Nur bitte nicht abrutschen, sonst Kurzschluss XD.

Du kannst die Steuerung auch gerne zu mir schicken, ich schau mir das dann mal in Ruhe an und knöpf dir garantiert auch nicht 20 € für ne Arbeitsstunde ab ;-)


Mfg Bimbo385
 
ok, ich baue heute Abend mal aus und Messe mal.
Wenn ich es zu dir schicken muss/will, müssten wir uns vorher irgendwie einigen über deine Entlohnung. Nicht das es ein paar Mark kostet und dann die Reparatur doch zu teuer ist oder so :(

Kabel habe ich mehrfach überprüft.- Ist auch das selbe wie vorher. 4Pin Kabel und den ersten Minus Pin(links) freigelassen.
 
Hast PN und Kabel sollte so i.O. sein.

Mfg Bimbo385
 
So. 3,3 v liegen an. Bau gleich mal in nen ganz anderen pc. Was heist das nun ?

-- verrückt.... Treiber installiert - wird normal als USB to Serial angezeigt... schaut gut aus.. Lade gerade Software...

... ach misst... was war es nochmal wenn die Gui nicht startet? Kommt direkt funktioniert nicht mehr.
Wn8.1 x64.. glaub es fehlt noch ein visual basic oder so oder?

- es gab doch mal eine Version zum Installieren der Gui. Hab mir das Complett Paket geladen von deiner HP. Da ist das nicht mehr drin...
- so habe nun beta 2.2 mal gestartet. Kann verbinden, bekomme aber keine rpm der Lüfter angezeigt. Auch keine Reaktion auf Display Helligkeit ect



XDXDXDXD WUSSSAAA =) xD Sie geht... Gui1. V0.3 -> nun wird Lüfter angezeigt und gesteuert.
So heißt also Steuerung scheinbar nicht defekt.
Bleibt die Frage, wieso mein blöder Hauptrechner das ding nimmer richtig ansprechen will:(
Wie kann ich denn den Treiber komplett löschen?
 
Zuletzt bearbeitet:
So, gerade wieder in den Haupt PC eingebaut.
Läuft auch hier. Ohne was anzupassen. Merkwürdig. Hatte die Steuerung auch komplett auseinander geschraubt gehabt. Vlt einfach irgendwo ein Wackler gehabt... ich weis es nicht. Soweit läuft alles. Gott sei dank =). Bimbo -> vielen lieben dank für deine Unterstützung =)
 
Kein Problem, das ja schon mal gut :)

Anfällig für Wackelkontakte ist die Strombuchse für den 4-Poligen Molex Stecker. Da mal im Betrieb dran wackeln. Wenn sich dann der COM Port abmeldet, Kontakte von oben und unten nachlöten. Hatte das Problem beim letzten Prototyp. Das passiert weil der Stecker immer so schwer geht...


Mfg Bimbo385
 
so jungens.

Hab lange nix mehr dran gemacht. Jetzt gehts bald weiter. Habe @work viel mit QT programmiert. reverse derzeit Prüf HW/SW. Die derzeitige Software läuft auf nem Win95 Rechner und könnte jeden moment verrecken...
Aufjedenfall kommt jetzt dann ne Config file und Datenbank Support. Zunächst MySQL.
Das config file ist erstmal im ini format. Möchte aber sobald wie möglich auf XML umsteigen.

Code:
[database]
name = conflict
host = localhost
user = conflict
password = 123456

[com] 
port = com1
baud = 19200

; DASH/PLOT

; value: aliasname of the value 
; --> wildcard: N = numeric
; --> alias: tNN | temperatur NN
; --> alias: fNN | fan NN
; --> alias: cpu | cpu load
; --> alias: ram | ram load
; --> alias: gpu | gpu load
;
; types: lcd, progressBar
; color: ok,warn,alarm
; range: skale, if only 1 value ("100"), than is start = 0. 
; limit: value for color change
; seconds: timerange to show


[dash]
; global setting
widgets\type  = lcd
widgets\color = "green,orange,red"
widgets\range = "0,100"
widgets\limit = "40,50,65"

; per widget setting
widget\1\value = t1
widget\1\type  = lcd
widget\1\color = "green,orange,red"
widget\1\range = "0,100"
widget\1\limit = "40,50,65"

widget\2\value = t2
widget\3\value = t3
widget\4\value = f1
widget\5\value = f2

[plot]
seconds = 360 
graph\1\value = t1
graph\1\color = green
graph\2\value = t2
graph\2\color = blue

Arbeite auch sehr viel mit Node.Js/Sails.JS und frontendseitig mit backend.js/socket.io derzeit. Also könnte passend zur DB auch nochn nettes webinterface abfallen. Das wäre dann super für Server usw, zumindest zur überwachung :)
 
Hallo zusammen,
also als erstes muss ich euch ein riesen Lob für dieses Mammut Projekt aussprechen. Ich habe mich die letzten Tage/Wochen durch alle 41 Seiten des Threats gekämpft.

Vieleicht könnt ihr mir mal auf die Sprünge helfen. Ich helfe gerade einem Bekannten beim Bau/Programmierung einer Lüfter und Pumpensteuerung mit ne Arduino pro mini.
Ich hänge gerade am Problem das Tachosignal der Lüfter richtig aus zu lesen. Der Lüfter spuckt mir nur mist aus, wenn ich ihn per PWM drossle. Unter Vollast funktioniert es super mittels Interrupt wie hier.
Ich habe den Lüfter mittels N-Kanal Mosfet IRFZ44N angepulst, sowie über einen NPN und dann einen P-Kanal Mosfet.
Bei Beiden Setups hatte ich das selbe Problem. Ich bekomme nur bei Vollast ein verwertbares Signal. Ich weiß das es daran liegt, das die Versorgung des Tachosignals durch das PWM Signal beeinflusst wird.

Nun habe ich gerade mal eure Schaltpläne gewälzt und gesehen, dass ihr auch die NPN/P-Mosfet Variante verwendet, habe aber keinerlei Tiefpassfilter oder sowas gefunden.
In eurem Code habe ich beim Überfliegen auch nichts gefunden (bin allerdings kein Profi).

Wie lest ihr zuverlässig das Tachosignal aus???
Ich wäre über eine kleine Hilfestellung sehr dankbar :hail:
 
Die HW und die Firmware hat bimbo385 entwickelt. Er ist derzeit der einzige der dir das beantworten kann :) Kannst auch direkt ne Mail an robert at open-conflict.de schicken.
 
@Scynd: Wie liest Du das Tachosignal vom Lüfter aus? Ich meine Deine Vorgehensweise. Verwendenst Du die IC-Funktionalität?
 
Hab mal noch an der config fürs Display gearbeitet:
Bitte um rückmeldung

Code:
[display]
; each row is 16 Characters long
; 
; %t01 - %t24 : Teperatur 4 Char
; %m		  : Minute 2 Char
; %h		  : Hour 2 Char
; %s		  : Seconds 2 Char
; %f1		  : water flow 3 char
; %cpu		  : CPU Clock 4 Char
; %cp		  : CPU usage 3 char
; %gp		  : GPU usage 3 char
; %ra		  : RAM usage 3 char
; %rp1 - %rp4 : FAN RPM 4 char
; %p1  - %p4  : FAN Power 3 char
;
lcd\1\row1 = "1234567890123456"
lcd\1\row2 = "abcdefghijklmnop"
lcd\1\row3 = "ABCDEFGHIJKLMNOP"

lcd\2\row1 = "FAN 1: %rp1 %p1 "
lcd\2\row2 = "FAN 2: %rp2 %p2 "
lcd\2\row3 = "FAN 3: %rp3 %p3 "
 
Danke debauer für die Info, dann schreib ich ihm direkt ne Email.

@TurboCharged
Ich zähle die Signale des Lüfters mittels eines Interrupts.
Hier ist das Beispiel von dem ich ausgegangen bin.
 
Ochjeeee, Arduino, sorry, da kann ich Dir nicht helfen. Ich hassen diesen Dreck wie Arduino und wie sie alle heißen. Gerade aus dem vorliegenden Grund.

Egal, also, die Vorgehensweise wäre wie folgt:
1. Du schließt den RPM-Pin vom Lüfter an den ICP-Pin an
2. ICP soll feuern, wenn sich die Flanke wechselt, sprich von HIGH auf LOW, von LOW auf HIGH
3. Immer, wenn ein Interrupt gefeuert wird, sampelst Du die Zeit, die zwischen den Wechsel abgelaufen ist

Fertig.

Wichtig: Wenn ein Interrupt gefeuert wird, musst Du noch die Condition umkehren, von Fallig auf Rising, dann von Rising auf Falling und so weiter. Es gibt ein Beispiel vom Atmel dafür, such mal nach AVR135, ist wirklich einfach.
 
Das sieht gut aus David!

@Scynd:
Die HW Rev. 2.1 (also die Verbreitete) hat auch direkte PWM-Ansteuerung der Lüfter (was bei bestimmten Lüfter auch für Probleme sorgt).

Das Tachosignal auszuwerten ist da tatsächlich ziemlich tricky, da es auf Grund der PWM Ansteuerung ziemlich zerstört wird. Ich habe deshalb das Tachosignal durch einen passiven Tiefpass gejagt, der die PWM-Störungen heraus filtert.
Zu finden ist der TP auf der Schaltplanseite 1 bei 2C. Die Bauteile heißen für den Kanal 1 R11, C22 und R29. Wobei R29 als Pullup fungiert und daher nur bei der steigenden Flanke des Signals Bestandteil des TP ist. De Grenzfrequenz des TP beträgt ~500 Hz. Das lässt das Tachosignal gerade durch und blockt die PWM Störungen. Voraussetzung ist aber, dass die PWM-Frequenz deutlich größer als 500 Hz ist. ConFLiCT macht > 30 kHz.

Das Tachosignal sieht nach dem TP eher dreieckig aus, bzw. geht schon in einen Sinus über. Die Flankenerkennung (via externer Interrupt) der ATmegas hat damit keine Probleme, wenn du das Signal anders auswertest, brauchst du ggf. ein IC mit Schmitt-Trigger Eingängen (4093 z.B.) was das Tachosignal wieder schön rechteckig macht.
Ich hoffe, das hilft dir weiter.

Grüße, Bimbo385

Edit: Da ich gerade den Arduino Sketch gesehen habe. Die Lösung ist suboptimal. Lass lieber einen Hardware Timer dauerzählen und speichere bei jeder positiven (oder auch negativen) Flanke den Zählwert zwischen. Dann kannst du in der Hauptschleife immer die Differenz zwischen den letzten beiden Zählständen nehmen und daraus die Frequenz berechnen. So mach ich das beim ConFLiCTuino mit 5 Signalen gleichzeitig.

Edit2:

Wichtig: Wenn ein Interrupt gefeuert wird, musst Du noch die Condition umkehren, von Fallig auf Rising, dann von Rising auf Falling und so weiter. Es gibt ein Beispiel vom Atmel dafür, such mal nach AVR135, ist wirklich einfach.

Das ist Quatsch, wenn du nur die Frequenz brauchst. Es reicht dir völlig die Zeit von einer steigenden Flanke zur nächsten zu messen.
 
Zuletzt bearbeitet:
Hey danke schonmal für die Hinweise.
Ich lass den PWM Ausgang mit 31kHz laufen. Eure Seite läuft grad nicht, also werd ich mir die Zeichnungen morgen nochmal zu Gemüte führen.
Und dann werd ich schon nen halbwegs sinnvollen Code zusammenwursteln, ansonsten meld ich mich nochmal :d
 
Ochjeeee, Arduino, sorry, da kann ich Dir nicht helfen. Ich hassen diesen Dreck wie Arduino und wie sie alle heißen. Gerade aus dem vorliegenden Grund.

Arduino ist nur ein Framework. Das zwingt dich nicht die Arduino funktionen zu nutzen. Hast alle freiheiten.
In die Sourcen kannste auch schnell mal schaun. Da steckt nicht viel voodoo drin.
Debuggen geht och wennse ins Atmel Studio integriert bekommst.
 
Arduino ist nur ein Framework. Das zwingt dich nicht die Arduino funktionen zu nutzen. Hast alle freiheiten.
In die Sourcen kannste auch schnell mal schaun. Da steckt nicht viel voodoo drin.

Ich weiß schon, was Arduino ist. Aber der Fall ist genau das, warum ich diese ganzen Frameworks ablehne. Da tut was nicht wie es soll und nu heißt es "viel Spaß beim Suchen" :)

Debuggen geht och wennse ins Atmel Studio integriert bekommst.

Eine IDE ohne Debugger ist völlig wertlos. Haben Arduino-Boards JTAG-Schnittstelle?

Als ich mich noch mit den Atmegas beschäftigt habe, hatte ich einen Dragon + AVR ISP MKII mit AVRStudio, einwandfrei, es tat einfach.
 
Ich weiß schon, was Arduino ist. Aber der Fall ist genau das, warum ich diese ganzen Frameworks ablehne. Da tut was nicht wie es soll und nu heißt es "viel Spaß beim Suchen" :)

Für den zweck für das entwickelt wurde - rapid prototyping - tun sies sehr gut.

Eine IDE ohne Debugger ist völlig wertlos. Haben Arduino-Boards JTAG-Schnittstelle?
Für Arduino brauchst du erstmal kein debugger, maximal musst du deine logik debuggen und das geht über serielle telegramme. Arduino librarys funktionieren in der regel einfach.
Ja JTAG bzw SWD ist immer auf header gelegt. Arduino Boards kannste wunderbar ohne Arduino Firmware Programmieren.
Willste Arduino + debugging kannste immer noch versuchen die Arduino Librarys in Atmel Studio zu integrieren.
 
Eben, versuchen und basteln. Nö, dafür ist mir die Zeit zu schade.

Ich finde, NXP hat es besser hingekriegt mit dem LPCXpresso. Ein sehr kleines Board mit beispielsweise einem LPC1769, der richtig Dampf hat, kostet um die 25€, da ist Debugger mit dabei und die IDE erlaubt es bis 256kB zu debuggen.
 
Eben, versuchen und basteln.
Was anderes machste mit nem echten Debugger ja auch ned :-D
versteh dein gemoser ned. Kann mir über den NXP keine Meinung bilden weil ich die noch nie in der hand gehabt hab.
Wennde ned weist das die Arduinos nen JTAG/SWD haben, dann hast dich damit ja auch noch ned beschäftigt. Is einfach nicht objektiv.
 
Was anderes machste mit nem echten Debugger ja auch ned :-D


Ahhhhja, na wenn Du meinst.

versteh dein gemoser ned. Kann mir über den NXP keine Meinung bilden weil ich die noch nie in der hand gehabt hab.
Wennde ned weist das die Arduinos nen JTAG/SWD haben, dann hast dich damit ja auch noch ned beschäftigt. Is einfach nicht objektiv.

Das ist kein Gemoser. Aber ich kenne kein Board (ausser die ARM, bzw. SAM) von Arduino, das ein JTAG-Anschluss hat. Wie ich schon sagte, zum RapidPrototyping gehört JTAG. Und ich habe mich damit beschäftigt, mach Dir da mal keine Sorgen. Genau so hat die Arduino-IDE keine Debug-Funktionalität. Sorry, aber das ist keine IDE, sondern ein schlechter Scherz, da kann ich genau so einen Notepad++ oder VIM nehmen.

Dann, die ganze Hardware ist maximal abstrahiert. Aber genau hier liegt ja das Interessante an der hardwarenahen Programmierung. Es werden alle Nasen lang Funktionen gerufen, obwohl es eher suboptimal ist. Mit einem Macro kann man fast alles sehr viel eleganter lösen. Und so weiter...

Mich würde mal das hier näher interessieren:

Hauptberuflicher embedded Hard & Software Entwickler.

Aber egal, ist zu sehr off-topic. Jeder soll das nehmen, was er mag.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh