So my project will be Building a Fuel Injected Buggy. I have Buggy with a Honda trx300ex Engine in it. My plan is going to Convert it to EFI just for fun and a Accomplishment, I'm going to build it basically so I can Turbo charge it and make other Custom tunes etc using the Arduino Uno R3 to control Fuel Management.
So I already have an Oxygen Sensor, Map Sensor, Throttle Position Sensor and I will use a cheap Cam Position Sensor from an Auto Part Store to time the Fuel Injector on when to Fire at the Correct time using the Intake Cam Lobe... I know how to wire everything etc I have it all planned out. But My question is. How would I tune or even "get started" with the Arduino to make an "ECU" I guess I can say. Obviously yes with my Computer but Will there be a Special code that I can Download to Program the Arduio for the first time ever so I can at least get the Engine Started up and running and then I can start making my Adjustments? What all will I need to do to Program it for the first time.
Thanks guys I know I'll probably get allot of Criticism saying I don't know what I am doing and I shouldn't even try to do this or what ever etc, but this is more less for FUN just a fun little Project and With some Help I can make it work possibly. If not them it's was only a very small bit of money wasted not a big deal. So please do not tell my I should I would like some help on how to do all this. I would appreciate it a bunch if any one else is interested in my Project. Thanks.
This sounds like a rewarding project but also a dangerous one. My first question is do you have any experience with programing? I dont know anything about using arduino for fuel injection but Im sure you should have a good understanding of engineering, mechanics, and programming if you are attempting to combine these for a fuel combustion motor. Also I support attempting this endeavor as it will be a great feat to overcome but dont expect it to happen any time soon if you dont have the background in these areas. All of them have a large learning curve to get over and you might need to learn on some smaller projects to lead your way into this one.
When you say special code I think of libraries. Libraries are fantastic. They are collections of code that make it easier to do complex computing. You will have to figure out what it is that you need to compute and then search for libraries that will help you accomplish this. There is no special code that takes care of your application though. You will have to find code that helps you with the code you will write.
The Arduino family can be used as a controller for an EMS/ECU but it is going to be challenging. You will also need to put together additional circuits for interfacing to sensors, and output drivers such as MOSFETS to drive the injectors. You may also want to control ignition timing? So just debugging it all could be arduous, then you have to start mapping the system to get the best out of it.
There is a thread already running at the moment (user andersteenhammer?) on the same topic.
See also Speeduino, a project for a full EMS system - it seems they have done it already!
I am working on a similar project for my V8 classic car, just ignition to start with though. So I suspect we will be exchanging thought some time. Cheers!
Thanks for all the Replies guys didn't expect to have so many so soon lol.
Yes I do know that I will have to install Additional Circuits like Mosfets and all that to Drive the Injector. I already have all that set everything is ready basically I just need to build a Control Unit to receive and send signals from sensors to the injector driver. My question mainly where I am coming from is what kind of "Programming Code" will get me at least started off? I have some good back ground on Computer programming so I am very sure I can program it. And as for the Ignition Timing I am keeping that a Separate system on C.D.I. I Figured this is a 1 Cylinder Project Machine and can't be to hard and with the help of some people who know a little more could at least Guide me in the Correct places.
I am making it to where it will take in Oxygen Sensor signal, Throttle Position Signal 5v out to TPS", MAP Input, and Injector Signal Pulse Out Put to the Injector Drive Circuit for the Injection Timing Pulse I will add a Pick Up Coil to sense the Intake Cam Lobe.
You could try using Tone or analogWrite to pulse the injector. As for the O2 sensor, will you be using a narrowband or wideband sensor? Wideband is better but narrowband is obviously sufficient as the OEMs use it. IMHO, the O2 is a bit of overkill for this project but feedback control is always a nice option.
I'd ditch using MAP sensor, as I see it, in your project it is overkill. Use the TPS as load and remember a little rich is better than a little lean. add a touch more fuel then you think you need. I say this because I can't really see fuel economy as a huge issue in a single cylinder buggy. Plus, the loss in "mileage" is negligible.
I could possibly help you with the code, as long as you aren't in too much of a hurry.
BTW, I have built and installed an Electronic Automatic Transmission controller using an Arduino MEGA2560 into one of my project vehicles. It works quite well, has self diagnostics, spits out sensor and operational data via serial comms to a PC program I built used for setting up, calibrating, and diagnosing the controller/trans combo. The same could be done for controlling fuel, spark, boost, etc.
No hurry here at all. And Yeah I thought about the MAP being to much I actually took that out of the Equation completely. So all I'm gonna use is a Wide Band o2 Sensor . Do I need an o2 Sensor? Also Yeah No concerns about Fuel Mileage I'd rather run it slightly rich as well.
Another Question.. Can I use the Same Pick Up Coil that the Spark Plug CDI uses as the ECU Input Signal to fire the Injector and just Change the timing for the Injector to fire at the Correct time? Because it would be nice If I could just use 1 Sensor to fire Fuel and Spark and just do some Adjustments in the ECU to Retard the Injection timing to make it fire the Injector as soon as the Intake Valve begins to Open.
Yes as for the Code that would be awesome.
Also I might even just run the Fuel and Spark off the Arduino then I could make customs Tunes for Ignition and Fuel Pulse. But for now I think I wanna keep it only for EFI because it's nice having two Control Units one for Fuel and CDI for Spark.
Also any type of Information you need about the Engine like for example you might need to know how many Degrees from "Ignition Fire" till when the Intake Valve opens or what ever let me know if you need that Info.
Feel free to come and join us over at http://speeduino.com , your setup sounds like it should work without any problems. As far as inputs, your bare minimum is a crank sensor (something like a missing tooth wheel is ideal), load sensor (TPS / MAP or both) and some form of feedback for tuning (Wideband O2 is perfect). Ideally you would also have a temperature input for both engine and air temps, but you can make do on a small engine without them.
On the code side if you want to do it from scratch, my best recommendation would be to get very comfortable using interrupts as they will be critical in being able to do any form of accurate timing. happy to help if you've got any specific questions.