Page 1 of 1

Ford PWM idle valve problems

Posted: Mon May 26, 2008 11:46 am
by SQLGUY
Hi folks,

I am trying to get my Ford 2-pin PWM idle valve to work correctly with Microsquirt. The documentation on this seems pretty sparse.

Here's what I've found:

1. If I go with the default of 80 Hz, the idle valve make a rather annoying noise somewhere between a horn and an angry frog. This is more annoying because this is on a motorcycle, so very noticable. Setting it to 320 Hz is better, but I can't find any information saying what the frequency should be, other than a blog saying that Ford idle valves use 40 Hz for their PWM. Microsquirt doesn't support 40 Hz.

2. I removed the idle valve so I could observe its behavior with different settings of the PWM warmup curve. No matter what I set the current square of the curve to, the valve would open 1/8" at the same time as the fuel pump was doing its prime run, then close. I have two of these valves, and they both act the same way.

3. This valve is fully closed with no power applied. Supposedly, the PWM map has 0 for no power and 100 for full 12V, yet, with my map set to 0, the system is giving way too much extra air, when fully warm, if the idle valve is connected. I don't have a CLT per-se, but instead an oil temp sensor (air cooled engine). With the oil temp up around 280F and the top end of the PWM map set to 0, the engine will more-or-less idle with the valve disconnected, but will jump to 4000RPM when I connect it.

Any suggestions?

Any place I can get some more detailed documentation on this setup? This is the only detail I could find on Ford PWMs with Megasquirt, and it is not up-to-date for the current firmware http://megaefi.com/Megatunesetup.htm

Thanks,
Paul

Re: Ford PWM idle valve problems

Posted: Tue May 27, 2008 5:41 am
by Matt Cramer
The Ford PWM IAC valves we've examined with stock ECUs run at 300 hZ. Since 320 is the closest option, I'd set it to that.

Re: Ford PWM idle valve problems

Posted: Tue May 27, 2008 9:48 am
by SQLGUY
Thanks Matt, that's where I've had it set, but I still have issues 2 and 3. Any ideas there? What should I have to have the map set to in order to close the valve completly?

Thanks,
Paul

Re: Ford PWM idle valve problems

Posted: Tue May 27, 2008 6:17 pm
by SQLGUY
Looking through the code, I find this:

// check for IAC step pulses
if(IdleCtl == 4) {
iacpwmctr += inpram.IACpwm_step;
if (iacpwmctr >= 100) iacpwmctr=0;
// 100 - IACmotor_pos = duty cycle
if (IACmotor_pos > iacpwmctr) *pPTMpin[2] &= ~0x04; // turn off fast idle solenoid
else *pPTMpin[2] |= 0x04; // turn on fast idle solenoid
outpc.iacstep = IACmotor_pos; // Dual purpose as idle DC - E.Fahlgren fix
}

Which looks to me like the table posted at http://megaefi.com/Megatunesetup.htm is actually backwards - i.e. 100 actually = 0% duty cycle, and 0 = 100% duty cycle. Am I reading this correctly?

Also, a block of code further up:

else if(IACmotor_reset && ((IdleCtl >= 2) && (IdleCtl <= 5))) {
// In cranking mode. The very first time we crank we want to
// open to crankpos, but after cranking we don't want to do
// this because of an ignition reset (in which rpm = 0)
if((outpc.rpm + firstIAC) && (outpc.rpm < inpram.crank_rpm)) {
tmp1 = CW_table(outpc.clt,inpram.iacstep_table);
if(tmp1 > inpram.IACcrankpos) {
tmp1 = inpram.IACcrankpos; // want IAC open at
// least this much during cranking regardless of temp
}
tble_motor_pos = tmp1;
}

seems to say that "Start Value (retract)" does in fact apply to PWM IACs.