Need some advice on how to read RPM signal from Pickup coil

Hi Guys,

I need some advice from you guys.

I want to make a digital tachometer for my motorcycle. After some research, for most modern bike, we can read the pulse signal from pickup coil instead of ignition coil.

From my understanding, the pickup coil will send (12v?) signal to CDI unit, then send signal to plug coil to fire at correct timing.

I found this (See image: Instrustable.jpg) on Instructables. As you can see he connect the wire from ignition coil > R1 > R2 and feed arduino nano.

So my question is..... Can I follow his method? Use resistors to pull down the voltage from 12v to 5v to feed arduino nano to read the pulse signal? is it safe?

I have drawn the schematic. see image "RPM.jpg".

Thanks in advance guys! :slight_smile:

Your "pickup coil" will always send an AC signal because of the magnet movement.

Paul

Hello Paul,

Since the pickup coil will send AC signal to CDI, so it will be 12VAC right? Will it affect the pulse signal if i use resistor / lm7805 to pull down the voltage?

Thanks!

From physics we know that a magnet (in the flywheel) moving past a coil will induce a current spike with one polarity and then a similar spike with the opposite polarity. The voltage is dependent upon the load, in this case, that presented by the CDI box and whatever your circuit does with it. There's no particular reason that it would be 12 V since it's independent of the bike's bus voltage.

This makes it difficult to give a general answer to the question on basic principles unless there is some standard practice in the industry as to what a CDI pulse looks like. If it were me, I'd look at the pulse with an oscilloscope and go from there, but this presupposes one has an oscilloscope. If there is a forum for your particular bike then perhaps someone there could give better guidance.

The ignition coil should have switch to ground on the primary side which would seem to be the more straightforward way to go about sensing RPM. Something like +12 V : 1k resistor : optoisolator LED diode : switched side of ignition coil in parallel with a flyback diode should do it.

What Mr. mark says.

As the magnet approaches the pickup coil, it generates a voltage, then as it recedes, the voltage inverts. The faster the magnet moves, the higher the voltage.

You really need to scope the output of the pickup coil to determine the parameters.

I would consider using a Zener diode and a current limiting resistor to produce a safe voltage for he Arduino, and possibly use the Analog Input instead of a GPIO.

Hello SteveMann and Mark,

I see...I found another schematic and he also using zener diode.

The schematic is a bit more elaborate than I would have designed. (And probably safer).

But, I see what they are doing. If you use 5V from the Arduino, you don't need the the 5V1 Zener across the output of the optocoupler.

hmm! ok cool! I will try his schematic and update this thread again! Thanks SteveMann!

MrMark:
Something like +12 V : 1k resistor : optoisolator LED diode : switched side of ignition coil in parallel with a flyback diode should do it.

I think you just explained exactly what I'm trying to do in a similar project. I have a few questions, sorry if they're overly simple

Is the +12V just coming from the battery or something, to pull the pin high when then coil is not grounded?

What are optoisolator and flyback diodes?

Would you mind drawing me a simple schematic? I would really appreciate it!

Hi,
The originator of this thread has inconveniently removed all his images that were attached.
So making this thread useless.

You would be better off starting your own thread and getting fresh ideas.

Tom.... :slight_smile:

smiles79:
I think you just explained exactly what I'm trying to do in a similar project. I have a few questions, sorry if they're overly simple

Is the +12V just coming from the battery or something, to pull the pin high when then coil is not grounded?

The +12 would be from the battery. Strictly from a circuit that is switched on when the engine is running, so as not to drain the battery when the vehicle is parked.

What are optoisolator and flyback diodes?

An optoisolator is an LED and a phototransistor in a single package. The idea is that the LED and phototransistor are not electrically connected so that voltage spikes, transients, and other such garbage on the automotive electrics side is not directly connected to the Arduino. Transients are generally present on automotive circuits and largely originate from the ignition coil.

A flyback diode is a diode that is normally reversed biased. It is used to protect other circuitry (the optoisolator LED in this instance) from a momentary reverse voltage spikes.

Would you mind drawing me a simple schematic? I would really appreciate it!

On the back of a literal envelope: