The following is copied from a post made to our support forums. I'm archiving it here for reference in e-mail responses and such.
Since the last time I posted to this thread, I've dug *extensively* into the factory ignition logic in the ECU. It's still some convoluted code, but at least now I have a good understanding of it and why it is as it is. Mitsubishi went to GREAT lengths to ensure that the ignition firing event happened as precisely as it possibly could within the limits of the hardware.
One of those limits will surprise you, though. Did you know you're running a single coil distributor on your DSM? No? Well, surprise! You are.
At least as far as what you're getting in terms of coil control from the ECU. Brad is sharing some good details above related to the limits of the power transistor and the fact that dwell drops as engine speed increases. That drop is expected to some extent, of course. Increasing engine speed leaves less and less time to charge coils.
That's a simple limit that you'll just have to live with, but it gets a bit worse when you consider that you've got four cylinders and only two coils. So the amount of time you can spend charging a given coil per firing event is cut in half right there.
But Mitsubishi then cut it half *again* because (I assume) all this code was originally written for their distributor based cars and just never updated. Did I mention this was some complicated code? I doubt they wanted to risk touching it again and why bother since it was doing a more than adequate job for the task they had.
It's either that or they had to cut it in half again because of some design limitation in the power transistor. Certainly the way the power transistor drives the tach has a built-in limitation that would require this (only a single coil firing at once), but that seems simple enough to change. So I'm guessing there may be other limitations they were designing around.
It's been on our list to test out the effects of doubling the coil dwell time on factory coils at higher RPM and measuring the current through the power transistor for a while now. It's just not getting the attention we'd like.
For one, it's not as easy as it sounds to double the time in the ECU code. It's not just a “times 2” operation. Large chunks of this intermixed code make assumptions about there only being a single coil charging at any giving moment (timer interrupt logic and such).
So to change that assumption means a large rewrite of some very delicate code with tight timing requirements and I'm a little afraid to even touch it to be honest. There are *several* sections of this code, for example, that have specific op-code sequences timed based on how many microseconds that section of code is going to take to execute. Touching ANY of that means recalculating that time and painstakingly walking through the code to make sure nothing else gets thrown off.
So that's really the issue I guess. It's hard to get motivated about a project with so many unknowns. I don't know if we can really re-write that code properly (probably can, but I don't know). I don't know what the effect is going to be on the factory power transistor and, in fact, to even use the factory power transistor means you'll have to have some other hardware piece to drive the tach anyway. So using a COP setup with built-in transistors seems like a better choice and I don't know how many people are really interested in making that jump because I don't know what the real return is going to be, etc., etc.
There are just so many unknowns involved with this project that it's hard to get motivated to work on it.