Page 1 of 1

Downshift fuel cut?

Posted: Wed May 17, 2006 4:22 pm
by bluetrepidation
OK my car's status is my VE table is getting REAL close to where it needs to be. I've started to lean things out to save gas. The high RPM low MAP area is still a little fizzy being it is hard to drive in that area. But I'm getting there. I think I'm getting my AE set up better. Though I still have a lean condition on short small spikes of the throttle at low RPM. Now here is something my stock ECU did that I'm starting to consider....

With engine RPMs greater than 1500 and the throttle sitting at fully closed for more than say two seconds the stock ECU would then cut fuel completely helping to slow the car and save gas. I liked this feature.

So how do I get the MS II to do this? I'm guessing I need to zero out the lowest MAP row on my VE table? Or is there another way? Can the deceleration fuel amount do this somehow? Or do I need to sacrifice a whole row on my VE table? Would this be hard to add to the code as a feature?

Questions questions. Thanks in advance.

A.J.

Posted: Thu May 18, 2006 6:31 am
by Jedrik
Its hard to make it do what you want with low VE bins because you get a range were it extrapolates... but I do run my lowest bins quite low to reduce the decel richness.

There isn't an overrun fuel cut in MSII yet but I suspect it will come soon.
If you program, here is my setup as a start point... It activates the fuel cut rev limiter (overrun_cut set).

Code: Select all

// overrun cut - Jedrik
if( outpc.rpm > inpram.overrun_hirpm ) // Above activation RPM?
{
    if( outpc.tps <= (short)((outpc.rpm / inpram.oc_rpm) + inpram.octp )) // Below cut TP?  Then cut fuel!
    {	
	if( oc_clk > inpram.ocDelay )  // delay overrun cut by ocDelay ( x .1 sec) so no cut during shifting
	{
	    overrun_cut = 1;
	    atmp = 0; // cancel AE
	    aepw = 0;
	    outpc.engine &= ~0x10;  // clear AE bit
	    outpc.engine |= 0x20;		  // set tps decel bit
	}
    }
    else
	oc_clk = 0;
}
if ( overrun_cut ) // check for cancel fuel cut.  oc_lorpm is cancel RPM
{
    if (outpc.rpm < inpram.oc_lorpm 
		    || outpc.tps > (short)((outpc.rpm / inpram.oc_rpm) + inpram.octp )) // cancel overun fuel cut
    {
	overrun_cut = 0;
	outpc.engine &= ~0x20;       // clear tps decel
	if( outpc.tps > inpram.octp )
		atmp = inpram.ocrecover; // one blip of fuel added after oc (ms x 10) (open throtle)
	else
	{
		atmp = inpram.ocrecover2; // idle down recover (closed throtle) - needs more fuel?
		idleupT = outpc.seconds + inpram.ocIdleUpTime; // turn on fidle for # sec. after oc cancel w TP closed
	}
    }
}

Posted: Thu May 18, 2006 12:20 pm
by bluetrepidation
This is what I'm looking for. Thanks for the info. How is this working out for you? I'll keep this in mind for when I get my tune closer to where I can start experimenting.

A.J.