Starting a lawn mower engine with arduino UNO

Hello, so i am doing this project where i need to start a lawn mower engine with hydrogen. I already have a hall effect sensor attached to the engine(one magnet at TDC and one magnet at BDC) where i will switch between the ignition and injection using the hall effect sensors. I have managed to code the arduino so that it will only read the odd numbers of magnet as the shaft rotates, i.e 1,3,5,7,9...etc. where 1 is going to be injection output, 3 ignition output, 7 injection output, 9 ignition output and so on..

The problem is, there's no way of telling that which magnet will go first. it could either be the magnet at BDC that will go first and ideally will going to start the injection process at BDC which isn't correct. One way i can think of is that i need to manually turn the shaft to its correct location and start the again as usual which is not very practical.

And also, the speed of the crank rotation when starting the engine is not going to be the same as after starting the engine right? So, there's problem with the injection and ignition timing too.

Thanks in advance! :o

The first thought that occurs to me is that you need a 3rd magnet perhaps close to one of the first two so that the Arduino an identify the orientation of the crankshaft,

Whether, and to what extent the timing should change as the engine speed changes is not a programming problem.


putting another magnet would entirely messed up my code wouldn’t it? Because what i did was i filtered out the odd numbers of magnet passes trough the sensors. By adding more magnets, the pulse count as the magnet passes through the sensors increased.

You are aware that petrol engines need adapting (hardening) to run on hydrogen as the forces are larger (faster combustion)? I would be worried that a lawnmower engine is not up to the task and at risk of damage.

Getting the engines to run for at least a minute would be sufficient enough for my project.

The third magnet would let you see the odd-one-out which would be the gap. Often engines use many more poles on the crank sensor, like 100, and there's a gap at one point (which is not TDC because that's one you need.)

Then the Arduino would have to see at least one complete crank cycle to identify the position before enabling the spark. That's why normal engines don't start on the first or second cylinder but need to crank a little before the ECU can adequately find the position.

amirulzhri: putting another magnet would entirely messed up my code wouldn't it?

I had assumed you would adapt the code to take account of it.


Why hydrogen? It’s expensive , very easy to ignite ( static) and highly explosive over a wide range of fuel/air mixtures.

Or do you have a secret infinite supply?


Or do you have a secret infinite supply?

Check out all the internet videos for HHO gas!

Here is a great idea: use the lawnmower to run a generator, which produces HHO gas to run the lawnmower.

Excess power thusly produced could of course be used to light and heat your home.


In Victorian times Mrs Beeton said in her recipe for jugged hare..

'first catch your hare' .

Mr Carnot figured this out a long time ago. Not to mention Black, Maxwell, Clausius, Clapeyron etc etc

Thermodynamics has been pretty well understood since the mid - 1800's.

And can be simply summed up in the well known phrase

'there's no such thing as a free lunch'

Or, as another esteemed contributor here (forget who) said..

It's like going to the bookies. Long term ..

1/ You can't win 2/ you can't even break even 3/ You aways lose.

That's the way the universe works.


allanhurst: It's like going to the bookies. Long term ..

1/ You can't win 2/ you can't even break even 3/ You aways lose.

Except that some people (very few) do make a comfortable living from gambling (and are usually banned by the bookies). Winning at gambling is not theoretically impossible.

Unlike perpetual motion.

Maybe the OP is trying to revive the EQHHP project.


2 stroke or 4 stroke?
Single Cylinder?

If 4 stroke you need sensor on the camshaft to sync with the compression/firing cycle of the cylinder as against the exhaust/inlet cycle.

Tom… :slight_smile: