PDA

View Full Version : rusEfi: open source DIY ECU



rusefi
04-25-2014, 06:51 PM
I am involved with rusEfi (http://rusefi.com) - it's another DIY open source ECU.

http://www.autoweek.com/article/20140424/CARNEWS02/140429923 (http://www.autoweek.com/article/20140424/CARNEWS02/140429923) and http://hackaday.com/2014/03/19/gevcu-an-open-generalized-electric-vehicle-control-unit/ show where we currently are, there is also a Kickstarter (https://www.kickstarter.com/projects/312898525/rusefi-gpl-automotive-engine-control-unit-ecu-firm) project

Right now we have four engines running this but not much driving yet - still need to properly tune one of the cars to start driving it. Still a lot of work in progress, still a project not a product. Hopefully someone would be interested to join us - we need people with expertise in software, electronics or engine tuning.


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


https://www.youtube.com/watch?v=M-qqHQ-quFg

In terms of hardware we are now focused on our Frankenstein board (http://rusefi.com/forum/viewtopic.php?f=4&t=359) - you can order it from your favorite PCB shops using the source files or just get it from our Tindie (https://www.tindie.com/stores/russian/)

steveo
04-25-2014, 10:15 PM
i'm definitely interested in helping

i do know a bit about FI, quite a bit about primitive control systems, and i'm a decent c programmer

right now im in the market for a beater DD which i'd be more than willing to use as a test vehicle.

until i get that done and get a board built, i wont be motivated to do much.

rusefi
04-25-2014, 10:28 PM
As the link (https://www.tindie.com/products/russian/frankenstein-v01-fully-assembled-diy-ecu-shield/) says - I can assembled a board for you if you want to focus on the C stuff. The firmware has a build-in signal stimulator, you can also compile most of the firmware as a win32 executable if you just want to play with it.

steveo
04-25-2014, 11:44 PM
i'll keep it in mind

rusefi
05-30-2014, 02:57 PM
Brief update: we've tested our power supply & main chip schematics and we will now work on a full self-contained board for an older OEM ECU case.

7234

7235

7236

rusefi
07-11-2014, 09:18 PM
Placed an order for the first run on these yesterday
7467

doctortuned
07-12-2014, 03:21 PM
Looks like a nice unit. I wouldnt mind looking at the mapping.

Bigdav160
07-12-2014, 03:31 PM
Very cool. Keep us updated

rusefi
07-12-2014, 03:34 PM
I hope that's the mapping you are looking for: http://i.imgur.com/zsFIrFZ.png

rusefi
08-18-2014, 04:45 AM
Good news: the boards have arrived and they are mostly functional - the largest issues is the mis-wiring of the SD card module, will be fixed in the next revision.


http://rusefi.com/images/Frankenso/frankenso_lcd_case.jpg

Bad news: I am lacking tuning skills to tune to this ECU. I am in Jersey City in case anyone would be available to help me with that.

steveo
08-18-2014, 04:46 AM
this is looking great; i'd be very willing to do a test vehicle in the near future.

rusefi
09-07-2014, 05:55 AM
https://www.youtube.com/watch?v=slZXhskHPc4

Also https://www.facebook.com/pages/RusEfi-standalone-engine-control/264354717021508 :)

rusefi
11-03-2014, 05:18 AM
http://www.youtube.com/watch?v=PhIWAPaUnYM

Now I need to figure out better cold start logic. So far I have a linear pulse width depending on CLT for any RPM < 550 (cranking rpm)

Looks like this does not work perfectly http://www.ecuconnections.com/forum/images/smilies/icon_e_sad.gif What would be a better cold start logic?

steveo
11-03-2014, 05:47 AM
just some ideas..

in short, getting a car running quickly is usually one big fat initial shot of priming fuel, then fixed, primitive spark advance and fuel pulsewidth mostly depending on coolant temp and tps.

but you should look at how some other ECMs do it.

it's one of those things like 'idle speed', you'd figure it would be stupid simple, but some ecms have nearly as much idle logic as they do fueling logic. cranking fuel is another thing that usually has a crapload of tables and routines.

if you don't already, make sure it's reliably determining a state of 'cranking' and 'running'. rpm may not be enough of a threshold. if a car stops 'running' then 'cranks' again, the rpm may be higher than 550rpm (roll start?).

at the very least i'd say "if the engine is zero rpm, it's in a cranking state until the rpm rises above 1000rpm for at least 2 seconds" or something like that, but make those all tuneable constants of course.

once you have a series of thresholds that reliably define 'cranking' and 'running', you can throw out pretty much everything from your other fueling calcs except maybe injector size and cylinder volume. airflow calcs are obviously not going to do much. spark advance needs to be tuned seperately for starting too.

'cranking' state should have seperate idle control logic n stuff so you can give it a bunch of air when starting, and fueling can be a 3d table of pulsewidth vs temperature vs distributor pulse width or something like that.

you should have other tables, for example one that multiplies that fuel based on TPS%. this also makes it trivial to implement flood clearing mode, just set all the 90+% tps to zero pulsewidth.

another table could be an adder that gives an initial (decaying) shot of almost pure injector on-time. that should make it flash up real quick. this could be vs. coolant temp too as a hot engine (might) not need it.

you probably need decay timers for that cranking fuel into normal fueling measurements as well as decay the IAC steps into its target. sharply switching from a set of 'cranking' tables to a 'fully metered open loop fueling' state might just make it fall flat on its face.

riche
11-06-2014, 03:24 PM
I always wanted to learn more about engine management and have an aftermarket system (holley). In the short time that I have been learning (last 2 years) I actually feel like I accomplished something when I read steveo's post and understood 50 to 60% of it. LOL But with that being said, If things don't change for me real soon I wouldn't mind messing around with a project to occupy my time testing and learning.

rusefi
11-10-2014, 07:55 PM
I've implemented cranking fuel as "magic_base_value * coolant_temp_curve_correction (CLT) * cranking_duration_correction(cycle_counter)" and I think it's getting much better - here's a vid of a first cold start of the day. Still needs to get better
Still takes a lot time to catch up, maybe I will add more fuel right at the beginning of cranking
Also really struggles to run for the first 10 seconds. Any ideas what to adjust?


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

riche
11-11-2014, 12:46 AM
If you had to hold the throttle blades open to get the engine to start I would think that would indicate your engine needs air (rich?).
In my aftermarket system you have options to increase or decrease fuel by a multiplier relative to temp . And you also have the ability to control the idle air control valve % relative to the temp as well. There is also a decay rate (in seconds) to hold after start settings relative to temp.
So if you have control of the base fuel multiplier and you have control of the ICA in theory I would think you either increase the amount of air (open the IAC if you have one) or lean out the mixture?
Just remember that I am a noob, I have only been messing with my current aftermarket system for a year or two now. So I am not going to tell you I am right, just that is what I am seeing from what I have learned so far messing with my setup.

rusefi
12-12-2014, 05:02 AM
With resent improvements I am pretty happy with cold start:


http://www.youtube.com/watch?v=r4W3Xzp-iR4

rusefi
01-07-2015, 07:13 PM
http://www.youtube.com/watch?v=CD2lb1KpI3M

steveo
01-07-2015, 08:08 PM
looking great!

Nagtrainer
02-21-2015, 04:21 AM
Wonder if it will support 36-2-2-2 crank trigger?

rusefi
02-21-2015, 04:39 AM
Wonder if it will support 36-2-2-2 crank trigger?
Sure, it would support 36-2-2-2. Is that a Subaru?

Nagtrainer
02-21-2015, 05:25 PM
Believe it or not it's a Suzuki Swift sort of. But in reality it's a Frankenstein engine so it's fitting for a Frankenstein ECU.