Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need a way to slow/vary the signal to a coil so as to retard the ignition on my Moto Guzzi motorcycle. I'm wondering if this can be achieved by delaying the signal created by the points/electronic ignition to the coil, can this be done? The reason for this is I only want to adjust firing of 1 cylinder as manual adjustment not possible (RH cyl)

Can this be done easily?

share|improve this question
Why not fix whatever problem makes it necessary to change the timing of that cylinder? Compression problem? Spark plug? Injector? Does the motorcycle have a rotating distributor with mechanical contacts, or is it all electronic? – Kaz Jan 15 '13 at 23:12
Do you have separate coils per cylinder? – Andy aka May 16 '13 at 8:28

That sounds like a highly dubious thing to want to do to an engine in the first place - I'd question what your reason is for needing to do that before anything else.

If you must do it, you will really need a microcontroller to change the delay based on RPM as it's the angle of advance/retard that's important to the engine running.

Easiest option would be to use something existing, like MegaJolt (open-source, cheap, documented, hard work done for you).

share|improve this answer

Yes, it can be done.

Electronic ignitions have been around for a long time. You could insert a circuit between the points and the ignition coil that delayed the opening of the switch that controls the primary of the ignition coil. Note that it is the opening of the switch that causes the spark, not the closing. You can think of the switch (originally the points in old mechanical systems) closing as applying power to the coil to "charge it up", then the opening causes the accumulated energy to be released out the high voltage lead.

I'd probably use a microcontroller to do the variable delay. To get a rough idea of the resolution needed, let's go thru some numbers. Let's pick 6000 RPM as the fastest engine speed, which is 100 Hz rotation rate. That means a full rotation takes 10 ms, and 1 degree of rotation takes 28 µs. From all that you can decide that 10 µs resolution for the delay should be adequate. A dsPIC 33F can execute 400 instructions during that time, so this is well within the doable range.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.