Arduino Uno wasted spark ignition control and RPM display with hall effect sensors

I'm building a miniature inline-6 (21.7cc) from scratch and I know how I want to control the ignition (3 hall effect sensors around the crank with one magnet on the crank, arduino fires the coils based on sensor input), but I don't know where to start with the programming. When firing the coils, I feel it would be best if the mosfets were turned on for only a few milliseconds, but I'm struggling to understand how the "blink without delay" program works.

I would also like to add in automatic ignition advance depending on RPM, as this small engine won't really see much load, and I can add throttle position sensors later (using a carburetor).

For the RPM display I would like to use a 4*7 segment display, because I don't plan to go past 8K rpm. I would also like to implement 2-step, at the press of a button, in addition to a rev limiter.

Is this possible with an Uno, or should I switch to a Mega?

please confirm your engine is a 2-cycle with ports rather than valves? Describe the actual ignition system and all the components, please.

It's a 4 stroke engine, I'm using a ford ranger wasted spark coil. It has 4 pins, one is for power, and the other 3 are connected to ground to fire the coils individually.
41Tzw6FYGyS.AC

I want to use 3 hall effect sensors (A3144) positioned radially around the crank, and use a magnet attached to the crank to trigger the sensors.

For the mosfets I want to use some RFP30N06LE NPNs I have laying around. They're rated for 30 amps and 60 volts.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.