2 stroke tachometer from ignition coil

Hello,

I have been looking for a way to get the RPM from a 2 stroke engine.

I am not sure what is the best option so far I found out two ways:

https://forum.arduino.cc/index.php?topic=503027.0 http://www.edaboard.com/thread151165.html

or this one

https://forum.arduino.cc/index.php?topic=618864.15 |500x164

The opto-coupler sounded like a good idea but I am not sure if I can connect it to my engine.

I am using this kind of ignition coil: |500x500

I was thinking first to try to get a square like signal from the oscilloscope then after try to work out the code on the arduino.

I could not find a clear example for a 2 stroke engine.

Thanks, /Eric

Must be more than just a magneto. How do you stop the engine? Let it run out of gas?

Paul

Paul_KD7HB: Must be more than just a magneto. How do you stop the engine? Let it run out of gas?

Paul

I'd say offhand the spade terminal goes to a kill switch, that's how most magnetos do their stuff.

Op could use a simple capacitive pickup as described in the video below. You will also find he has Arduinodyno with a tacho.

https://www.youtube.com/watch?v=49eNBQxlop4

I don't see a terminal in the OP's picture. Only the spark plug socket.

IF there is a kill switch, then that lead will likely have a nice pulse you can use for a tach. Check it out.

Paul

Yes I have a kill switch I will check if I can get the signal from there.

I will order the opto- coupler and give it a try.

Thanks,

Hi,

I did my first test on a 2 stroke Grass Trimmer Cutter

I used that schema:

Here is the live result
First Test video

The rpm reading is way off.

I check the Grass Trimmer Cutter manual .
Idle RPM 2800-3200
Max RPM 10000

Here is my code

#include <SoftwareSerial.h>

SoftwareSerial BTserial(6, 7); // RX | TX
float value=0;
float rev=0;
int rpm;
int oldtime=0;
int time;

void isr()
{
rev++;
}

void setup()
{
  //Initialize Serial Monitor
  Serial.begin(9600);
  digitalWrite(2, HIGH);
  //Initialize Bluetooth Serial Port
  BTserial.begin(9600); 
  attachInterrupt(0,isr,RISING);
}
void loop()
{
delay(1000);
detachInterrupt(0);
time=millis()-oldtime;
rpm=(rev/time)*60000;
oldtime=millis();
rev=0;

Serial.println(rpm);
BTserial.print(rpm);
BTserial.print(";");
attachInterrupt(0,isr,RISING);
}

I will check with an oscilloscope how the signal looks like after the optocoupler.
Any suggestion ?

Thanks,
/Eric

How are you connected to the coil to get the tach signal?

You might consider winding a wire around the coil wire as a tap, to get the signal then send it through a signal processing circuit to clean it up before trying to count pulses.

Idahowalker:
How are you connected to the coil to get the tach signal?

You might consider winding a wire around the coil wire as a tap, to get the signal then send it through a signal processing circuit to clean it up before trying to count pulses.

I have using the kill switch to get the signal not the coil wire.
I read somewhere that you can get cleaner signal.

/Eric

Did you look at the video link i posted above as he has some good pickup ideas already tried and tested.

bluejets: Did you look at the video link i posted above as he has some good pickup ideas already tried and tested.

Nope but I will try next. For me getting the signal from the kill switch would be better as my paramotor have them but it is good to experiment all possibilities.

Here is a picture of my setup:

barnabefi: kill switch would be better as my paramotor have them

Hope you are not thinking of "tinkering" with that one...

bluejets: Hope you are not thinking of "tinkering" with that one...

I just want to get RPM for it,nothing more.

I run some the oscilloscope at the end of the filtering circuit and it is just garbage signal...

The pulse are completely uneven...

Oscilloscope test

Next test is to check on the real engine ( 185 moster ) to see if I get similar result.

But I will build the circuit you have suggested and give it a try.

Hello. I am trying to do the same, also for a Monster185 engine. Did you found a circuit that solve the signal issues? I tried one, but the measured rpm is.... awfull! Regards, Patricio

patricioruiz: Hello. I am trying to do the same, also for a Monster185 engine. Did you found a circuit that solve the signal issues? I tried one, but the measured rpm is.... awfull! Regards, Patricio

There's a link in reply 2 above......... :fearful:

Hi,

I got a bit lost in trying to use a pca10059 board.
I just got back to the basic last week.

I am now trying this method:

kokoraskostas

and if that does not work I will try BlueJets suggestion.

ArDyno

bluejets:
There’s a link in reply 2 above… :fearful:

I will let you know the outcome once I try this solution.
Here is my latest prototype with bluetooth connection.

Please share your findings with the Monster185 as I really would like to get that working :).