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.

AVR based EFI managment system.

Not open for further replies.


New Member
I am building a multiport fuel injection system for a big block chevy :twisted: . I have already designed the plenum and intake manifold and those are currently under construction. The mechanical side is taken care of but now I need a CPU to control the injectors and timing of the ignition system. I thought about just buying a aftermarket ECM but whats the fun in that! Does anyone have any pointers? Fuel flow from the the injectors is is a function of the amount of air allowed in by the throtle body, and ignition timing is a function of the engines RPM. I can't see anyreason why a uC couldn't handle that. Has anyone attempted such a circuit? Would fine adjustments to the managment parameters be possible while its installed, via laptop, or a little plug in remote with up/down buttons. Thanks for the help!
I don't see any reason why using an AVR uC wouldn't work. You can do quite a bit of complex data crunching, and while I'm not familiar with your application directly, I've used them a lot in the past. The biggest question seems to be: What features do you need? This will dictate what sort of uC you select. All AVR uC's have in circuit programming, so it is a simple task to upgrade the firmware. Alternatively, you can even design an interface, whereby you can alter some of the state variables on the fly.

Can you describe what exactly it is you intend to do with the uC in more technical terms? What are you attempting to measure?
Check out and do a google search for megasquirt, which is a open source efi controller.I can't remember the exact website but , schematics, code, and a lot of info is available on it.

It's easy to make something simple, but it will be hard to get both injection and timing on one chip, especially if you are really nit picky about accuracy. Most likely you would have to seperate it out. It's also hard to get more advanced features into it.

A simple speed density system with sensor lookup and correction tables is fairly easy. With a race car, at least you don't need all the daily driving and emmissions stuff that puts real strain on an ECU.

I don't know if real time adjustment would be possible. It would mean that all the lookup tables would need to be loaded into ram, which most 8bit uC's don't have alot of.

Check out the lm1949 injector drive controller chip as well.
EFI managment

I want the uC to collect data from a manifold Air Pressure sensor, Throttle Position sensor, Oxygen sensor, and Manifold Air Temperature sensor, then calculate the proper fuel amount to be delivered by the uC. The most important of these for fuel metering would be the throtle position sensor and the 02 sensor. The Intake pressure and temp would just allow the uC fine tuning under different loads. This is for a 67 chevelle so I am not worried about emission controls, don't want em.
That's very basic. I would think you would want coolant temp as well, and battery voltage correction. You'll find it difficult to get the car up and running without coolant temp correction. There's no idla air controller? You can implement simple anti-slip if you interface a VSS sensor. Knock sensor?

Unless the O2 sensor is a UEGO or a wideband sensor it'll be useless for a racecar. Standard sensors can only accurately sense 14.7:1 stoich, and you don't want to be running that lean in a racecar. Are you trying to do closed loop with a UEGO sensor, then?

What resolution do you want to shoot for with the fuel/ignition maps, and the correction maps? Remember, once you add up all the correction maps, for fuel, and then for ignition correction, you're getting into large number of lookup tables and alot of data. It's unlikely you'll be able to fit all that into the 4k of RAM your limited to on most of the 8bits so that you can do real time changes.

To add to your sensors, I assume you're taking it for granted, but you want it to read the crank angle and crank position (sync) sensors as well. You can leave out sync if you're not doing sequential. Are you trying for batch, or simply multipoint? Direct fire ignition or do you have a distributor?

You also have to decide on the outputs you want. Tacho, speedo, engine warning.

You're probably better off looking through all the diy-efi archives.

I have a DIY kit, which unfortunately is not available any more: for my ems, but I have a dash display and datalogger I'm working on myself.
AVR ATmega128
128k Flash
8 External interrupts
4 timers (two 8 bit and two 16 bit)
up to 16 MHz fully static operation
Up to 53 I/O pins

Costs about $16 IIRC from Digikey.

Atmel's Development kit costs about $158 + shipping from digikey and it will come with a processor. I'd get a couple extra just in case though. You can also download WinAVR and AVR Studio for free to do C development on the platform.

You can either use a bootloader and completely reprogram the entire device while its installed using a COM port on a laptop, or you could add in ISP support with a 6 pin header (or a 10 pin, either way works) and a few resistors. The ISP route would require you to buy an AVRISP tool, but they're cheap and also can be had from digikey I believe.

If you wanted to fine tune the device with the engine running, through look up tables, then this would work. You could modify them through the UART and save them in the EEPROM. is a good AVR resource.
Just curious, but have you considered using an OEM GMECM? They're extremely well hacked, you can get a complete wiring harness from Painless Wiring for under $400, and the ECM can be found in junkyards. There's a ton of help out there as well as plenty of laptop software to help you tweak and tune these ECM's for maximum fuel economy AND power.

While building a stand-alone proprietary ECM is a noble cause, I wouldn't trust it running what could be a $5000 motor, IMO.

Also keep in mind that you can change the assembly programming in these ECM's to do things you want - i.e. change the useless EGR output to control say, water injection? Or maybe control a seperate output for a cooling fan to come on.

Even better, they no longer require an EPROM burner/eraser combo. Check out ..
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips