COP Ignition Development

You may have mentioned this, but it helps during cranking to delay the spark timing to TDC or even later. That way the cylinders don't fight the starter. I recall that Holley's Commander 950 does this. If the sensed crank speed is <500 rpm, the controller assumes the engine is cranking and delays the spark. Also, to get a stable idle speed, the spark table usually needs a "saddle" around idle. Otherwise, you can get surging where as rpm increases, it gives more advance which makes the engine run faster, ...

Bill I captured the sensor data and ignition events during cranking and confirmed the ignition timing is as desired by the spark tables. My cranking issues related to loosing strands on starter cables, and flooded engine.

The 950 Commander is likely a manifold ported MAP sensing. This system as tested is for 2D RPM and ported vacuum, cuts the vacuum advance component of timing because the ported vacuum is near zero, hence 0 contribution for advance. Your are correct in 3D manifold MAP systems the tables need to have less advance in the quadrant of low RPM, and low MAP, and in the axis of low MAP for all RPMs.

It is possible to do idle control with ignition timing, but it is helpful to have throttle closed sensing, and even speed sensing or brake on sensing. Sensing is necessary to know when to engage closed loop idle control. I use a combination of idle air control and temperature based timing control for idle speed control in my EMS2 system. I plan to add idle speed increase when A/C compressor is on, on my kitcar.