Upgrade MFA: FIS Control OBD im großen Sharan KI

#18

Heißt das, Du bist an dem OBD Format dran? Nur dass ich Dich nicht mißverstehe…
Dann lehne ich mich natürlich erstmal locker zurück :wink:

Gruß
Meschi

#19

Anscheinend will der Urheber das selbst vermarkten:

Ich bleibe dran…

#20

@Wollez: Wir habe hier doch schon ganz andere Dinge geschafft :lol:

Platinen und fertig programierte Megas zu besorgen, sollte kein wirkliches Problem sein.

Gruß
Meschi

#21

Jetzt schauen wir uns erst mal an was hier weiter kommt und wie die Preise sind.
Dann sehen wir weiter und im schlimmsten Fall aktivieren wir unsere berühmte SGAF Entwicklungsabteilung…

#22

Jau, gebongt.

Gruß
Meschi

#23

Moin!

So wie ich 20erShari verstanden habe, kann er mit seinem Test-Board bis dato einen externen Messwert (Ladedruck) abgreifen - und zwar NICHT via OBD. Die möglichen zusätzlichen Messwerte würden dann wohl per Taster durchschaltbar sein.

Zu FIS Control OBD: ich habe die Tage noch mal mit ZZottel gesprochen; es ist wohl eine neue (Hardware)Version der Platine in Arbeit. Darüber hinaus soll wohl eine modular anschließbare Platine für die Erhebung externer Messwerte entwickelt werden, welche dann im Grund die gleichen Features wie das Board von 20erShari hat.

„Wunschliste“: Unabhängig von OBD Erhebung von externen Messwerten - dazu wäre eine mögliche Konfiguration der Kennlinien der Sensoren durch denNutzer wünschenswert (Stichwort: Wechsel eines Sensors und neue Kennlinien). Die externen Messwerte sollten zum einen durch Spannung 0-5V (wie beim LD-Sensor) auslesbar sein und zum anderen über Widerstandswerte (z.B. Abgastemperatursonden). Toll wäre es natürlich, wenn bei der Nutzung des gesamten Displays ein Messwert grafisch dargestellt werden könnte - sei es durch ein Liniendiagramm (Messwert über Zeit) oder durch eine analoge Anzeige (Zeiger) mit digitalem Messwert.

Ich bin da wie gesagt kein Spezialist drin - ich kann sowas bis zum Exzess testen und gar furchtbare Motoren bauen, aber programmieren kann ich außerhalb der ECU nichts :smiley:

Gruß,

Fabian

#24

Nun bin ich praktisch fertig mit meinem kleinen Projekt, die Elektronik läuft problemlos und kann folgende Werte darstellen:
1) Öldruck (mit nachgerüstetem Öldrucksensor)
2) Ladedruck (vom Originalsensor mit Parallelabgriff auf Pin 4)
3) Ladelufttemperatur (mit nachgerüstetem Temperatursensor)
4) Ladedruck und Ladelufttemperatur kombiniert

Alle Messwerte werden rein analog von den Sensoren abgegriffen, ohne Eingriff in den Datenbus oder in ein Steuergerät.
Das Umschalten zwischen den einzelnen Messwerten erfolgt bei mir durch die unbenutzte GRA-Wippe am Blinkerhebel, da ich ein Multifunktionslenkrad besitze. Es kann aber jeder beliebige 2-fach Taster verwendet werden.

MFA Öldruck.jpg MFA Ladedruck.jpg MFA Ladetemp.jpg MFA Kombi.jpg

Die Software ist in Bascom geschrieben und wurde mit einem Standard-ISP Programmer auf den Chip übertragen.
Der Schaltplan liegt auch im Eagle-Format vor, vielleicht findet sich jemand, der daraus eine professionelle Leiterplatte anfertigen kann, meinen Aufbau habe ich mit einer Standard-Lochrasterplatine und frei verlegten Drähten gebastelt.
Software und Schaltplan stehen frei zur Verfügung, jedoch besitze ich leider keinen Webspace, deshalb werde ich die Dateien bei Interesse per Mail schicken.

MFA Schaltplan.jpg MFA Bauteileliste Conrad.jpg

Wie bereits in den vorigen Postings geschrieben, schaffe ich es nicht selbst, den Datenbus anzuzapfen und Werte darzustellen.
Falls jedoch jemand anderer den Bus auslesen kann, könnte man das in die Software einpflanzen, die Platine selbst hat bereits einen Anschluss für die K-Leitung vorgesehen.

#25

Moin!

Das ist ja super geworden! Ich hab mal ein paar Fragen dazu (mal wieder) :wink:

  • Ladelufttemperatur: Kannst Du nicht von Pin 2 des LD-Sensors die Temperatur abgreifen? Ansonsten: was für einen Sensor genau hast Du denn benutzt?
  • Öldruck: Was für einen Sensor genau hast Du benutzt und wie und wo hast Du den installiert?
  • Ladedruck: Ich nehme an, in Deiner Software sind die Kennlinien für den Serien-Sensor hinterlegt - wie aufwendig ist es, die Kennlinie für einen 4-bar-Sensor zu implementieren?

Leider fehlt mir komplett die Möglichkeit, die Software auf den Chip zu bekommen, sonst würde ich das Teil sofort nachbauen. Ich würde auch (gegen Entgelt) eine fertige Platine von jemandem abnehmen, der mit das Teil bauen könnte. Ich würde das nämlich gerne ausgiebig testen :wink:

Wegen der professionellen Leiterplatine weiß Wollez vielleicht was…?

Gruß,

Fabian

#26

Den originalen Ladelufttemperatursensor kann man auch verwenden, aber es müssen ein paar Abstriche bei der Messgenauigkeit gemacht werden, da dieser Sensor eine relativ stark gekrümmte Kennlinie hat, eine Anpassung mit Serien- oder Parallelwiderständen ist nicht möglich, da die Messwerte im Motorsteuergerät verfälscht werden.

Öldrucksensor ist von JUMO und nennt sich „Druckmessumformer RS-1“, 0-10 bar, Zweileiteranschluss, Typ 40.1001, www.jumo.net

2a504a32271e08e34d50ea81db68ed24.jpg

Die Anpassung der Kennlinien ist nicht schwer, ebenso die Änderung des Anzeigentextes.

Eine professionelle Leiterplatine würde ich auch gerne haben, sieht besser aus wie meine und ist auch zuverlässiger.

#27

Moin!

Jumo scheint nur an Gewerbetreibende zu liefern, nicht an Privatpersonen :expressionless: Was kostet der Jumo-Sensor denn; ich kann auf der Homepage von denen leider nichts in Erfahrung bringen. Der Spannungsbereich des LL-Temp-Sensors im LD-Sensor ist identisch mit dem von Dir verwendeten Sensor? Die Genauigkeit würde ich ev. vernachlässigen können, da ich die Werte eh nur „im Augenwinkel“ haben will, wenn der Wagen fährt.

Gibt es für die Bearbeitung der Software-Files ein bestimmtes Programm, das man dafür nutzen sollte? Idealerweise Freeware/Shareware, da ich sowas vermutlich genau 1x benötigen würde (wenn ich es denn letztendlich selbst versuchen sollte). Gibt es dafür auch hilfreiche Literatur, die man sich als Laie antun sollte?

Gruß,

Fabian

#28

Ich hab den Sensor bei RS bestellt, www.rs-components.at, Preis weiss ich nicht mehr , irgendetwas zwischen 50 und 100 Euro.

Die Software hab ich mit Bascom-AVR geschrieben, gibt es als kostenlosen Demo-Download unter www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54

Ist keine große Hexerei, es gibt zudem eine ausführliche Hilfefunktion

#29

Ich hab gerade mal nach dem Preis geschaut, sollte so bei 110 Euro liegen. Naja, wenn die Qualität es denn wert ist… Hast Du den Drucksensor über Adapter eingebaut oder hat das Teil direkt gepasst?

Für die BASCOM-Geschichte werde ich mir jemanden suchen, der das für mich machen kann - neben der fehlenden Kenntnis im Programmieren fehlt mir auch die nötige Hardware, um den Chip zu bespielen.

Gruß,

Fabian

#30

Den Drucksensor hab ich beim serienmäßigen Öldruckschalter eingebaut, und zwar mit einem T-Stück wie es sonst bei normalen Zusatzinstrumenten verwendet wird. z.B. doeb.at/fox/vw_passat/umbau/mod_zusatzinst_11.JPG

#31

Ah, ok - diese T-Stücke gibt es ja u.a. von VDO. Die bieten auch günstigere Sensoren an. Spricht eine ungenauere Messung dagegen? Wirft der Jumo-Sensor Ohm-Werte aus? Ich konnte im Netz dazu nix finden…

#32

Der Jumo-Sensor ist sehr genau, arbeitet im 1/100 Bereich,
ein normaler Öldrucksensor von z.B. VDO ist auch möglich,
jedoch ist hier die Kennlinie auch wieder gekrümmt.
Wenn dir die Genauigkeit von der Öldruckanzeige nicht so wichtig ist, kann man auch einen handelsüblichen Sensor verbauen.

#33

Die Genauigkeit in so einem feinen Bereich ist mir da nicht so wichtig - ich brauche eher einen schnellen Blick auf die Daten. Da ich ohnehin von McNally Electronics in Kürze analoge Anzeigen mit seperaten Gebern nachrüsten werde, würde ich davon gerne die Messwerte für die Platine abgreifen. Außerdem bräuchte ich einen ganzen „Baum“ für die ganzen Snesoren für den Öldruck, Öltemperatur usw :smiley: Allerdings habe ich die Datenblätter für die Sensoren (noch) nicht zur Hand. Könntest Du mir die aktuellen Dateien zur Platine und Software per Mail zusenden? Dann schau ich mal, ob ich mit der Shareware-Version von BASCOM zumindest einiges verstehe… :wink:

Gruß und Danke,

Fabian

#34

Hey 20er,

kannst Du das Listing nicht hier mal veröffentlichen? Dann könnte man mal schauen, was Du so machst. Falls Du Angst hast, dass jemand sich damit einen goldene Nase verdient, gerne auch per PN.

Du könntest sowas aber auch als Bild einstellen (Screenshot) und dieses Bild in der Sichtbarkeit für z.B. nur Mitglieder beschränken…nur so’ne Idee.

Gruß
Meschi

#35

Hier mal der derzeitie Stand:

$regfile = „m32def.dat“
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
$baud = 9600

Ena Alias Portd.2 '3LB
Clk Alias Portd.4 '3LB
Dat Alias Portd.5 '3LB
Led Alias Portb.4 'LED dient nur zu Kontrollzwecken

Up Alias Pinb.0 'Taster Up
Down Alias Pinb.1 'Taster Down
Enter Alias Pinb.2 'Taster Enter (derzeit unbenutzt)

Config Ena = Output
Config Clk = Output
Config Dat = Output
Config Led = Output

Config Up = Input
Config Down = Input
Config Enter = Input

Portb.0 = 1 'Pullup ein
Portb.1 = 1 'Pullup ein
Portb.2 = 1 'Pullup ein

Config Adc = Single , Prescaler = Auto
Start Adc

Declare Sub Button_up
Declare Sub Button_down
'Declare Sub Button_enter

Dim I As Word
Dim K As Word
Dim Modus As Byte
Dim Char As String * 1
Dim Fis(18)as Byte
Dim Text As String * 16
Dim Zahltext As String * 4
Dim Analog As Long

Fis(1) = 15
Modus = 0
Gosub Button_up

Do

Debounce Up , 0 , Button_up , Sub 'Abfrage der Taste Up
Debounce Down , 0 , Button_down , Sub 'Abfrage der Taste Down

'******************************************* MESSWERT AUSLESEN ****************
If Modus = 5 Then
Analog = 0
Char = „1“
Fis(14) = 255 - Asc(char)

For I = 1 To 1000
K = Getadc(1)
Analog = Analog + K
Next I

Analog = Analog / 1000

Zahltext = Str(analog)
For I = 1 To 4
Char = Mid(zahltext , I , 1)
Fis(i + 1) = 255 - Asc(char)
Next I

End If

'******************************************* ÖLDRUCK **************************
If Modus = 1 Then
Analog = 0

For I = 1 To 1000
K = Getadc(2)
Analog = Analog + K
Next I

Analog = Analog - 78000 'Offset Korrektur in 1000*ADC
Analog = Analog / 328 '/1000 *5VRef /1024bit *100Dezimalpunktverschiebung *6.25 Steigung
If Analog

Zahltext = Str(analog)
If Len(zahltext)
If Len(zahltext)

Char = Mid(zahltext , 1 , 1)
Fis(2) = 255 - Asc(char)

Char = Mid(zahltext , 2 , 1)
Fis(4) = 255 - Asc(char)

'Char = Mid(zahltext , 3 , 1)
'Fis(5) = 255 - Asc(char)

End If

'******************************************* LADEDRUCK ************************
If Modus = 2 Then
Analog = 0

For I = 1 To 1000
K = Getadc(0)
Analog = Analog + K
Next I

Analog = Analog / 3720 '/1000/372*100Dezimalpunktverschiebung

Zahltext = Str(analog)
If Len(zahltext)

Char = Mid(zahltext , 1 , 1)
Fis(2) = 255 - Asc(char)

Char = Mid(zahltext , 2 , 1)
Fis(4) = 255 - Asc(char)

Char = Mid(zahltext , 3 , 1)
Fis(5) = 255 - Asc(char)

End If

'******************************************* LADELUFTTEMPERATUR ***************
If Modus = 3 Then
Analog = 0

For I = 1 To 1000
K = Getadc(1)
Analog = Analog + K
Next I

Analog = Analog / 1410 '/1000 *5VRef /1024bit *145.29Steigung
Analog = Analog - 140 'Offset Korrektur in °C

Zahltext = Str(analog)
If Len(zahltext)
If Len(zahltext)

For I = 1 To 3
Char = Mid(zahltext , I , 1)
Fis(i + 1) = 255 - Asc(char)
Next I

End If

'******************************************* LADEDRUCK + LADELUFTTEMPERATUR ***
If Modus = 4 Then
Analog = 0

For I = 1 To 500
K = Getadc(0)
Analog = Analog + K
Next I

Analog = Analog / 1860 '/500/372*100Dezimalpunktverschiebung

Zahltext = Str(analog)
If Len(zahltext)

Char = Mid(zahltext , 1 , 1)
Fis(2) = 255 - Asc(char)

Char = Mid(zahltext , 2 , 1)
Fis(4) = 255 - Asc(char)

Char = Mid(zahltext , 3 , 1)
Fis(5) = 255 - Asc(char)

Analog = 0

For I = 1 To 500
K = Getadc(1)
Analog = Analog + K
Next I

Analog = Analog / 705 '/500 *5VRef /1024bit *145.29Steigung
Analog = Analog - 140 'Offset Korrektur in °C

Zahltext = Str(analog)
If Len(zahltext)
If Len(zahltext)

For I = 1 To 3
Char = Mid(zahltext , I , 1)
Fis(i + 6) = 255 - Asc(char)
Next I

End If

'******************************************* AUSGABE AN MFA *******************
Waitus 100
Ena = 1
Waitus 100
Ena = 0
Waitus 100
Ena = 1
Waitus 70
Fis(18) = 0
For I = 1 To 18
Shiftout Dat , Clk , Fis(i) , 0 , 8 , 50
Fis(18) = Fis(18) - Fis(i)
Fis(18) = Fis(18) - 1
Next I
Ena = 0
Clk = 1
Dat = 1

Loop

End

'******************************************* SUB ******************************
Sub Button_up
Toggle Led
Modus = Modus + 1
If Modus > 5 Then Modus = 1

If Modus = 1 Then Text = „%.%%BAR `LDRUCK“
If Modus = 2 Then Text = „%.%%%BAR TURBO“
If Modus = 3 Then Text = „%%%%kC% TURBO“
If Modus = 4 Then Text = „%.%%%%%% BAR%%kC“
If Modus = 5 Then Text = „…ADC…“

For I = 1 To 16
Char = Mid(text , I , 1)
Fis(i + 1) = Asc(char)
Fis(i + 1) = 255 - Fis(i + 1)
Next I

End Sub

Sub Button_down
Toggle Led
Modus = Modus - 1
If Modus

If Modus = 1 Then Text = „%.%%BAR `LDRUCK“
If Modus = 2 Then Text = „%.%%%BAR TURBO“
If Modus = 3 Then Text = " %kC TURBO"
If Modus = 4 Then Text = „%.%%%%%%%BAR%%kC“
If Modus = 5 Then Text = „…ADC…“

For I = 1 To 16
Char = Mid(text , I , 1)
Fis(i + 1) = Asc(char)
Fis(i + 1) = 255 - Fis(i + 1)
Next I

End Sub

#36

Controller Programmierung in Basic - so weit ist es gekommen :wink:
Sieht ja sehr einfach und strukturiert aus! Und was der Compiler schon alles drin hat: Zahlen ausgeben … :respekt:

#37

Servus Gemeinde,
ich weiß der Beitrag ist schon alt, aber hat jemand hierzu eine EAGLE Datei des Schaltplans?