BMW E36 Guide: Difference between revisions
Line 11: | Line 11: | ||
==Engine Temperature== | ==Engine Temperature== | ||
''In research'' | ''In research'' | ||
Should be similar to [[BMW_E30_Guide#Fuel_Level|E30]] | |||
==Fuel Level== | ==Fuel Level== |
Revision as of 16:03, 14 November 2017
BMW E36 (1990 - 1999)
RPM
Use the wire connected to the instrument cluster #20, black wire. Also available on the round diagnostic connector at the back of the engine compartment (black wire, Pin #1)
RaceCapture/Pro Timer RPM Configuration
- Timer Mode: RPM
- Timer Speed: Medium
- Pulse Per Revolution: 3
Engine Temperature
In research
Should be similar to E30
Fuel Level
Tap the brown/yellow wire that is in the small connector on the back of the dash closest to the driver's door.
Mapping in RCP
- 0.2v = 0 (empty)
- 1.33v = 25 (1/4)
- 2.2v = 50 (half)
- 2.95v = 75 (3/4)
- 3.53v = 100 (full)
You may want to average your fuel readings to compensate for slosh.
(Needs verification)
- 0 ohms empty
- ?? ohms 1/4
- ?? ohms 1/2
- ?? ohms 3/4
- 260 ohms full
Oil Pressure
Recommend a dedicated 10 bar / 145 PSI 0.5-4.5v pressure sensor. Pressure Sensor
Road speed (differential speed sensor based)
This calculates gear and speed based on the differential speed sensor.
Assumes:
- Engine RPM is connected to the first timer input.
- Differential speed pulse is connected to the 2nd timer input
The differential speed signal is on a black w/ white stripe wire and can be found in the following location:
- Pin 2 on connector X17 to the back of the gauge cluster
- Pin 10 on connector X22 on the cruise control module behind the glove box
- Pin 10 on radio connector
setTickRate(10) --10Hz --virtual channels --addChannel("name",SR,prec,min,max,"unit") speeddiff_id = addChannel("Speed_",10,0,0,160,"MPH") gear_id = addChannel("Gear_",5,0,0,5,"gear") --global constants --edit these to match your car first = 4.20 second = 2.49 third = 1.66 fourth = 1.24 fifth = 1.00 final = 3.46 tirediameter = 24.7 --global variables rpm = 0 rpm_diff = 0 speed = 0 function updateSpeedDiff() rpm_diff = getTimerRpm(1) speed = rpm_diff*tirediameter*0.002975 speed = speed + 0.5 -- round because 0 prec. truncates setChannel(speeddiff_id, speed) end function updateGear() rpm = getTimerRpm(0) local gearErr = 0.15 local gear = 0 if speed > 2 then ratio = rpm/(rpm_diff*final) if ((first - ratio)^2) < (gearErr^2) then gear = 1 end if ((second - ratio)^2) < (gearErr^2) then gear = 2 end if ((third - ratio)^2) < (gearErr^2) then gear = 3 end if ((fourth - ratio)^2) < (gearErr^2) then gear = 4 end if ((fifth - ratio)^2) < (gearErr^2) then gear = 5 end end setChannel(gear_id, gear) end function onTick() updateSpeedDiff() updateGear() end