Derive a tachometer signal from magneto

You're right there are no points or electronic module on the Kohler 18HP or any engines around this mid-size. Bigger 22-25HP engines have an ignition advance module. I'm used to small B&S, Lawnboys, motorcycles having points or more.
This means the kill-switch winding is low voltage, don't know how much comes off it. A scope waveform is best or experimenting.
I would try a two transistor tach circuit on the magneto, and set the sensitivity resistor until it works even at low cranking speeds.
Or the 555 timer version also would work OK.
edit: good chance the Kohler "ignition module" that looks like a coil, could have electronics inside for breakerless ignition.
 
Last edited:

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
Thanks @prairiemystic you gave me the confidence to go poking around finally. I was a bit worried about destroying meters and such actually.

My Fluke 115 on A/C shows around 6 volts at idle and between 18 and 19 volts at full speed. Would I be correct to assume this is a low reading due to the actual spacing of the spikes?

I did remember I do have one of those cheap pocket scopes laying around. I connected it and tried to get something, but didn't have much luck. Will have to try again. Either I couldn't get a good connection or who knows what.

I looked at a few two transistor type circuits, but will have to do a bit more research to understand what is happening. Since this seems to be a low voltage signal would it be possible to use a VR circuit to make it work? I have a spare ignition module laying around that would be easy to use.
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
I also found out while tinkering there isn't points or anything on these engines as several people have mentioned. I could swear 40 years ago when I was tearing apart things I shouldn't be there were points under the flywheel. Assumed it would still be the same today.
 

debe

Joined Sep 21, 2010
1,389
These area all wave forms from different solid state magnetos ( no points or condencer) They will drive a conventional ignition driven Tacho. Electronic Magnetos have been common for years now. They use Transistors not SCR. SCRs are used in CDI type ignitions.ATOM MOD. x10 vert.JPGKAWASAKI MOD.x10 vert.JPGNOVA MODULE.JPGVICTA MODULE.JPG
 
Last edited:

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
Thanks for the screen shots!! It looks not as straightforward as I hoped it would be.

If I understand the schematic right as the magnet moves past Q1 starts conducting until the base charge of Q2 is enough to turn on and pull the base of Q1 low opening the circuit and creating spark. You would connect your tach to the top right corner.

It looks like there's still going to be some filtering involved which is where I know extremely little.
 
debe, thanks for the waveforms. I'm puzzled why they are all -ve (spark) pulses? The Atom modules have a reverse-diode. Or is it the scope being AC coupled?
I was trying to see if we need +ve or -ve trigger, before posting a circuit.
 

debe

Joined Sep 21, 2010
1,389
Not all ignitions are negative pulse (just the ones I have shown. With external mounted modules, if theres no spark you reverse the polarity of the module (it depends on the coil & magnets as to what the polarity will be). On coils with the module built in the manufacturer has already worked out the polarity before construction. The CRO I use is a cheap $30 which you can freeze the display, I find very usefull for this type of work.
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
I tinkered a bit more and managed to get some shots of different wave forms with my pocket scope. Keep in mind it is seriously out of calibration since I've never bothered to learn how to do it. I picked it up mostly to view waves instead of doing actual measurements. I measured the battery voltage with it for an idea... the scope shows 13.8 Volts while my meter measures 12.9 Volts.

magneto-kill.jpg

Above is off the magneto kill switch wire. The scope is supposed to be limited to 40V so a 90V peak to peak is not right.

spark-plug.jpg

Above is a piece of wire wrapped around the spark plug wire. I can't wrap wire around the coil as I was wanting to try due to coil design and mounting. I did find there is a section of plug wire that is mounted up good and should be free of excess vibration. Could it just wrap enough turns to turn on a NPN transistor at the large spike and call it good?
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
Tried another test with the wire wrapped spark plug wire and caught a better view. RPM doesn't have any effect on the wave. I hate to say this looks the easiest to me. Thanks all who have commented!!

spark-plug-2.jpg
 

debe

Joined Sep 21, 2010
1,389
Multi strand insulated copper wire is fine wraped around the plug wire for tacho pickup pulses. I use several Tinytac units that use the wraped wire pick up on plug lead, for RPM & engine run hours on generators.. Works on point & solid state systems.
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
Somehow last night at work I remembered the AC coupling concept I've read about before. I did a little poking around online this morning and came up with an idea.

From the magneto kill wire I have a 10uF capacitor in series with a 1N4148 diode that is feeding a 10k and 510 ohm voltage divider.
The output of the voltage divider is tied to the base of a 2N3904 transistor that is switching on and off a LED.

circuit1.jpg

The yellow line is the cathode of the LED while the light blue line is at the voltage divider. It kind of cuts out at idle so I have a little more playing around to do, but it remains constant otherwise through the full RPM range.

I am a bit concerned about how much of a load I could put on this particular wire and not alter timing characteristics of the magneto itself. I'll have to do some work with that next.

Edit -- I don't think the circuit I described is an actual AC coupling circuit, but it has moved me a little closer...
 
Last edited:
You don't want to load the magneto kill winding too much, and I design for even 500V pulses there.
I use 100k ohm 1/2W or two 47k 1/4W in series to the transistor. I would not use the 1N4148 in series because it's a low voltage part and can get damaged due to the -ve voltage spike. 1N4007 is not suitable because it is too slow. Instead put the 1N4148 across the E-B junction.

You still need a one-shot after the pickup circuit to stretch the pulse long enough to be useful.
This are my ideas of a circuit, using a 555 timer or extra transistor one-shot.
tach_pickup circuit prairiemystic01.JPGtach_pickup circuit prairiemystic02.JPG
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
Thanks again @prairiemystic!! I was thinking instead of the 555 I could make up a set / reset type logic that the PIC would reset in the interrupt routine. That idea has been floating around for a bit using one part of an OR logic chip in the parts box.

I'll have to find a capacitor to get it going. Seeing your circuit in this context along with a little more reading has helped me understand what it actually going on.

I'll be back with hopefully a success story soon!
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
Just in case anyone is interested... I finally made my way back to this project.
I learned a few things along the way, found a couple different ways that would have worked, but in the end decided to go a different route.

A couple bolts, a few welds, and some wire and I ended up here.
pickup1.jpg


A couple pieces of heat shrink and some tape later it was ready to mount up.
pickup2.jpg


After some testing I found it creates a beautiful wave that now feeds a MAX9925 and gives me a square wave. The only problem is I'm only getting a 20 Hz signal at idle and around 40 Hz at full throttle. The one good thing though is it is consistent and repeatable so it will work good enough for it's purpose. The bottom is the output of the MAX9925 and a little filtering in software will make it work.
wave.jpg

Any ideas as to the low frequency? The bolt itself is a 7/16 grade 5 type with only the 2" section without threads left to it. The wire is 28 gauge solid copper out of some cat 5 cable.
 
I think you are seeing the problem (challenge?) of picking off a signal from the flywheel magnets or the coil. A -ve blip, a +ve blip, a -ve blip due to the magnetic field alternating twice. Not a typical VR sensor signal. Any circuit will trigger more than once on a single revolution, and give multiple pulses per event.
You need to have a monostable after the pulse detection, to "debounce" or filter out the extra blip (or ringing with a coil/kill wire signal). Like I posted in #34.
Your firmware can also debounce the signal, after a falling edge wait ~10msec before looking for the next pulse. Have to do the math on the RPM ranges expected.
 

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
The debouncing part is being done in software and works as it should. The interrupt triggers on the first rising edge, disables the interrupt temporarily, starts a timer, and after the timer expires the interrupt is enabled again. I had a screen shot of a logic analyzer picking up signals on a couple spare pins that toggle at different points in the various interrupts, but decided to leave it out.

I did find with over 200k or so ohms on the kill wire it would only show positive voltages and had a few voltage divider / diode combinations that worked. The combination that worked the best ended up sinking around 200 volts through a zenner and after doing the math I got a little worried. It gave a nice long 4 volt pulse, but if I calculated everything right and interpreted the datasheet right it was pushing the limits of the diode.

Why don't you wrap the wire around the spark lead, try using a Ferrite rod instead of an iron bolt.
The wrapping of wire around the spark lead was too easy... I had to make it more complicated (it's my nature). I'll probably end up going back to it, but wanted to try this out.

I have a lot to learn yet... I did find out in the end I really won't need to do what I started out to do in the first place. I run out of water before the battery gets drawn too low. If anything I need to add a pressure sensor to kill power to the pump. I do plan to at least get a working tachometer signal just to see the question through to the end. Thanks again all!!
 
Last edited:

Thread Starter

geekoftheweek

Joined Oct 6, 2013
1,201
I spent a few hours one last time experimenting. It seems no matter what I do I end up with a 20 - 40 Hz signal. Either my pocket scope isn't picking things up, or I have a serious ignition problem to figure out. The engine runs good other than needing a bit of a tune up so I'm not sure what to think other than checking and cleaning grounds. The scope and the logic analyzer (ebay USB type) were in agreement when I had it all hooked up yesterday so who knows. The numbers are still consistent and repeatable though so I at least have that going.

I played with the magneto kill wire a bit more and came up with this...

mag-to-pic.jpg

I played with the resistors on the magneto side and found it doesn't make a difference what I put there other then changing the voltage and a little different overall wave pattern. I kept the 500 volt design specification in mind that prairiemystic suggested. It seems to actually spike around 300 volts from my math, but there's no guarantee I'm seeing the whole story on the scope. The 1M is actually two 510K 1/4 watt to spread things out although a single 1M didn't even seem to get warm.

On the PIC side of the capacitor I have around 1.9 Volts as a "zero " and will rework the program to use a comparator of the PIC with the fixed voltage reference module set at 2.048 for the reference voltage. The scope shows around a 1 volt peak to peak and a fairly straight rising edge so it should work out in the end other than maybe tweaking the resistors a little. The pulse length should be plenty long enough to trigger an interrupt (at least four instruction cycles with the values listed). I did notice lower resistances on the PIC side made a more gradual return to "zero", but need to test if it will give false interrupts... I can only stretch the timers so far before signals start overlapping at high RPMs or making the program more complicated than it needs to be.

I tried wrapping the plug wire again and this time my scope didn't seem to want to cooperate. I tried both plugs so maybe the scope is having issues.

Although it's not perfect it's as good as it will get with the time, tools, parts, and motivation I have on hand for the project. A little bit of math and it will probably give a fairly accurate scaled RPM in the end.

I still have to try prairiemystic's circuit and have the parts in my cart on digikey for the next time I put an order together.

Now on to the control circuits...
 
Top