rusEfi: engine control unit (for a car)

I am a software developer and cars are just a hobby. Looking at the existing aftermarket engine control units I believe time has come for a simple, clear and usable EFI project. We have boards under $20 running at speeds above 100MHz, we have some great real real-time operation systems - I believe these things combined should make a very simple and open EFI possible.

I have actually made some progress already - I have a prototype based on stm32+ChibiOS which controls the engine in my car

Here is how the hardware looks right now:

http://rusefi.com/images/forum_posts/ru … are_v3.jpg

here is how this runs: http://www.youtube.com/watch?v=M-qqHQ-quFg

Here is my next step:

http://i.imgur.com/OtaN7UM.png

So if anyone would be interested in playing with it or maybe contributing some code please let me know :slight_smile:

Making some progress!

[<LINK_TEXT text=“http://rusefi.com/images/Frankenstein/2 … _state.jpg”>http://rusefi.com/images/Frankenstein/20140224_state.jpg</LINK_TEXT>]([info] 2013: Frankenstein - cheaper ECU shield / official / legacy - rusefi.com)

Unless I am missing the point, I think each engine (type) has it’s own injection profile based on load, speed, available air, temperature, and power demand-request.

Isn’t a dynamometer required as part of the profiling process before you can control it ?

I am not a car expert, but I have spent some time with a local company who does just what (I think) you are doing…

Far be it from me to discourage you form you project (I think it’s brilliant), but can you describe a bit more of the design process, above and beyond just the controller and associated hardware please.

Schematics would be good (and your PCB looks great).

-Mark

It’s much simpler than that - the engine is pretty much defined by the displacement, the displacement affects how much air you can get into the engine, and the air to fuel ratio is pretty much constant. And the injector flow rating translates the amount of fuel into the amount of time the injector would need to be opened in order for that fuel to get into the cylinder. So, the ball part of the the amount of fuel needed is a function of engine displacement.

Then comes the variation in shape of the intake and the exhaust which makes the engines slightly different - at this point you have to correct the base theoretical values. A poor mans tool is a wide band oxygen sensor and a knock sensor - by analyzing these two outputs an experienced person would get a close enough tune’. And then the next choice would be a dynamometer - it’s the best, but not a required tool for the job.

A shop which does something with a dynamometer is usually making this fine adjustment of one of the commercially available aftermarket engine management systems, and here we have an open source platform to do the same thing.

The picture of the PCB is actually a link to a page describing this PCB in more details - it’s http://rusefi.com/forum/viewtopic.php?f=4&t=359 - and that page has a link to the full KiCad project for that board which is https://svn.code.sf.net/p/rusefi/code/t … nstein.zip

As for the software side of this, again - it’s an open source ‘firmware’, i.e. the software to control an engine via this board. The board is a shield for an stm32f4discovery, so an stm32f4 chip - which runs chibios/rt real time os. There is a wiki page which has the links to the repository and doxygen documentation - it’s http://rusefi.com/wiki/index.php?title= … code_intro

New hardware edition:

http://rusefi.com/images/Frankenstein/f_and_lcd.jpg

Here is a vid of this control unit in action:

https://www.youtube.com/watch?v=HnJM9Edid8E

http://hackaday.com/2014/03/29/frankens … trol-unit/