Diver300, thanks for the explanation, but did you swap L2 and L3 here:
Current flows through R5, L3 and R6 to turn on T2.
T2 puts a positive voltage on L2
I'm wondering if it would be more efficient with a square AC input on only one coil winding (eliminating L2). The circuit is built with simplicity, low cost, low part count, easily accessible parts in mind but I don't mind making it a bit more complex if it gives me any advantages. Also, I think it would be nice to only have 1 primary winding.
Regarding polarized capacitors, I can see your point, but somehow the author of this circuit made it work with electrolytic capacitors. I guess it would be best to avoid polarized capacitors for C7 and C3.
Regarding the voltage limiter on C6, again your are right, if the engine stops, the PIC will no longer give pulses to T1 and L1 will keep charging C6.
So how would you make the voltage limiter? If another oscillating circuit was used, the PIC could stop the oscillator if the engine stops and I guess this would solve the problem?
As jpanhalt says, this type of ignition is widely used in models which is what I would use it for (Zenoah G260RC 2-stroke 1-cylinder gasoline engine).
Regarding the CDI method by discharging a capacitor into the coil generates the spark, this should save energy as there is no need for sending a large current into a low resistance coil. But I can see the advantage of letting the collapse of the magnetic field in the spark coil, generate the spark. But the CDI should work fine for model hobby purposes. Perhaps there is an issue about the high RPM for a model engine (20.000 RPM) that makes the CDI more useful compared to the low resistance coil method.