Go Down

Topic: Arduino powered ECU for diesel engines (Read 10634 times) previous topic - next topic

synkooppi

I once bought an engine without original ECU unit at all. So i did have choice to find original ecu or bring own solution for that, and i did choose later option.

So here is it, running fine on test bench: http://www.youtube.com/watch?v=qj0S2_57EU4&feature=player_embedded

This engine (Audi 5cylinder TDI) has Bosch VP37 injection pump on it. I had to fully reverse engineer all controlling parameters for it.

Configuration can be done over USB real time (ANSI/VT102 text-mode user interface), there is also Debugging and Monitor software written in processing which includes meters display, data logging and of cource - terminal emulator for to connect the boards UI.

More information on my website: http://dmn.kuulalaakeri.org/dmn-edc/

Inprogress

This is....how do I put this....FREAKING AWESOME!!!!!!!!!!!!

Will read about it this weekend. Thank you for sharing.
"The really amazing thing is how many people are successful with their Arduino projects considering the fact that so many of them do not have a technical background.  A lot of them seem to try, and succeed with, projects that no sane engineer would even attempt." - floresta commenting on the proper use of LCD displays

Inprogress

How did you establish the fuel mixture map?
"The really amazing thing is how many people are successful with their Arduino projects considering the fact that so many of them do not have a technical background.  A lot of them seem to try, and succeed with, projects that no sane engineer would even attempt." - floresta commenting on the proper use of LCD displays

synkooppi

Injected fuel amounts was determined using by running engine with fixed amounts. This had to done carefully because too much injected fuel and engine with no load can cause runaway situation when engine rev's until something is broken ... But after i found good cold start values and idle values i was able to create first injected fuel = TPS vs. RPM table and the engine was starting good and idling quite good.

Intake air volume is not yet measured in any way, because diesels run unthrottled. But i plan to add map sensor and boost map when using turbochargers.


Inprogress

How long did the whole project take? And I ask with the assumption that you likely didn't work on it exclusively until this point.
"The really amazing thing is how many people are successful with their Arduino projects considering the fact that so many of them do not have a technical background.  A lot of them seem to try, and succeed with, projects that no sane engineer would even attempt." - floresta commenting on the proper use of LCD displays

cyclegadget


Absolutely impressive! Nice live data, live tuning feature!
Good links: Eagle tutorial= http://www.youtube.com/playlist?list=PLDE1858BD83D19C70
General Arduion tutorials = http://tronixstuff.wordpress.com
http://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123

synkooppi

I started it about half year ago, by testing injection pump control routines in my garage by winter time (It was around -20C outside, and not much warmer in garage..). I did initial engine runs on engine in spring in my workshop, and now during summer holidays i did bring entire engine bench on my pickup's stage to home where i have time test it more while watching kids ;-) So there is 2-3month "gaps" in development, but that's ok for a hobby project.

Real time maps & configuration editor is useful feature, i was very happy with it with my previous project, which was a VNT Turbo Control (VNT/VGT = Variable Geometry Turbo).

I wish to have enough spare time time even add support to more modern common rail diesels, THAT would be a killer feature :-)

april

I am struggling to understand this atm.
With the fuel injector pump , it pumps to each injector separately yes?
To rev the motor you turn the throttle lever normally and the pump puts out more fuel or a longer pulse of fuel yes?
So is this pump controllable ? Can the pulse be controlled otherwise than with a lever? You use a pot.
If the ECU controls it does it even have a lever then?
Perhaps you might just explain how it is working thanks

UnaClocker

Is this a common rail diesel? If that's the case, what are you firing the injectors with, hardware wise? I'd be interested to see the board you built to drive the injectors.
If it's not common rail, you're simply fine tuning the adjustments on a mechanical injection pump, which is cool in it's own right.
What are you using for an RPM input circuit?
Brian from Tacoma, WA
Arduino evangelist - since Dec, 2010.

synkooppi

It's a distributor type Bosch VP37 pump, with closed loop PWM controlled quantity adjuster (fuel amount) and closed loop PWM controlled injection timing. So there is no mechanical controls visible in the pump. It's a electonic version of classical fully mechanic Bosch VE pump. So the fuel is delivered mechanically to injectors, but injection parameters are set electronically. This pump is very common on older VW TDI cars, and many others ~1993-2000 cars too.

Bosch electric in-line pumps (found on some MB OM606 engines) does use same operating principle, and i think this software would handle them also.

RPM is read using stock sensor and simple LM1815 circuit.


april

I see ,then its a very nice job you have done !

johnft

Your system is an amazing accomplishment, something that has completely taken us by surprise.
Congratulations!
http://www.freetronics.com



pat-diesel

synkooppi,

What kind of resolution or precision in milliseconds do yo have on controlling the timing of each injection?
What kind of precision can you achieve in the injection quantity?

Do you have ideas to control a common rail injectors? In theory, do you think Arduino Mega is fast enough to process it?
It would very nice to control a modern common rail  engine such as OM642.

Go Up