Welcome Guest [Log In] [Register]
Posted ImageWelcome to the all new Geo Metro Forum. We hope you enjoy your visit.

You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are features you can't use and images you can't see. Registration is simple, fast, and completely free. If you're already a member please log in to your account to access all of our features:

Join our community!




Username:   Password:
Add Reply
arduino based, stand alone EFI for 3 cyl
Topic Started: Jan 16 2015, 02:46 PM (1,548 Views)
nemoskull
Elite Member
[ *  *  *  *  * ]
so ive been working on this and think im at a point where this might actually work.

basic system is using tps/rpm to map out a 11x16 table for fuel injection. minimal math. using the TimerOne.h library for mega168/328 based arduinos with adjustable PWM on pin 9,10.

basicly the EFI will set an adjustable pwm cycle time, and then set the percentage of fuel injected from the 11x16 table. right now program uses about 400 of 2000 ram, so lots more room.

until i understand IAT and how it affects the fuel injection, not using an IAT.

CLT input with a linear cold start enrichements (i live in show low, it snows here)
also using nbo2 to adjust fuel, with adjustable on and off.
adjustable percentage of adjustment for the nbo2.

should be able to adjust settings in real time via a serial/rs232 port to update the arduino.
the 328 has 1024 bits of eeprom, so enough for a 32 x 32 (or 1024 bit) table.

and thats pretty much it.

i'm not using a MAP to compute fuel, i want to have the simplest fuel injection possible, as well as the most control over it.

as for hardware, a tip120 for the injector. even at 140f, should still handle 2.5 amp conservitve rating, derating about 25c.

please, no 'cant be done' or 'its too hard/expensive' or 'wasting your time' comments :D

Edited by nemoskull, Jan 16 2015, 02:47 PM.
Offline Profile Quote Post Goto Top
 
punkozuna
Member Avatar


Sounds like a basic AlphaN system - using RPM and Throttle position to estimate the amount of air flowing through the engine and then using the calculated air flow to map out the fuel injector settings. Are you using any feed back from the 02 sensor to adjust the mixture?

when you're ready to adjust your map based on IAT, let me know. The math behind how temperature affects air density is pretty simple so a correction table (or gain adjustment) shouldn't be too hard to come up with. Over the normal range of air intake temps (say -20 degrees F to 120 degrees F) the density difference is about 25% (120f air at standard atmospheric pressure is 75% as dense as it is at -20f).
Offline Profile Quote Post Goto Top
 
nemoskull
Elite Member
[ *  *  *  *  * ]
punkozuna: i will most definitaly take you up on that!

got the TBI injector driven by arduino! tip120, with a variable resistor to tip to limit current. 1.1 ohm injector needs min 1.1 amps to open. tip120 is very inefficent, and i'm driving at 4s lipo, so 16-17 volts. will be targeting 1.5 amps to injector.
Offline Profile Quote Post Goto Top
 
2000Firefly1.3L
Member Avatar


cool project to test your programming ability.
Offline Profile Quote Post Goto Top
 
nemoskull
Elite Member
[ *  *  *  *  * ]
well, the programming is the easy part! getting the hardware to work in a car is the hard part. the arduino CPU is rated at 80c(158f?), or 85c on the newer parts. the tip120 is rated at 150c (300f?), but when the whole thing has to work at 150f in a hot car and not fail.... thats the hard part for me.
also, how its programmed. serial, but i want real time programming, an issue becuase of the serial write and read times. the injector is handeled by hardware PWM, so it stays working untill it gets new data. im targeting the entire program to run in less than 7.5ms, or 1 rpm at 8000 RPM's.
im also toying with the idea of a twin arduino board. if and when this works, i want to get some PCB's made up.

edit:
some fun facts.
megasquirt 1 ecu:
8 bit, 8 mhz, 32k flash, 512b ram, eeprom ???
pro mini ecu:
8 bit, 16 mhz, 32k flash, 2048 ram, 1k eeprom
Edited by nemoskull, Jan 27 2015, 12:44 PM.
Offline Profile Quote Post Goto Top
 
macuserman
Member Avatar


Awesome project. Sounds like you are well on your way. If you want any input feel free to message me I have quite a bit of experience within the embedded world.
Offline Profile Quote Post Goto Top
 
nemoskull
Elite Member
[ *  *  *  *  * ]
okay, so an update. im working on this project but on a 86 carbed. the carb has a mixture control solinoid, so its basiclly a fuel injection minus the injection part. its kinda working. i got a tps and a fuel map based on that. i need to get an rpm input. once i have that working, the computer works.
i have a working rpm tach, but the voltage output is not being read by the arduino right.

check out team swift. net mk1 forum, for some reason, the webpage is not loading right on this site :(
Offline Profile Quote Post Goto Top
 
t3ragtop
Member Avatar
Turbo3 and Twincam Tweaker

the tack drive circuit output is not suitable as an input signal for the electronics. the tach signal on the old suzuki cars is a filtered pulse taken from the ignition coil including the flyback from the collapse of the magnetic field when the coil is taken to ground.

as a matter of fact, there are way better ways to provide timing info to your processor. ;)

mount a toothed wheel on the crankshaft and read it with a hall effect device. if you use a 36-1 trigger wheel you can generate a pulse every 10 degrees of crank rotation. you can get even better resolution if you read the rise and the fall of the teeth.

the hall effect ignition stuff i designed used small, cheap chinese hed conditioning boards that output a 4.92 volt pulsed square wave that i connected directly to the processor on my ms2 version 3 engine management which allowed me to delete all the on board signal conditioning junk.

as for heat, i took all of the injector drivers and ignition drivers off the board and mounted them on dedicated heat sinks outside of the controller enclosure. that leaves all the sensitive components in the enclosure to operate at near ambient temperature. get all those big current handlers out of the box and you can operate within temp specs.

also, the ms2 controls use a bigger processor on a daughter board that plugs into the ms1 processor socket. doesn't the arduino run an atmel processor? the problem there is that the mapping is only 8 X 8 so the injection range/ injector operation is very limited. the ms2 allows for 16 x 16 mapping for injection and ignition.

i see some serious math in your future. :D
Offline Profile Quote Post Goto Top
 
ZXTjato
Member Avatar
bass heads

i would love to see your sprints some time, we should do an AZ meet and greet some day for all us round here.
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Project Forum · Next Topic »
Add Reply