CDI help / electronic ignition for engines

I have a Arduino omaga and I'd love to setup a CDI system for ether 1, 2, or 4 cylinder I have. I have no experience programming and just got the Omega. I'm not to sure what I need for inputs/outputs or driver components that I need to drive the coils. I do have some experience with soldering and simple circuits but this is up there in the more complex projects I've done. Any help will be greatly appreciated!

Wow, ambitious.

Just to be clear, you want to build an engine management system for a diesel engine? I think that you need to be a lot more specific as to the nature of the engine. A very very very large engine turns over @ 100 rpm so this is possible with a crank position sensor, relay board and some sort of look up table routine for the firing positions. Quite a bit of clever programming though. That's why annoying yobs go to the garage across the road to have their EMU tables reprogrammed.

On a small side point, this isn't a car is it? It would probably be illegal in most jurisdictions under emissions legislation. You can't reasonably expect to replace a Bosch EMU with a self programmed Arduino.

On the face of it, seems possible. More details of the engine though and it's expected operating environment please...

cossoft:
Wow, ambitious.

Just to be clear, you want to build an engine management system for a diesel engine? I think that you need to be a lot more specific as to the nature of the engine. A very very very large engine turns over @ 100 rpm so this is possible with a crank position sensor, relay board and some sort of look up table routine for the firing positions. Quite a bit of clever programming though. That's why annoying yobs go to the garage across the road to have their EMU tables reprogrammed.

On a small side point, this isn't a car is it? It would probably be illegal in most jurisdictions under emissions legislation. You can't reasonably expect to replace a Bosch EMU with a self programmed Arduino.

On the face of it, seems possible. More details of the engine though and it's expected operating environment please...

I have a single cylinder 50cc 4 stroke, a 2 cylinder vtwin (25hp), and a 750cc sports bike engine that I'm rebuilding for a go kart. All gasoline. I want to incorporate advancing and retardeding timing with corresponding rpm ranges. All the engines are driven by a magneto and if like to set a rev limit on some the engines. I just want to mess around with it and have fun with it

Sorry, I took CDI for common rail diesel injection. I wish the manufacturers would adopt a common set of acronyms.

What's the rev limit on the 50? That's the one to start with. And what's running it's plug? A schematic might be useful too for all the sensors /actuators. Sounds like fun to me too.

cossoft:
Sorry, I took CDI for common rail diesel injection. I wish the manufacturers would adopt a common set of acronyms.

What's the rev limit on the 50? That's the one to start with. And what's running it's plug? A schematic might be useful too for all the sensors /actuators. Sounds like fun to me too.

For real haha :stuck_out_tongue: um the 50cc was given to me so I don't know much about it. I'd say ~5k rpm. It's a normal magneto (magnet in the flywheel with a coil mounted close to it) I already have a TPS sensor and coil pack. I need to find out how to make a driver board for the coil along with the trigger for the Omega to read

I'm guessing the 50cc pocket rocket is already CDI. Reason being, I use the modules from them these days rather than building my own as I did in the past for miniature 4 stroke engines. At $7 on Ebay, hard to beat.

Well then, that's:-

1 deg. inĀ  33us @ 5000rpm
1 deg. in 222us @ 750rpm

So you need to adjust firing at a resolution of 33us to go +/- 1 degree. At a processing speed of 16 or 8 million ops /s this should be achievable. I think that technically the project is viable. However there is no way that you'll be able to design the exact timings on paper. There will be too many unknown delays and latencies in the control loop. You will have to be refine them experimentally whilst at the same time trying to not damage the engine (too much).

Some things that you'll have to supply for us /consider as it's a lot of work:-
A schematic of the whole system including all the sensors (eg. crank position)
What's the degrees vs rpm curve you want?
What is the specification for the output from the TPS?
What is the specification for triggering the ignition coil?
How do you intend to program the Arduino if you can't program?
What is your level of electronics skill, eg. do you know what a MOSFET driver or Hall effect sensor is?
You will need to make circuit boards. You can't just solder some resistors together.
You might get the engine to turn over with the components usually discussed on this site, but to race they will have to be ruggedized . You can't simply hot glue a toy sensor onto a crank shaft.

Remember most people here won't know how a car works but do know electronics and programming. I hate the whole health & stupidity movement, but professionally I have to ask you to think about:-

What happens if you fire with the engine stopped and the crank at top dead centre? Does the engine explode?
What are the implications of a total or partial failure whilst on circuit @ 75 mph?

Don't let all this crap put you off, but you are dealing with a human being driving a vehicle filled with petrol (that's it's proper name :slight_smile: ) using a module that's designed for turning desk lights on and off. It'll be a long haul.

If you're getting 25HP out of a 50cc engine it'll be running a lot more than 5krpm - that's 500HP/litre and even turbocharged F1 engines only acheive that at approaching 14,000 rpm with inlet pressures of 4 atmospheres or more.

A friend of mine is a very successful kart racer, and his normally aspirated 250cc 2-stroke delivers 68HP at 10,000 rpm and it often blows up.

My chainsaw - a Husqvarna - is 40cc and only gives 2.7 HP at 7000 rpm.

Is your engine for sale?

Allan.

cossoft:
Well then, that's:-

1 deg. in  33us @ 5000rpm

1 deg. in 222us @ 750rpm




So you need to adjust firing at a resolution of 33us to go +/- 1 degree. At a processing speed of 16 or 8 million ops /s this should be achievable. I think that technically the project is viable. However there is no way that you'll be able to design the exact timings on paper. There will be too many unknown delays and latencies in the control loop. You will have to be refine them experimentally whilst at the same time trying to not damage the engine (too much).

Some things that you'll have to supply for us /consider as it's a lot of work:-
A schematic of the whole system including all the sensors (eg. crank position)
What's the degrees vs rpm curve you want?
What is the specification for the output from the TPS?
What is the specification for triggering the ignition coil?
How do you intend to program the Arduino if you can't program?
What is your level of electronics skill, eg. do you know what a MOSFET driver or Hall effect sensor is?
You will need to make circuit boards. You can't just solder some resistors together.
You might get the engine to turn over with the components usually discussed on this site, but to race they will have to be ruggedized . You can't simply hot glue a toy sensor onto a crank shaft.

Remember most people here won't know how a car works but do know electronics and programming. I hate the whole health & stupidity movement, but professionally I have to ask you to think about:-

What happens if you fire with the engine stopped and the crank at top dead centre? **Does the engine explode?**
What are the implications of a **total or partial failure whilst on circuit @ 75 mph?**

Don't let all this crap put you off, but you are dealing with a human being driving a vehicle filled with petrol (that's it's proper name :) ) using a module that's designed for turning desk lights on and off. It'll be a long haul.

Lots to take in here, if there's a way for us to talk a little easier, ie a chatting app or something where we can talk a little faster would probably help a ton. I do know quite a bit about the basics electronic components, just don't know how to drive / active them. I plan on getting / learning a ton while doing this so it might take longer then popping a few components onto a board and tada. I'd like to know what's going on and all that

allanhurst:
If you're getting 25HP out of a 50cc engine it'll be running a lot more than 5krpm - that's 500HP/litre and even turbocharged F1 engines only just acheive that at approaching 14,000 rpm with inlet pressures of 4 atmospheres or more.

A friend of mine is a very successful kart racer, and his normally aspirated 250cc 2-stroke delivers 68HP at 10,000 rpm and it often blows up.

My chainsaw - a Husqvarna - is 40cc and only gives 2.7 HP at 7000 rpm.

Is your engine for sale?

Allan.

Haha I got a 50cc 4 stroke (2.5 hp), a vtwin that's 800 something cc that's 25hp, and a 4 cylinder 750cc sports bike engine that makes 92hp @ 10500rpm