Beiträge von Jannes

Bitte bei Problemen mit dem Forum das Endgerät und Version angeben!

    Was mich jetzt noch mehr wundert: Mein alter Zuheizer hat einen Schaden am Steuergerät. Liefert auch plausible Antwort und die Diagnoseleitung hat eine messbare, schwankende Spannung von 5 bis 6V.

    Aber nun:

    Mein neuer Zuheizer Eberspächer (Made in Poland) 252121, gekauft über Ebay, hat keine Diagnose. Er funktioniert Einwandfrei, hat alle 8 Pinne im Stecker belegt, jedoch liefert lässt sich nur die Batteriespannung von etwa 12V (über den Pull-Up Widerstand) messen.

    Hat also hier jemand mal einen nagelneuen Zuheizer versucht auszulesen? :weissnix:

    Meine Erfahrung ist, dass die originalen Steuergeräte von sich aus anfangen zu "erzählen". Also beim Einschalten des Zuheizers automatisch Informationen über die Diagnoseleitung senden.

    Bei einem Ersatzsteuergerät von Ebay das ich in der Hand hatte war das nicht der Fall. Da musste erst mit einem Startsignal (ich glaube es war Diagnoseleitung 1 oder 2 Sekunde auf Masse ziehen) die Diagnose aktiviert werden.

    Das Timing hab ich auch mit Glück von Hand hinbekommen.

    Moin,

    sehr cool wie weit das Projekt schon vorangeschritten ist, tolle Arbeit riese!

    Ich habe mich neulich, vorallem aus der Not heraus, damit beschäftigt, wie man die Schaltung zur Umsetzung von der Diagnoseleitung auf eine für UART kompatibles Spannungslevel vereinfachen kann. Dabei ist folgendes herausgekommen (erfolgreich mit meiner D3LC getestet):
    vereinfachteSchaltung.jpg

    Für die Diagnose von einem D3WZ ( Modell 25 2121 ) reicht also eine Diode (Durchlassspannung < 0,7V) und ein Widerstand, wenn der UART Pin des verwendeten Microcontrollers einen internen Pull up Widerstand hat, sonst sind 2 Widerstände erforderlich. Für die D3LC kommt noch ein Transistor und ein Pull down Widerstand hinzu.


    Mein Projekt mit der Funkfernbedienung ist nach wie vor aktuell. Zur Zeit bin ich dabei zwei Platine (Empfänger, Sender) zu entwerfen, die mir das verwenden des RF95w Funkchips ermöglicht. Ich war mit der Reichweite des NRF24l01+ nie zufrieden (maximal 400 Meter ohne Hindernisse, in der Stadt teilweise nur 50m). Um die Reichweite zu verbessern steht der welche auf den RF95W bevor. Dieser verspricht Reichweiten im Kiometerbereich.


    Hoffentlich sprengen wir nicht allzu sehr den Thread von Jannes

    Alles gut! Ich finde es klasse, dass du auch so engagiert bist :) und es geht ja um ähnliche Dinge. Das

    Ich muss leider um Geduld bitte bezüglich der Funkfernbedienung mit Funkdiagnose. Ich bin aktuell in der Prüfungsphase und habe nur wenig Zeit daran weiter zu arbeiten. Vllt ein erstes Testergebnis: Ich konnte mit einem alten Handy Akku (1000mAh) eine Laufzeit im Dauerbetrieb ( = Display dauerhaft eingeschaltet und 1x pro Sekunde senden) von 8 Tagen erzielen :thumbup:
    Den Stromsparmodus habe ich noch nicht getestet.


    Hab dann nochmal die Leitungen für einen D3WZ 251864 vermessen:
    Auch wenn sie beim Start von selbst "erzählt", wird die Diagnoseleitung beim Start der Diagnose für eine Sekunde auf Masse gezogen. Wahrscheinlich um den Beginn der Übertragung zu synchronisieren.

    Interessant! Vielen Dank für den Nachtrag.
    Mich würde interessieren, ob sich etwas grundlegendes an den übertragen Daten ändert direkt vor und direkt nach dem eine Sekunde langen Massepuls. Ich erinnere mich daran, dass ich bei meiner Messung an dem einen alten D3WZ nur den aktuellen Fehler auslesen konnte (ohne die Leitung 1s auf Masse gezogen zu haben). Vielleicht wird durch das ziehen nach Masse eine umfangreichere Diagnose aktiviert und es werden auch Sensordaten übertragen (Flammtemperatur, Wassertemeretur). Genauso gut möglich ist es, dass meine Messung misst war... aber wie gesagt das würde ich gerne herrausfinden.

    Der PIC zieht dadurch die Diagnoseleitung für 2 (Löschen), bzw. 3 (Aktivieren) Sekunden auf Masse.

    Vielen Dank! Du hast mir eine Menge Arbeit erspart. :)

    Der Adapter im Artikel hat einen Pullup von 5,1K. Knolle: Kannst du mal schauen, ob es mit dem Pullup bei dir auch klappt?

    Ich glaube nicht, dass der Pullup so kritisch ist von den Werten. Der von mir verwendete MC33660 verlangt im Datenblatt 510 Ohm. Hab ich verwendet und funktioniert. Niedrigere Widerstände würde ich nicht nehmen, da dann der Strom, den das Steuergerät aufnehmen muss am Open Collector bei einem Low Pegel zu hoch wird. (510 Ohm bei 12V -> 23,5mA) Auch nach oben ist es glaube ich nicht so kritisch. Die Frequenz liegt bei 1kHz, da werden die High Pegel auch bei 10 kOhm und vermutlich sogar mehr ohne Probleme erreicht.

    Jannes: Ich glaube nicht, dass sich die Beschaltung der Diagnoseleitungen bei den verschiednenen Heizungen sehr unterscheidet, da sie alle mit der selben Moduluhr auslesbar sind. Ansonsten müsste es ja auch verschiedene Uhren geben.

    So hatte ich auch gedacht. Bis ich auf einem Basteltreffen einen alten Zuheizer vermessen habe und ohne Pullup Widerstand 5V Highpegel gemessen habe. Da ich selber keinen 25 1864 besitze, hatte ich nicht die Möglichkeit das weiter zu untersuchen. Ich dachte es ist es Wert diese Erfahrung zu teilen und sollte sie auf einem Fehler beruhen diesen aufzudecken. Mir wäre es sogar recht, wenn ich damit falsch liege, weil meine Fernbedienung mit Diagnosefunktion, an der ich gerade arbeite, dann hardwareseitig auch mit dem alten Zuheizer funktionieren würde.

    Auf welchem Spannungspegel läuft eigentlich die Diagnoseleitung?
    Ich könnte dann theoretisch auch mit meinem Ossi messen wenn die Diagnoseuhr da ist... Aber ich habe keines mit Speicher ;(

    Das hängt von dem Modell ab.
    Der neuere Zuheizer mit der Modellnummer 25 2121 arbeitet bei 12v und benötigt einen externen Pullup Widerstand (Widerstand zwischen Batterie Plus und der Diagnoseleitung)
    Ich war der Meinung, dass der ältere D3WZ mit der Modellnummer 21 1864 mit 5V als High Pegel arbeitet und im Steuergerät eine aktive Ansteuerung hat d.h. es ist kein externer Pull Up Widerstand notwendig. Dies steht allerdings im Widerspruch zum Schaltplan von riese in der Wiki. Dort ist ein Pullup Widerstand nach 12V vorgesehen.

    Mein erwähntes Steuergerät was nicht kommunizieren mag ist übrigens ein originales, nicht ausgetauschtes und eben die Ausführung 252121

    Hast du ein Multimeter zum messen von Gleichspannung? Wenn ja kann das schon schnell und einfach helfen zu beurteilen, ob der Zuheizer auf der DIagnoseleitung sendet.
    Wenn du 0V misst -> Pull Up Widerstand fehlt
    Wenn du ca die Batteriespannung misst -> Pull up vorhanden, aber es wird nichts gesendet
    Wenn du ca 4-6V misst -> Der Zuheizer sendet auf der Diagnoseleitung


    ich hab mal unter http://t4-wiki.de/wiki/Diagnoseadapter_fuer_Standheizungen angefangen, den Adapter zu dokumentieren und werde den Artikel nach und nach erweitern.

    Super, vielen Dank für deinen Einsatz! :)

    Eine Idee:
    Den Abschnitt "Anschluss an die Standheizung" dahingehen erweitern, dass ein Schaltplan die Verbindung zwischen OBD Stecker und T6 Stecker darstellt. Ich habe solch ein Adapterkabel mal gebaut und getestet. Der Aufbau des Kabel ist im angehängten Schaltplan dokumentiert. Die Schaltpläne in der Wiki haben immer eine gleichbleibende Form die anders ist als die meines Schaltplan, deswegen ist es vermutlich nicht so sinnvoll ihn dort direkt hochzuladen, aber ich hoffe mit diesem Dokument bei der Erstellung des Schaltplans behilflich sein zu können.
    Man beachte, dass am T6 Stecker Pin 2 und Pin 4 direkt gebrückt sind. Dies entspricht der Brückung des Temperatursensors. Somit muss bei Verwendung dieses Kabels nur noch der Motor gestartet werden, um die Einschaltbedingungen zu erfüllen.

    Du hast mich Missverstanden.

    Der serienmäßig verbaute Zuheizer, speziell das serienmäßig verbaute Steuergerät, verhält sich so wie von Ralf_Ha beschrieben: es fängt von sich aus an und redet ununterbrochen.

    Hingegen die Ersatzsteuergeräte die man aktuell bei ebay bekommt verhalten sich anders. Diese Ausführungsvariante reden nicht von alleine, sondern wollen wie bei der Luftstandheizung gereizt werden. Dazu muss ich sagen, dass diese Erfahrung lediglich auf einem vermessenen Steuergerät basiert. MIt anderen Worten: Heißt nicht, dass sich alle Ersatzsteuergeräte so verhalten müssen.


    hätte da mal ne Frage, kann ich das "Antriggern" der D3LC oder anderer Luftstandheizungen auch mit der Moduluhr machen und dann mit dem Interface auslesen?
    Die Moduluhr ist ne Diagnosefähige, also die 22 1000 30 3300 eigentlich für die Wasserstand bzw. Zuheizer.

    Mir ist folgendes nicht klar:

    - Funktioniert die Moduluhr (22 1000 30 3300) auch für die Luftstandheizungen?
    - Kann ich mit der Moduluhr antriggern um dann mit dem Interface (blues) auslesen?

    zu 1.:
    Ich habe keine umfassenden Erfahrungswerte zu verschiedenen Diagnoseuhren, deswegen kann ich dir keine Garantie geben. Ich halte es für wahrscheinlich, dass du deine Diagnoseuhr verwenden kannst. Die Heizungen und Uhren arbeiten alle auf 12V. Da die Diagnoseleitungs eine digitale Schnittstelle mit Pullup Widerstand ist, erwarte ich, dass es schlimmstenfalls nicht funktioniert Daten zu Empfangen, aber eben dann nichts kaputt geht.

    zu 2.:
    Ja genau, das ist möglich. Ich habe es sogar schon geschaft die Diagnoseleitung händisch mit zwei offenen Leitungsenden gegen Masse zu schalten und bis 3 zu zählen. Paralleles Messen hat gezeigt, dass die Heizung auch nicht zu pingelig ist mit dem Timing. Wenn ich mich richtig erinnere waren auch 2,7s oder 2,8s genau genug, um die Diagnose zu starten.

    Das ist interessant! In meinem Interface werkelt ein FTDIxxx, da wird die Reizung auf einer anderen Leitung (eine der Handshake Leitungen) ausgegeben und erscheint daher nicht auf der K-Leitung. Und die verwenden einen billigen Komparator mit open collector Ausgang als Treiber, der bringt aber nicht genug Strom für die D3LC. Diese Schaltung verwendet ja einen 'richtigen' K-Line-Treiber.
    Im Auktionshaus gibt es ja für ca. 50€ Interfaces, die wohl out of the box funktionieren...

    Ralf

    Mir ist gerade aufgefallen, dass mir ein Fehler unterlaufen ist. Sorry für die Verwirrung!
    Der Schaltplan, den ich gepostet habe, ist schon etwas älter und beinhaltet noch nicht die Aktivierung der Diagnose bei der Luftstandheizung. So wie der Schaltplan zu sehen ist, funktiniert die Diagnose einwandfrei, vorrausgesetzt die D3LC Diagnoseleitung wurde zurvor aktiviert.
    In Worten sieht die notwendige Veränderung des Schaltplan wie folgt aus:
    Die Diagnoseleitung wird mit Drain Pin von einem NMOS verbunden und der Source Pin wird mit Masse verbunden. Am Gate wird eine geeignete Spannung zum Anschalten des NMOS (5-15V) für 3 Sekunden angelegt. Daraufhin erwacht die D3LC. Ab dann bleibt der NMOS die restliche Zeit ausgeschaltet. Ich habe das Steuersignal mit einem Arduino (5V) erzeugt. Funktioniert zuverlässig und ist mit wenig Aufwand aufgebaut.
    Man kann die Aktivierung der Diagnose ohne Probleme von der Diagnose selbst trennen. Mit anderen Worten: Man baut sich mit einem Arduino und einem NMOS eine kleine Schaltung, die die D3LC zum Leben erweckt und verwendet dann das bekannte blaue OBD Kabel und EDITH oder KD2000 um die eigentliche Diagnose durchzuführen.

    Ralf_Ha: Ich habe in Edith mal eine D3LC eingestellt und die Diagnose aktiviert: zu Anfang wird die Diagnoseleitung für Ca. 3 Sekunden auf Masse gezogen. Eine genaue Messung folgt aber noch, genau wie die Doku in der Wiki

    Diese Beobachtung habe ich ebenfalls gemacht und im Post 93 die Messungen gepostet. Eben dieses 3 Sekudnen lange nach Masse ziehen sorgt dafür, dass die D3LC überhaut etwas von sich gibt auf der Diagnoseleitung. Das Rätzel ist also schon gelöst. Ungelöst ist weiterhin wie das Entsperren der Heizung aussieht.

    Ich bin mir nicht sicher, ob ich dir damit weiterhelfen kann, deswegen sag du es mir.
    Jedenfalls hier ein Schaltplan von der Schaltung, die ich gebaut und getestet habe mit dem neureren D3WZ (25 2121) und mit der neueren D3LC (Steuergerät neben dem Gebläsemotor). Mit dem alten Zuheizer (21 1864) wird diese Schaltung sicher nicht funktionieren. Der arbeitet bei 5V Pegeln.
    Der für die Diagnoseleitung entscheidene Widerstand ist R2 mit 510 Ohm.


    Ich habe die Schaltung bislang an zwei D3WZ testen können, wo sie gut funktioniert hat, weitere Tests an Luftstandheizungen stehen noch aus.
    Ich kann bei Interesse die Länge des Löschimpulses mal messen, dann müsste man nur noch herausfinden, ob dieser zu einem bestimmten Zeitpunkt erfolgen muss, um zum Beispiel eine Luftheizung zum kommunizieren zu bewegen.

    Moin Alex,

    es würde uns sehr weiterhelfen, wenn du die länge Messen könntest! Sollten deine Messinstrumente es hergeben, würde ich vorschlagen, dass du ein bischen länger misst (1-2 Sekunden). Dann können wir hoffentlich mit deinen Messungen und mit dem bischerigen Wissen über die Datenübertragung auf der Diagnoseleitung das Rätsel über die Ensperrung lösen und unsere eigenen Schaltungen bauen bzw Mikrokontroller programmieren! :)

    Hat unser Jannes: schon Zeit gehabt sich weiter mit dem Löschimpuls auseinander zu setzen? :)

    Ich habe leider keine Diagnoseuhr, um Messungen durchzuführen. :(

    Dafür arbeite ich u.a. jetzt gerade an einer Arduino basierten Funkfernbedienung mit 0,96" OLED Display und 2,4 GHz Funkmodul (NRF24L01+ mit PA und LNA) versorgt von einer LiIon Zelle mit:
    - Einschaltfunktion für D3lC und D3WZ
    - Diagnose für D3LC und D3WZ (bisher nur der neuere Zuheizer)
    - Livestreamingmodus für D3WZ mit Übertragung der Flamm- und Wassertemperatur
    - 2. Batterie Spannungs- und Stromüberwachung

    Die Übertragung zwischen den beiden Modulen inkl 200 mikroA Sleepmodus ist bereits implementiert und funktioniert.
    Ich hab den Arduino der in den Bulli eingebaut werden soll allerdings noch nicht eingebaut.

    Es gibt noch einiges zu tun bezüglich der Darstellung auf dem Display und aktuell bin ich dabei die Strommessung vernünftig zu filtern. Problem ist, dass die Dosierpumpe 1A Strompulse (siehe Anhang, Shunt=10mOhm) verursacht, die für eine vernünftige Messung weggefeilter werden wollen. Bringt neue Probleme mit sich bei einer Pulsedauer von mehreren 10 Millisekunden. Wenn jemand da ne gute Idee hat immer her damit!

    strompulse dosierpumpe.jpg

    Außerdem warte ich auf ein neues OLED Display. Hab mir das vor ein paar Tagen zerschossen. Sowie auf eine ordentliche Antenne mit Magnetfuß, um sie auf das Dach vom Bulli zu befestigen (Nur eine Zwischenlösung!).
    Ich bin zuversichtlich bald konkrete Ergebnisse präsentieren zu können! :)

    Dann ist für mich das letzte große Rätsel tatsächlich : Was passiert, dass ein gesperrter Zuheizer wieder entsperrt wird.
    und natürlich wie die Fehler gelöscht werden....

    Zu diesen Fragen habe ich nur folgende Erfahrungswerte:
    Ich hatte mal einen Fehler in meiner Schaltung, bei der soweit ich mich richtig erinnere die Diagnoseleitung dauerhaft nach Masse gezogen wurde. Im Anschluss waren keine Fehler mehr im Fehlerspeicher gespeichert.
    Bischer hatte ich noch nicht die Möglichkeit (mangels eigener Diagnoseuhr) dieses Szenario absichtlich herbeizuleiten und währenddessen zu messen.

    Auch das Reizen (Einleiten) der Kommunikation mit der B/D3L läuft über einen längeren Impuls.

    Den Ablauf der Kommunikation zwischen D3LC und Diagnoseuhr habe ich mal untersucht. Nach dem Drücken der Heiztaste wird die Diagnoseleitung, die über einen Pullup Widerstand auf 12V gehalten wird, von der Diagnoseuhr für genau 3 Sekunden auf Masse gezogen. Daraufhin antwortet die Standheizung in einer Endlosschleife mit den Diagnoseinformationen.

    So sieht die Reizung aus:
    Startsequenz der Diagnoseuhr.PNG

    Wie auch beim D3WZ ist das erste von der Luftstandheizung gesendete Byte eine 0x55
    Diag Anfang Datenübertragung.PNG

    Insgesamt sendet die D3LC weniger Daten als der D3WZ. Der aktuelle Fehler ist die erste 0x30. Dann die Anzahl an gespeicherten Fehlern im Fehlerspeicher 0x05 und dann die 5 gespeicherten Fehler. In meinem Fall alles 0x30, da es am einfachsten war die Dosierpumpe zu unterbrechen.
    Eine Periode der Datenübertragung.PNG

    Ich habe mal mit einem Arduino und einem 1k Pullup Widerstand und einem NMOS das ganze nachgebildet und konnte damit erfolgreich die Diagnose aktivieren. Dann kann man das Diagnosekabel verwenden und den Fehlerspeicher auslesen. Oder mit dem MC3360 das K-Line Protokoll auf einen für einen mit 5V laufenden Arduino verständlichen Pegel umsetzen und dann das serielle Signal im Arduino auswerten. Ich habe so eine Schaltung zum Laufen gebracht sowohl für den neueren D3WZ und die neuere D3LC (beide Baujahr 2000) und sogar mit zwei NRF24l01+ eine Art Funk Fernbedienung aufgebaut. Mit der Reichweite bin ich leider nicht ganz zufrieden. Der NRF arbeitet bei 2,4GHz und die sind, wie sich bei Tests zeigte ziemlich anfällig bzgl. Hindernissen. Ich habe bei Sichtverbindung 500m geschafft, aber eben bei Hindernisse kaum 50m. Ich bin bisher noch nicht dazu gekommen das Einschalten über Funk zu implementieren und insgesamt ist das noch ein loser Aufbau auf der Seite der Fernbedienung.

    Moin und willkommen im Forum,
    zunächst einmal werf mal einen Blick in die Aufrüstanleitung. Auf Seite 8 findest du den Kabelplan in dem auch das Steuergerät aus dem Nachrüstsatz mit eingezeichnet ist.
    Kontrolliere als erstes, ob alle Kabel so angeschlossen sind wie dort beschrieben. Zuständig für das Einschalten der Standheizung sind die Leitungen an Pin 6 und 7 von dem linken Stecker "B1".

    Viel Erfolg bei der Suche der Ursache!
    Jannes