www.blafusel.de

  Home  |   Privat  |   Impressum  |   Bücher  |   Computer  |   Mikrocontroller  |   Misc  |   OBD  |   Forum


OBD II LCD für µC mit AVR ATmega ohne separaten OBD Controller-Chip

Inhalt

Hinweis auf Update
Einführung
Hardware
Software
FAQ

Hinweis auf Update

Sie haben sich dieses Modell bereits aufgebaut und sind an den Funktionen von Modell B interessiert?
Kein Problem! Tauschen Sie einfach den bisherigen Prozessor durch den neuen aus - mehr ist nicht notwendig. Dadurch erweitern Sie Ihr Modell und können fast alle neuen Funktionen (große Zahlendarstellung, Spritverbrauch, Fehleranzeige/-löschen, Beschleunigungsmessung usw.) nutzen. Lediglich die Batteriespannungsanzeige (es wird ein falscher Wert angezeigt) und die adaptive Helligkeitssteuerung werden nicht Unterstützt.

Einführung

Bei den beiden bisher entwickelten LCDs fürs Auto war stets das Problem, daß im Fall des ELM (oder auch des mOByDic ein separates Modul mit einem relativ teuren und aufwendigen OBD Controller-Chip benötigt wurde. Bei Jeffs Interface (welches sowieso durch ein ISO Interface ersetzt werden sollte), war das Display nur für Fahrzeuge von Volkswagen, Audi & Co. nutzbar und bedurfte einer individuellen Programmierung je nach Modell. Zudem benötigen beide Modelle relativ viel Platz, da mindestens zwei Platinen benutzt werden.
Dieses OBD II LCD eignet sich für alle Fahrzeuge mit (Teilfunktionen von) OBD II und den Protokollen ISO 9141 bzw. ISO 14230 (KW2000).

Display im VW T4 Schon seit längerem werkelt bei mir im Bus deshalb ein kleineres Display, welches direkt über das OBD II Protokoll ISO 9141 der Diagnoseschnittstelle Daten ausliest und anzeigt. Das Projekt wurde nun optimiert und ist jetzt für die Öffentlichkeit verfügbar. Eine Aufgabe bestand darin, sicherzustellen, daß die Protokollumsetzung auch für andere Fahrzeuge korrekt ist (Timing) und es sollte auch ISO 14230 unterstützt werden.
Im Internet anzutreffende Behauptungen, es schade der Fahrzeugelektronik, permanent Daten auszulesen sind unfug.

Ein großer Vorteil des LCDs ist neben den Informationen über die reale Drehzahl und Geschwindigkeit (vgl. Besonderheiten) auch die ggf. zusätzliche Öltemperatur und die Sicherheit, keine Fehlermeldungen im Fahrzeugcomputer zu verpassen, da nicht erst gravierende Fehler über die MIL signalisiert werden, sondern auch weniger bedeutende Fehlereinträge zur Ausgabe eines Hinweises auf dem Display führen.
Zusätzlich kann das Display auch zum Spritsparen genutzt werden und so die Kosten des Fahrzeugs senken helfen: Die Anzeige des berechneten Lastwertes (so weit vom Auto unterstützt), ist ein Indiz für den momentanen Verbrauch: Je höher der Lastwert ist (0-100%), desto höher ist der Verbrauch. Wer nicht über eine Multifunktionsanzeige (MFA) bzw. serienmäßigen Bordcomputer verfügt, kann seine Fahrweise am Lastwert orientieren.

Lassen Sie sich während der Fahrt permanent relevante Meßwerte aus Ihrem Fahrzeug anzeigen und werden Sie beim Auftreten von Fehlern automatisch gewarnt.

  • Bis zu acht Meßwerte gleichzeitig annähernd in Echtzeit - individuell konfigurierbar
  • Je nach Fahrzeug:
    • Geschwindigkeit (real und ohne die Ungenauigkeit des normalen Tachos)
    • Drehzahl
    • Kühlmitteltemperatur (bei Diesel oft Öltemperatur - in keinem PKW sonst vorhanden)
    • Einlaß-Lufttemperatur
    • Motorlast
    • Zündvoreilung
    • Gaspedalstellung
    • Meßwerte Lambdasonde
    • Unterstützter OBD Standard
    • und weitere ...
  • Warnung bei gespeicherten Fehlern (DTCs)
  • Anzeige der Anzahl gespeicherter, permanenter Fehler (SID 3)
  • Modernes blaues oder weißes Display vorgesehen
  • Einbau in handlichem Gehäuse möglich

Hardware

Der Aufbau im Eigenbau ist nicht weiter kompliziert und paßt auf eine halbe Europakarte.

Aufgebautes Display

Die Platine ist extra passend für das Gehäuse Modell Teknet TN22.29 (PDF) von Teko entworfen, weil ich das Teil mit seinen abgerundeten und gummierten Kanten besonders schick finde. Wird das empfohlene LCD-Modul benutzt, sitzt der Anzeigebereich genau zentrisch.

Beim LCD-Modul habe ich mich für ein EA DIP204B-4NLW (PDF) mit blauem Hintergrund und weißen Zeichen bei vier Zeilen à 20 Zeichen entschieden. Blau/Weiß ist ja derzeit im Trend und es paßt zu meiner werksseitig blauen Armaturenbeleuchtung. Das Modul ist auch als Weiß/Schwarz Version erhältlich, was sicherlich auch sehr schön wirkt. Die kleinen Abmessungen sind ideal und der Temperaturbereich von -20 °C bis +70 °C ist ebenso vorteilhaft. Über das Trimmpoti wird der optimale Kontrast einmalig eingestellt. Die interne Temperaturkompensation des Displays sorgt dann für eine gleichbleibend gute Ablesbarkeit. Einen wirklich passenden Frontrahmen gibt's nirgends, aber der in der Bauteilliste genannte paßt relativ gut.

Als Mikroprozessor werkelt ein ATmega16 bei 8 MHz. Dieser Typ hat den Vorteil, einfach durch einen ATmega32 mit mehr Speicher ausgetauscht zu werden, wenn durch Programmerweiterungen der Platz eng wird. Bewußt wurde auf eine kleinere SMD-Version verzichtet, damit das Projekt auch ohne fortgeschrittene Löterfahrung nachgebaut werden kann.

MC33290 Auf der Platinenunterseite sorgt ein ISO Baustein vom Typ MC33290 für die Pegelanpassung zwischen µC und OBD. Dieser Chip ist leider nur als SMD verfügbar, läßt sich aber noch gut von Gelegenheitselektronikern löten und wird auch im RS232 KL-Interface benutzt. Es wird lediglich die K-Leitung benutzt (siehe OBD Einführung), da die alten Fahrzeuge mit Initialisierung über die L-leitung zu selten sind, als daß sich der Aufwand lohnt und nur das Motorsteuergerät ausgelesen wird, so daß die Extrawurst für Audis nicht gebraten werden muß (vgl. KKL).

Bestückung Großer Wert wurde auf eine Absicherung der Schaltung gegen Störspannungen gelegt. Eine sich selbständig zurückstellende Sicherung und eine Suppressordiode übernehmen den Schutz. Für den Spannungsregler 7805 ist eigentlich kein Kühlblech notwendig, doch kann es auch nichts Schaden, ihm ein kleines zu verpassen, damit vor allem bei hohen Temperaturen im Fahrzeug der maximale Temperaturbereich nicht zu sehr ausgereizt wird.

Versorgt wird die Schaltung mit der Batteriespannung, die am besten vom Zündungsplus aus dem Sicherungskasten abgegriffen wird. Zusätzlich wird noch Masse (GND) und die Datenleitung (K-Leitung) angeschlossen. Masse findet man auch im Sicherungskasten. Die K-Leitung kann entweder im Sicherungskasten (wenn vorhanden) oder am OBD-Stecker abgegriffen werden. Dazu kann mit einer Vampirklemme (auch Abzweigklemme oder ähnlich genannt) das Kabel für die K-Leitung an der Rückseite der OBD Buchse im Auto angezapft werden. Man kann auch die Leitung durchschneiden und dann mit einer Lüsterklemme wieder verbinden und zusätzlich die Leitung zum Display anklemmen. Analog kann auch Masse und Batterie an der OBD Buchse abgegriffen werden. Die Belegung der OBD-Buchse beachten. Alternativ kann natürlich auch ein OBD-Stecker an das LCD angelötet werden.

Bis Version 0.4 bzw. 1.0 galt noch folgendes bei Verwendung eines OBD-Steckers: Dann sollte aber ein Schalter in die Versorgungsleitung eingebaut werden, da die OBD Buchse permament unter Spannung steht und das Display dann auch bei abgestelltem Fahrzeug in Betrieb ist.

Das Spannungsmanagement wurde ab Softwareversion 0.41 / 1.1 grundsätzlich modifiziert: Das Display erkennt nun selbständig, ob die Zündung eingeschaltet ist oder nicht. Deshalb kann der Bordcomputer einfach über die OBD-Buchse eingesteckt werden und verbunden bleiben (bzw. von hinten an die Kabel angeschlossen werden). Bei eingeschalteter Zündung versucht das Diagnosegerät sich mit dem Motorsteuergerät (ECU) zu verbinden. Wurde das Display dazu erstmals mit Spannung versorgt (bzw. bei jedem erneuten Verbinden mit der Batteriespannung), leuchtet das Display und zeigt die Bereitschaft an. Kann keine Verbindung aufgebaut werden (lost ECU), weil keine ECU gefunden wird (Zündung aus, K-Leitung nicht angeschlossen, Gerät funktioniert an diesem Auto nicht), erlischt das LCD nach einer Weile. Solange das Modul nun mit Spannung versorgt wird (mit der OBD-Buchse verbunden bleibt) versucht das Modul permanent eine Verbindung zur ECU aufzubauen. Dafür wird minimal Strom verbraucht, der eine intakte Fahrzeugbatterie innerhalb einiger Wochen nicht merklich entladen kann und im Bereich des normalen Verbrauchs der Fahrzeuguhr etc. liegt. Sobald die Zündung eingeschaltet wird, stellt das Modul die Verbindung zur ECU her (wenn möglich) und das LCD leuchtet auf und zeigt die Verbindungsparameter und anschließend die eingestellten Meßwertblöcke (bzw. die Meldung Meßwertblöcke/PIDs auszuwählen). Nach dem Abstellen der Zündung schaltet das Display sich automatisch ab. Dies kann bei einige Fahrzeugen ca. eine Minute dauern, da das Motorsteuergerät noch kurzzeitig weiter arbeitet.

Damit diese neue Funktion genutzt werden kann, ist eine kleine Modifikation der Platine erforderlich! Wird diese nicht vorgenommen, funktioniert das Display wie bisher und benötigt eine separate Trennung der Versorgungsspannung. Wird keine ECU gefunden, wird das Display dann lediglich gelöscht, die Hintergrundbeleuchtung bleibt aber an.
Folgender Umbau ist notwendig, damit die Hintergrundbeleuchtung abgeschaltet wird:
  1. Trennen Sie die Leiterbahn zwischen R3 und C4.
  2. Verbinden Sie mit einem isolierten Draht o. ä. R3 an der soeben aufgetrennten Seite mit Pin 21 des ATmega.

Modifikation PlatineModifikation Platine



Anzahl Bezeichner Typ
2 R1, R2 10 kΩ
1 R3 47 Ω
1 R4 2,2 kΩ Trimmer
1 R5 510 Ω
2 C1, C2 22 pF, RM 2,5
3 C3, C4, C5 100 nF, RM 2.5
1 D1 1N4004
1 D2 Überspannungsschutzdiode P6KE 33A
1 F1 Rückstellende Sicherung PFRA 030
1 IC1 ATmega MEGA16-P;
1 IC2 7805T
1 IC3 MC33290; bzw. Nachfolger
1 LCD LCD 204BL-4 DIP
1 Q1 8 MHz Quarz
1 S1 Kurzhubtaster 13 mm
1 JP1 Stiftleiste RM 2,5
1 - Sockel IC1 40 pol.
1 - Kühlblech
1 - Gehäuse TEKO TN 22.29
1 - LCD Rahmen
1 - Kabeldurchführung, ggf. OBD Stecker

Software

Kostenlos verfügbar ist Version 0.41, welche die ersten 32 PIDs von ISO 9141 unterstützt (Ausnahme: PID 02 wird grundsätzlich nicht unterstützt). Weiterhin wird die Aktualisierungsrate der Meßdaten künstlich um 4 Sekunden zwischen zwei Meßwerten verzögert.
Über die vereinfachte ISP Schnittstelle kann der Controller jederzeit programmiert werden. Mit einem ISP Interface + Software wird die (für den oben vorgestellten Aufbau) compilierte HEX-Datei in den Prozessor übertragen. Unbedingt die Fuse-Bits setzen, wenn selbst programmiert wird (bei Kaufversion nicht notwendig)! Analog zur Anleitung dürfen z. B. in yaap nur die Häkchen für BODEN, BOOTSZ0, BOOTSZ1 und SPIEN gesetzt sein.

Welche PIDs vom jeweiligen Auto tatsächlich unterstützt werden, ist unterschiedlich. Dies kann teilweise in der Fahrzeugliste nachgeschaut werden. Dort ist auch zu finden, bei welchen Modellen das Display bereits erfolgreich eingesetzt wurde. Bitte die eigenen Erfahrungen auch eintragen!

Noch mal in aller Deutlichkeit: Nur ISO 9141 bzw. ISO 14230 (Kaufversion) und kein CAN oder sonst was wird unterstützt. Wurden andere OBD Adapter bereits ohne Erfolg an einem Modell erprobt, wird man auch kein Glück mit diesem Display haben. Ein Auto unterstützt immer nur eins der beiden Protokolle - niemals beide. Wenn ein Fahrzeug erfolgreich mit der Freewareversion getestet wurde, funktioniert das Auto auch mit der Kaufversion. Bei erfolgreichem Test mit der Kaufversion, funktioniert die Freewareversion nur, wenn vom Auto ISO 9141 genutzt wird. Es ist nicht möglich, Fehlerspeichereinträge zu löschen, da dies ohne vorheriges Auslesen der DTCs (Diagnostic Trouble Code) Stümperei wäre.

Download Freeware V 0.41 HEX-Datei

Neuerungen (V 0.41 / V 1.1):

  • Verbessertes Timing zur Verbindung mit ISO 14230 (nur Kaufversion 1.1)
  • Lost ECU Erkennung (siehe oben)
  • Die Diagnosemeldung/Werkzeugschlüssel (s. u.) wird gezeigt, wenn sowohl permanente Fehler (SID 3) (mit und ohne Aufleuchten der MIL im Fahrzeug), als auch vorübergehende Fehler (SID 7) im Motorsteuergerät abgelegt werden.

Vierstellige Anzeige Die Bedienung ist einfach: Nach dem Einschalten versucht das Gerät eine Verbindung mit dem Fahrzeug aufzubauen. Dies klappt i. d. R. nur bei eingeschalteter Zündung. Auf dem Display wird die Initphase durch Punkte angezeigt. Wurde kurz vorher die Verbindung aufgebaut und dann wieder unterbrochen (typischerweise beim Anlassen beim Diesel mit Vorglühen), kann es etwas länger dauern (ca. 10-20 Sekunden), bis die Verbindung erneut steht. Anschließend wird das gefundene Protokoll und die Geschwindigkeit kurz angezeigt.
Dann erkennt das Gerät, ob es an einem neuen Auto angeschlossen wurde. In dem Fall wird man darauf hingewiesen und muß die Taste drücken. Bei gleichem Fahrzeug (genauer: gleiche PIDs des Steuergeräts) und bereits erfolgter Konfiguration werden gleich die Messwerte angezeigt.

kurze Meßwertanzeige Wurde das Fahrzeug gewechselt (leeres Display) oder soll die Anzeige neu konfiguriert werden, muß die Taste etwas länger gedrückt werden, bis der blinkende Cursor erscheint.
Durch kurzes drücken der Taste wird jetzt durch die im Fahrzeug vorhandenen Meßwertblöcke geblättert. Als erstes wird die Anzeige des gefundenen Protokolls ("F" für Fast-Init und "S" für Slow-Init) und der vom Fahrzeug unterstützten PIDs (gleich in die Fahrzeugliste eintragen!) angeboten. Als letzte Einstellmöglichkeit gibt es einen leeren Block und dann beginnt die Auswahl wieder von vorne.
Am Anfang einer jeden Zeile wird dazu einmal die lange (ganzzeilige) und dann anschließend beim nächsten Tastendruck die kurze (halbe Zeilenlänge) Darstellung angeboten. Wenn ein paar Sekunden die Taste nicht gedrückt wurde, wird zur nächsten Displayposition gesprungen. Wurde zuvor eine lange Darstellung gewählt, wird die nächste Zeile angesteuert. Nach einer kurzen Anzeige wird an die zweite Position in der gleichen Zeile gewechselt, an der dann nur noch kurze Darstellungen möglich sind. Jede Zeile kann individuell zwei kurze oder eine lange Darstellung beinhalten. Wurde die letzte freie Anzeigeposition konfiguriert, beendet sich die Konfiguration nach ein paar Sekunden ohne Tastendruck automatisch und es werden wieder aktuelle Meßwerte angezeigt.

Warnsymbol MIL Erkennt das Modul einen Fehlereintrag im Fahrzeugsystem, wird an erster Position ein invertiertes Ausrufezeichen im Wechsel mit einem Werkzeugschlüsselsymbol und der Text "Diagnose" angezeigt. Die Anzahl der Fehler kann über das entsprechende PID angezeigt werden.

Die folgende Tabelle zeigt für sämtliche Meßwerte die Darstellungsform im Display in Lang- und in Kurzschreibweise:

PID Funktion lange Darstellung (exemplarisch) kurze Darstellung (exemplarisch) Bedeutung
- Ausgabe von ISO-Protokoll und den verfügbaren PIDs
ISO 9141F · 983F8010
ISO 9141F
Fast Init/Slow Init (ISO 14230) bzw. 9600/10400 Baud (ISO 9141)
1 System Status
Fehleranzahl:    3
3 Fehl.
Anzahl der gespeicherten permanenten Fehler
3 Status Einspritzsystem
A:Open Lp B:Clsd Lp
A:oL B:cL
Offener/geschlossener Kreislauf ohne Fehler; geschlossener Kreislauf (wegen Ansteuerbedingungen) = "Driving/Dr"; Offener/geschlossener Kreislauf mit Fehler
4 Berechneter Lastwert
ber. Lastwert:  50%
50% %Last
 
5 Motor Kühlwasser-/Öltemperatur
Kühlmittel:    74°C
74°CKühl
 
6 Kurzzeitige Kraftstoff-Einspritz-Korrektur Bank 1
Kurz.Ein.Tr. B1  -5,3%
-5,3%KETB1
mager (<0) bis fett
7 Langfristige Kraftstoff-Einspritz-Korrektur Bank 1
Lang.Ein.Tr. B1 10,8%
10,8%LETB1
 
8 Kurzzeitige Kraftstoff-Einspritz-Korrektur Bank 2
Kurz.Ein.Tr. B2  -5,3%
-5,3%KETB2
 
9 Langfristige Kraftstoff-Einspritz-Korrektur Bank 2
Lang.Ein.Tr. B2 10,8%
10,8%LETB2
 
10 Kraftstoffdruck
Kraftst.dr.:  120kPa
120kPa Kd
 
11 Absolutdruck Einlaßkanal
Abs.dr.Einl.: 99kpa
99kpa Ek
 
12 Motor-Umdrehungen
Drehzahl:    1234upm
1234upm  
¤
13 Geschwindigkeit
Tachometer:  150km/h
150km/h
¤
14 Zündwinkel/-voreilung Zylinder 1
Zündvoreilung:-12,5°
-12,5° Zv
 
15 Einlaß-Lufttemperatur
Ein.Lufttemp.: 70°
70°CLuft
 
16 Luftdurchfluß
Luftmasse:   150,25g
150,25gLm
17 Drosselklappenstellung
Drosselklappe:  75%
75%Drosl
kann auch Gaspedalstellung sein
18 Status Zweitluftsystem
Zweitluft: vorgesch.
ZwL.vorg.
vorgeschaltet, nachgeschaltet, Aus, unbekannt
19/29 Einbauort Lambdasonde
O2 Sensor:  00000001
O2 Sensor
Zahlwert gem. ISO (s. ISO 15031) nur bei Langform
20-27 Ausgangsspannung Lambdasonde & Kurzzeit Einspritztrimm
B2 S3: 0,12V -18,5%
0,12VB2S3
keine Anzeige des Trimmwertes bei Kurzdarstellung
28 OBD Standard
EOBD (Europa)
EOBD
usw.
30 Leistungsentnahme Nebenantrieb
Nebenantrieb: ein
N-Antr. 1
ein/aus bzw. 1/0
31 Zeit seit Motorstart
Motorstart: 01:20:05
M01:20:05
 
nicht unterstützte PIDs  
PID #02 Wert:C4
PID #32 ID: 8FABC105
PID #02
 

FAQ

Verschoben.