RE: New CDI - opensource project JMJ and Bigboat
I usually use AVR microcontrollers for such projects, so I use AVR studio with WinAVR. I currently don't have tools for the PIC microcontrollers, but that doesn't have to be a problem. Which compiler I use also isn't really relevant, since porting between compilers is generally fairly easy. Only the syntax for interrupt handlers and tables in flash memory is different, but that is very easy to fix. It's not something I worry about at this stage.
But the conclusion is that when starting, we don't need any complicated spark timing; just generate the spark as soon as the sensor input goes low. When the engine is running, it is fairy easy to get accurate speed measurements, and get the timing right.