Good info, thanks for posting.

Quote Originally Posted by kur4o View Post
... since it is dot welded to the base on my unit.
That's unfortunate. I hope you can get it off without destroying it. Speaking from experience it's very difficult to get whatever stainless alloy they used for these to relax once it's been wrinkled even slightly.

Quote Originally Posted by kur4o View Post
So the dtr is used only for firmware updates, For normal use can I leave it disconnected.
Correct - the DTR line is used to pull the AVR's reset pin low so the programming utility (avrdude) can access the bootloader to upload to the flash.

Quote Originally Posted by kur4o View Post
Why not use the high voltage side to ground a pin on #1 to the avr.
I'm not sure how you're going to get a clean signal from the rotor to one of the cap electrodes - isn't there an air gap between them? Or were you thinking of rigging a hall effect sensor in there?

Quote Originally Posted by kur4o View Post
Time based is freaking hard to imagine and a feat to get it done
I've been bouncing ideas around on how to accomplish time based dwell. I never said it was impossible. It may not even be particularly difficult, I just haven't had the proverbial light bulb come on with an elegant method to implement multiplexing one timer that handles all 8 coils, tracks spark advance (as well as ATDC spark timing), and overlap. The high res timer I'm currently using is just a simple counter timer that runs at a pre-determined divisor of the system clock - 1/64th of 16mhz at the moment. This timer uses a capture interrupt tied to the low res input for a trigger to measure engine speed between the TDC edge signals. There are also two compare registers available with interrupts that can be used with this timer, for instance to initiate dwell. But I'm trying to keep the ideas for this on the far back burner at the moment because I don't want to get too distracted.

I'm currently working on building out the dwell table logic, and I want to get this milestone figured out before moving on. I think the dwell tables will store desired time in a single byte, 0-255. A fixed scalar of 0.048828125 will convert the desired dwell from milliseconds to the raw table value. This gives a maximum of 12.5 ms dwell before MAP and RPM multipliers. I think this will be adequate for all real-world scenarios for all the coils I've tested.