Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

EFI system

Not open for further replies.


New Member
Hi ,

I wanna bluid a SEFI system

(Syquential, Electronic, Fuel< Injectionsystem)

for a 6 cylinders engine.

that means for every time y inject the fuel i have to calculate the amount of fuel that is required.

I/O list:
-water temperature
-air temperatue (maybe calculated)
-air density (maybe calculated)
-air weight (maybe calculated)
-rotation freq of the crankshaft
-camswitch (6x)


a example of it:

**broken link removed**

outputs there are offcourse also:

-6x injector
-6 outputs for a LCD ??? (if it is possible)

-serial i/o whit the pc

i also wanted to have the possebilety to watch/debug online???


(i started in de pic world whit a oopic system it worked very fine but i think that architecture cost a lot of performance..)

(but the software was fine for it.. )
As in my answer to your other post I'd recommend Silicon labs 8051's. They have great Analog peripherals: 8 8Bit A to D channels at 500KS/s, 8 channels 12 bit 200KS/s A to D and 2 channels 12 bit D to A. If you get the C8051F120 (100 MHz) you will have all the processing time you need. They also have a couple parts for automotive use with very fast (16 bit 1MS/s with DMA) or high voltage (up to 60V) A to D's and CAN bus support.

8051 chip

is there a way to

start programming this chip whit basic as language??

are there converters in the market for this chip or is there a way to convert basic to c and c to assembly and that to hex or is this to much loss??

I'd recommend learning C. It's a much more powerful language than Basic. Its also a lot easier than basic to do a lot of things. Silicon labs has a lot of good C examples that you can play with to get yourself up to speed with C. They have a free 4K code limited compiler with their dev kit.

Check you might be able to find a Basic compiler. There really isn't any way to convert from Basic to C.

Using a 16 bit controller is a good choice. Using an 8 bit slower controller means most of the work you'll be doing is trying to get the processing streamlined enough to work within the hardware.

It sounds like you're pretty new to this, though. Making a sequential EFI that works on a daily driver is not an easy task. It sounds simple, but in order to get the car to idle properly, cold start, hot start, throttle advance, ... it gets very complex. It's not outside the realm of the hobbyist, but making one from scratch is alot of work.

yeah but the only thing that changes is how often do i calculate the ammount of fuel..!! with sequential i wil calculate it as many times as there are cylinders i will calculate it wait for the input signal and will inject it..then calculate and wait for the next pulse of the next cylinder

also don't forget that i have a lot of technical persons around me

and at last great brains..!!

If you really are going to be doing a lot of calculations you should look at DSPs. They are designed to do a lot of number crunching. The C8051F120 which I suggested earlier does have a hardware multiply accumulator which will help with some of the math. But this will still be nothing compared with a DSP. DSPs can often do several multipy accumulates per clock cycle. Take a look at Teas Instruments DSPs. Analog devices also has some.

Take bit of time and check how many aritmetic operations per second you will have to do. Then see if you will be able to accomplish this with a micorcontroller. If not, DSPs are probably the way to go.

You really don't need to do a lot of calculations, you can do most of the calculations before you do the programming and run things off small lookup tables and do a linear interpolation routine off the tables(pretty much all factory ecus do this).The faster the mcu the more timing issues will have, since injectors pulse in the millisecond range, so super fast mcu's will need timing delays.As long as you are only doing injection and not ignition timing too, 8 bit mcu's with relatively slow clocks(10-20 mhz) will work just fine, most pre-OBDII factory ecu's have 8 bit mcus with around 12 mhz clocks(and they do injection and ignition timing).BASIC will also work(not recommended) with a somewhat large amount of effort, but you will at least have to do interupt routines in assembly.

i don't wanna do it like the factory way..!!

i wanne make a total formula...

like aamountoffuel=(rpm/(airdweigt*airammoint*(3500/14.123)))/6

something like that..

and the injection is gonna work whit timers?? what the hell makes the difference then whit what kind of ecu??

and the more injectors we use (at higher pressure) the minor time we will be injecting..

10ms = BMW standard @ our car (Ljetronic) full power
1ms=ralenti(the lowest rpm a engine can make)

i thing i gonna buy a 100Mhz cpu which is recommended earlier..
because i think that any way my cpu will wait tille the signal comes from the CAM....

I've never even heard of an ECU trying to use a single calculation to cover all fueling needs. In fact I don't think it can be done outside of supercomputer territory. VE changes at different rpm's and pressure values and is specific to the engine. You would need a formula that somehow modeled the entire engine and was able to calculate volumetric efficiency at all RPM's and pressure points. Then that's considering you would want the exact same fuel/air ratio at all RPM's and pressure points, which isn't ideal.

Look up tables is the only practical way to do it. Remember, you have to correct for coolant temp, air temp, battery voltage, O2 feedback, barometric. There's also other correction values that are needed for warm up and throttle pump.

It's interseting what you say

but what do you do if your rpm = 1950 rpm and your step = 200rpm??

that's also not ideal...

and offcourse @ different rpm's you can make a

select case rpm

case > 100 <500


end select

in that way you can modify your formula very good for "special" rpms

Walter Schreur
The EFI system doesn't just take the closest point on the lookup table and use it to calculate the fuel, it interpolates the correct value by seeing where the actual speed/rpm falls between the points. In that way it's a smooth transission between all points and not a simple stepping between points.

Obviously the larger the lookup table the better the tuning you are going to be able to do. Most EFI systems created in the last 4 or 5 years now have dynamic lookup tables so that resolutions can be more precise where it's needed and less precise where it's not needed.

You need to study up on what EFI systems currently do. This is not a new technology and if you go in blind you're just going to be reinventing the wheel.
that's true

The last words of you are true..!!


Better you steel something that you try to make the same, and it gets worse..

i only have books about the L-Jetronic, will search for something about motronic

but shouldn't the reason be, that they use a mapped architecture to be cheaper??? and needing less signals.???
You may want to check out think), and do a google search for megasquirt(open source fuel injection controller), as well as other groups around the net that have disassembled factory ecu's(such as dsm-ecu on yahoo groups).There is a HUGE amount of info on these sites, and even complete code and examples, you won't find any BASIC though.
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips