BMW S65 (V8 M3) Ion Sensing

Hardware inside and outside of the ECU
Post Reply
ssmith
Posts: 92
Joined: Sun Oct 17, 2021 10:21 pm

BMW S65 (V8 M3) Ion Sensing

Post by ssmith »

I decided to start a new topic so the different hardware solutions could be kept separate.

I finally got a chance to test out a running car. The coils have three pins: 12V, GND, and a signal wire that doubles as ignition and sense signals. It seems that the ECU drives it to 0V to charge the coil, 5V-ish to release the spark and perform ion sensing, and then 2.5V-ish to idle the coil.

1. If the signal wire is disconnected, the voltage floats to 4.12V
2. If the signal wire is connected to a 1kO/1kO divider from 5V (to simulate 2.5V), the voltage is 3.6V
3. If the signal wire is connected to a 11kO/11kO divider from 5V (to simulate 2.5V), the voltage is 3.82V
4. If the signal wire is pulled up to 5V with a 1kO resistor, the voltage is 4.63V
5. If the signal wire is pulled up to 5V with a 11kO resistor, the voltage is 4.37V

Sorry for the ground offset in these pictures, just trust that the real voltage range is 0-5V. The voltage sense is 1/11th what it should be (so take the major grid division on the bottom for yellow and multiply by 11). These were taken with no load on the motor; I know ion sensing isn't as useful at idle but I don't have a portable oscilloscope.

Dwell time is about 2ms. There are some interesting spikes during dwell that I can't explain; there are similar spikes after the measurement period that I can't explain either - a series of 4 shorts to ground that occur within 1.5-2ms.

It seems the ECU pulls the signal wire high during the measurement period which varies with RPM - at 2000RPM the measurement period is 15ms which is 180 degrees, and the dip in the signal occurs about 24 degrees after the spark. That seems awfully soon to be a peak pressure measurement, unless this is just the expected behavior for no load?

For 775RPM, the measurement period is 20m or 93 degrees, and the dip occurs about 15 degrees after the spark. Again that seems really early?

So, uh, any feedback on the graphs? Any idea on the pulses during coil charge or after the measurement block? Is this all worthless until I see it under load?

Seems in order to drive it I need something capable of driving 2.5V and 0V with low impedance, along with the ability to disconnect the driver and just have a pull-up to 5V with measurement across the resistor. Maybe use an output from the MCU to indicate 0V or 2.5V, an opamp to provide the current needed to keep the voltage stable, a mosfet controlled by another output of the MCU to allow the driver voltage through, and an opamp to measure the voltage drop across the current sense resistor?
Attachments
775 RPM
775 RPM
775rpm.jpg (3.84 MiB) Viewed 2236 times
2k RPM
2k RPM
2krpm.jpg (3.78 MiB) Viewed 2236 times
ssmith
Posts: 92
Joined: Sun Oct 17, 2021 10:21 pm

Re: BMW S65 (V8 M3) Ion Sensing

Post by ssmith »

I ran one more test. With a 470 ohm resistor pulled to ground, the signal is about 2.6V. When pulled to 5V, it's 4.6V. That actually makes for a fairly simple circuit.

MCU output to a buffer capable of 10+mA to a 470 ohm. Drive high to sense, drive low to idle.
In parallel with that, an n-ch logic level mosfet to ground. When driven high, output goes low and the coil starts charging. This signal can easily come from an external ECU, and makes this circuit look like an ignitor.

Now I just need to wire the crank through this external ECU and I have something that I can swap in instead of an ignitor to use for ion sensing. If it doesn't work, or I don't like the results, then I can remove it in about 5 minutes.
Post Reply