Electronics > Projects, Designs, and Technical Stuff

Ign timing project

(1/2) > >>

Russell:
Hi Guys, this is my first post, just want to say. great forum. I am learning all the time.

Now my question to all you clever people.

I would like to build a device where i can see in real time what the ignition timing value is on a 4 cyl engine.

I know i would need to measure crankshaft position as a reference and then also read an input as ignition occurs.

this way i don't need a timing light. i would like to display the timing on a simple 7 segment display.

what I don't understand is how the calculation is done?

can anyone explain how this can be achieved using maybe a pic or arduino board possibly.

Regards
Russell

jeroen74:
Compute speed of the engine with the crankshaft reference signal, then with this number you can compute the number of degrees from the time difference between the mark and ignition pulse.

Is just for one type of engine or an universal device? It might not be easy to get a TDC reference signal out of the engine, most designs use a 36-1 toothed wheel, but there are other versions out there too. You could devise some auto-detection algorithm for this.

And there's the advantage of the timing light, it's nearly completely universal :)

Russell:

This design will be fitted to one engine, and yes the crankshaft has a 60-2 wheel. i could use that.
I was thinking of fitting a reference pickup on the crank to detect TDC
and then calculate from that.

I have a good understanding of the sensing involved, What i need help on is the math or algorithm involved in calculating the timing angle?

Thank you.

jeroen74:
Say your engine is running at 3000 rpm. That means 3000/60=50Hz or one revolution takes 1/50=20 ms. One degree is then 20ms/360=0.0555...ms or 55us.

So, if you measure, for example 350 us between ignition and reference, that's 350/55=6.3 degrees at 3000rpm.

So basically you need to measure rpm, calculate from that the amount of time for each crankshaft degree. Divide the measured time by this number and you have degrees.

mc:
Does the engine have a diagnostic socket?
If so, could you not just pull the information from that?