Tuesday, November 22, 2011

Vss/Traction Control

I connected my Vss signal to the Nitrous In line.  Enabled it in the advanced tab and I have an accurate speed signal from the rear wheels.
BMW's have 9-tooth Vss senders in the differential


The Vss signal from the front was more difficult.  I tapped the ABS signal for my right, front wheel where the wiring comes through the fender in the engine bay.  The ABS VR signal has 2 wires; one of the wires is common to ground and can be ignored.  You need to tap the one that is not common to ground.  This signal will not drive the Megasquirt input directly, but needs to be amplified by a high-impedance circuit.  The ABS signal is so weak that too much additional load across the signal will result in an "ABS" warning light.

Fortunately, I already had a solution at hand:

Who knew?  My original Hall-to VR conversion board is excellent as an ABS VR signal conditioner! 
By removing a few biasing resistors I discovered that my VR conversion circuitry is excellent for converting the ABS signal into an amplified square wave.  What makes it work so well is that it has a charge pump that produces negative12 volts, allowing the OpAmp to efficiently detect voltages exactly at ground.  I can turn the wheel by hand very slowly and the circuit works accurately.  The LED lights  alternately flash with each new tooth.  Very handy!

So, I now have a Vss1 signal coming from the differential and Vss2 from right, front wheel.

I enabled traction control using the %slip method but found that I have a NASCAR problem; the traction control works great as long as I'm driving straight or making left-hand turns, but cuts power when I make right-hand turns as the inside wheel slows down.

Traction control sees the front slowing down and thinks the rear is slipping, so it cuts power.

Megasquirt integrates the % slip over time in .01 second increments so that 1% slip for .1 seconds becomes 10% slip.  2% slip for .2 second is 40%....

The instantaneous difference in wheel speed during a turn is only 1.2% so it shouldn't be triggering with the threshold set to 10 or 20%, so I think there is an error in the way that Megasquirt calculates the threshold, it seems to be using the integrated slip value and not instantaneous.

In a straight line, it works great.  I nailed the throttle on a wet, slippery hill and the car maintained traction all the way up.

Update, 12 Dec.  It was a coding error...  I got a code revision based on my feedback and installed it this weekend.  It fixed the cornering issue and traction control now works about how it should.  I got to work early this morning and found a large parking lot glazed from ice fog.  I nailed the throttle and the wheels maintained traction as the engine went "Bwaaap" from spark cut.

Traction control in action.  Timing gets pulled until the wheels stop spinning.

1 comment: