It's my understanding that under normal operation spark advance is directly proportional to RPM, i.e. as RPM increases so does spark advance due to the need to ignite the AFM earlier the quicker the piston is moving.

So I was somewhat surprised when I saw this graph from my 98 Mazda 626 while it was idling:

enter image description here

As you can see, the spark advance here is inversely proportional ( a mirror image ) of the RPM graph.

I'm not sure which is the cause, and which is the effect, and generally why there would seem to be such an odd relationship between the two at idle.

  • Does your engine also have a vacuum advance? If so, it will more than likely be changing due to vacuum changes rather than the revs.
    – HandyHowie
    Dec 21, 2015 at 19:18
  • @HandyHowie Don't think so. There is no distributor, it's ECU controlled. Dec 21, 2015 at 19:30
  • I would guess that the ECU is performing the equivalent change as for vacuum advance.
    – HandyHowie
    Dec 21, 2015 at 19:32
  • Looking over old logs, I realized that the spark advance was behaving correctly, right after I replaced the O2 sensor, just a few days before this data was logged: mechanics.stackexchange.com/questions/22686/… Nov 7, 2017 at 14:38

4 Answers 4


Most of my knowledge here is coming from working on my 1970 Chevy Pickup, so some of it may not be exactly accurate for your vehicle...

There are basically 3 things you need to consider for timing - engine RPM, air/fuel ratio, and volume of air fuel mixture in the cylinder.

Engine RPM is simple, as the engine spins faster, you need to ignite faster to compensate.

A/F ratio - Richer needs LESS advance. More fuel burns faster.

Volume of A/F mixture - more volume = less advance. If you have more air and fuel, it will burn much faster. This is what vacuum advance takes care of on older vehicles. Think of the amount of air/fuel in your cylinder at idle versus the amount at WOT.

On the small block chevy's (and I believe most carb engines) you typically set the timing for all in at ~36*. You hit that 36* early, like 2200 RPM and it will stay there through the rest of the powerband. Vacuum advance adds ~10-12* of advance at idle and 0* at WOT.

By the way, I can't see your image, so I don't know the range we are working in here. This is not your fault, I'm at work...

What might be happening, likely a combination - ECU is richening the mixture to help counter the heat in the cylinder (common at WOT)

ECU is pulling timing to be safe at higher RPM.

If you were not wide open, then went wide open, the timing should retard quickly.

I believe volumetric efficiency increases with RPM (especially on a DOHC engine)

  • It's still doing strange stuff with the timing, it's now retarding the timing down to almost 0* at idle, with no codes that seem to be related. Nov 6, 2017 at 15:30

It's my understanding that under normal operation spark advance is directly proportional to RPM, i.e. as RPM increases so does spark advance due to the need to ignite the AFM earlier the quicker the piston is moving.

Incorrect. It depends on the application. Your vehicle, which is old in terms of engine controls and technology, will tend to try and advance spark at idle and run a little lean for emissions purposes.

A new vehicle that has direct injection, variable valve timing (and possibly lift) will usually (not a rule of thumb, though) run less timing due to the fuel being injected at higher pressures.

In my many adventures tuning high performance turbocharged cars, the timing is black magic that varies from car to car. :)


This graph does not give enough to be definitive. Here is a theory. A lean cylinder causes the crank to slow down. This is the best explanation for the cyclic dip behavior of the rpm at idle. The lean cylinder also explains the slight upward jump in timing since the PCM responds to lean with an increase in timing. Lean mixtures burn slower and therefore must be ignited earlier to keep that cylinder at the maximum brake torque timing point.

  • What additional information would help reach a more definitive theory? Dec 22, 2015 at 10:27
  • @RobertS.Barnes Internal Combustion Engine Fundamentals by John B Heywood; chapter 9. To say definitively what is happening would require knowledge of the software code in the PCM. Dec 22, 2015 at 16:35

So a guy named Spence gave a great answer to this question over on the Autonerdz forum which fleshes out something I found in the book, Automotive Technology, A Systems Approach:

enter image description here

Basically, the PCM uses spark advance ( or retard ) to make adjusts to idle speed in order to try and hit it's target RPM at idle.

So from the example above if the actual RPM is 12.5 less than the target the PCM will add 3* of advance, or if the RPM is 12.5 more than the target it will retard the timing by 3*.

The underlying cause is a whole other question, which, like @FredWilson said, we don't have enough information to answer yet. I found another log from around that time which shows that the LTFT was hanging around about 1-2%, which makes me thing there wasn't any issue with an air leak.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .