Stage 3 - Control misc. devices
2006.04.20
Installed a PowerFlyback because the ECU will go to another car using lowZ injectors. While it remained in the original High-Z config (injector PWM=100% and time to activate = 25.5 msec). Lambda went crazy:
- At idle and no load it was ~20% leaner than before
- this is normal, since powerflyback makes injectors close fast => higher PW needed
- at heavy load it was pig rich. (probably 20-30% richer).
- this is surprising. Are you sure about this ? No other change were made ?
- Moreover I wasn't able to correct it with changing Injocfuel config value
- increasing injopen by 150 usec helped ?
Or even remapping was not really successfull. (Took away a lot in VE-table, still it was very rich, all-in-all lambda didn't follow VE-table changes; probably the well-known symptom of controlling injectors the bad way.)
- Is this normal for PowerFlyback & High-Z injectors?
- Not at all.
- is D100 removed ?
Are you sure it's connected ?
If you apply 12V through a 22 Ohm resistor (the resistor is important!):
- + to the injector output channel
- - to the injector-common
2006.04.1x
- Car's got a somewhat bigger turbo (garrett T3) with 240cc injectors and stock headgasket. Mapping and feeling has changed a lot.
TODO
- Control Idle solenoid - working now, firmware development was necessary, MembersPage/GergelyLezsak/IdleControl
- Drive tachometer - done, see below
- Wire-in fuel-pump relay - done
- Show oil temp. (No info on sensor either)
- Control fuel consumption gauge (?)
- drive a boost control solenoid
- Install egt (hardware installation is tricky, need to remove the whole exhaust system)
- Install knock sensor - No factory placement on M20 engine to mount, experiences are appreciated.
Tachometer
Engine speed output is routed from Motronic 'ECU (55 pin) connector' pin 6 and signal goes to instrument cluster pin A7.
NEWS 2005.11.04:
Just tried the simple way and gave the tacho the signal of ignition and it's working more or less.
(Actually it gets fix +12V through a 10KOhm resistor (pullup) and that's going towards to the ignition pin of GenBoard through a diode)
+12V - - - - -10KOhm- - - - -tacho_signal- - - -|>|- - -ign.driver
So it's working but I see a bit lower RPM values on the tacho than the LCD shows. (maybe 10-20% lower, haven't tested much)
What can be wrong?
- Lazy gauge ? likely
- or my signal needs more care? Since it's a frequency signal, the amplitude does not matter (as long as every pulses are detected). If not every pulses are detected, you get big fluctuations in the gauge RPM-reading and occasional full dropouts. If there are no intermittent dropout on the RPM gauge, I don't think you can do much about it.
However, with the tach output (since it's a freq-out signal, asyncron from the real ignition) it's possible to tune frequency.
- Wow, nice new feature I didn't know of :) Now I'm trying to figure out how it works. In actuators.c I see I can multiple value of engine.rpm_period by powers of 2 only. Multiplication of period gives me division of frequency. I'd like to multiple crank frequency by 3 or more likely by 3.3 . How can I do that?
The whole tach_out configuration is curently (1.0.23) sloppy:\nÿ1ÿ
Something like scale16_4_clamped() in multitooth.c would do. Proposal for better utilization of config.tach_divider:
- 6 bits for fine-tuning: * 64/128 .. 127/128
- and 2 bits for rough scaling (power of 2)
- 00 (means rpm_p <<= 0)
- 01 (means rpm_p <<= 1)
- 02 (means rpm_p <<= 2)
- 03 (means rpm_p <<= 3)
But 3 + 5 would do just as fine, *(32/64 .. 63/64) should be perfect for fine-tuning.
So we need to swap the code with a more sophisticated one. Please note that shifting (division with powers of 2) is not enough, for the 6 cyl engine I need to div by 3, and for a 5 cyl one rpm has to be divided by 2.5. Tricky.
Fuel Consumption Gauge
- The actual gauge uses a linear voltage between 0 and 1.5 Volts. See my page here: MembersPage/MattiasSandgren/BmwEthirtyIx
- You would need to bypass the electronics to get to it.
- Could be used as a MAP gauge (10 litres/100km = 100 kPa).
- Interesting idea, I like reusing factory gauges :)
As what comes to controlling fuel consumption gauge, it seems that inside instrument cluster has some kind of adaptation module, which is engine type specific (size, number of cylinders etc.) - somehow it derives consumption from above mentioned tachometer signal and/or following two signals;
- vehicle speed signal: from Motronic ecu pin 29 which also goes to the instrument cluster.
- fuel rate output signal: from Motronic ecu pin 32 -> goes to instrument cluster pin A11.
Don't know for sure, but 'Fuel rate output' signal might be some kind of pulses per second or pwm signal ? Someone could measure ?
Hope these help ?
I'm affraid we are talking about different motronic versions. Autodata catalog says that motronic pin 29 is ignition signal TO motronic. I can confirm that, since car was not running on motronic until I connected back that pin. Pin 32 is "throttle position control module" which might be some "cruise control" system. I'm not sure. I think my motronic didn't know the car's speed since my speedometer is fine without it :) (So signal from differential goes to the speedometer directly?)
Instead, maybe the instrument panel calculates fuel consumption based on fuel rate signal and speed?
Actually I only miss my tachometer, fuel cons. was inaccurate for ages (different size injectors and fuel pressure :)
Thanks however, and I still seeking tachometer signal specifications. No one using factory tachometer? I guess I have to wire back motronic to measure somehow :(
- We had the same result on a E30 here, their tachos are bad from factory.. //Emil
(or by phone# 1-2209238 in the evening)