1 2 3
russian
russian New Reader
2/19/14 7:38 p.m.

DIY as in real Do-It-Yourself from scratch.

I am racing a crapcan Ford Festiva, it used to be 1.3 but we have swapped a 1.8 into it. We are kinda doing fine as is, but for total domination we need a turbo. And a proper turbo build asks for an aftermarket engine control unit. Thing is, in the crapcan series you are supposed to be on budget, so commercial ECU is out of the question. I've checked what open source DIY options are around and they are "kinda blah", and since I am a software developer anyway I've decided to make my own engine control from scratch.

Here is a pic of the crapcan - there was a major bodywork upgrade since but this picture works better for the spirit of GRM :)

ssswitch
ssswitch New Reader
2/19/14 7:43 p.m.

What hardware platform are you basing this on? I heard someone was trying to get an Arduino to run a Miata which seems like it'd be an interesting if constrained choice. I'm not sure if they're really built for the vibration/heat environment of a car either.

Either way it's a project I've wanted to do for awhile too, but I only have software skills and no EE skills so I'd probably spend most of my time figuring out how relays work and worrying about fire.

russian
russian New Reader
2/19/14 7:43 p.m.

Anyway, back to the ECU.

Arduino is a popular DIY platform but I've chosen stm32f4 because it's 168MHz with floating point unit for around $12 - that's a cheap and powerful chip. It's also available as part of a handy stm32f4discovery evaluation board which works great for my prototyping.

Couple of guys have helped me with the electronics and as of today I actually have a running prototype - it's ugly as hell, but it's a standalone engine control unit for under $100 in parts.

Here it is - it's actually called rusEfi:

I've mentioned the name because this project has a website - http://rusefi.com/ - but anyway, I will track my progress here.

russian
russian New Reader
2/19/14 7:50 p.m.

This board sure looks scary, but it does the job: it controls a 4 cylinder engine in sequential mode. Here's a proof: http://www.youtube.com/watch?v=M-qqHQ-quFg

This board sure looks scary, so now we have a better revision - it's again just a prototype, but you would see some progress between what we have now and what we are hoping to get from China maybe within a couple of weeks:

This board is still a 'shield', meaning it requires stm32f4discovery board for the main brain board. This is on the edge of evaluation license, so we are now finishing our own brain board, too:

That's the current state of rusEfi ECU. I am pretty excited about this project, I sure do not have the problem of free time anymore and probably would not have this problem for the next couple of years

ssswitch
ssswitch New Reader
2/19/14 7:58 p.m.

I went for a poke through the source code - it's pretty modular and I like that you can register callbacks for the crank position sensor events which should keep things clean.

Not sure why the Audi AAN engine def says that it has only 4 cylinders though but it looks like a bunch of those files are stubs anyway so I'll just chalk it up to that.

Way cool! I think I'll learn more about EFI from reading your code than I ever did at many attempts to throw myself into the MegaManual.

russian
russian New Reader
2/19/14 8:05 p.m.

In reply to ssswitch:

Back in Soviet Russia, they cut the fifth cylinder away to stay in line with the party line...

WOW, you got to the code pretty fast! What did your say your software skills were, because we can use a developer or two. Or three :)

fujioko
fujioko Reader
2/20/14 6:22 a.m.

This is awesome!

I noticed you were using an Aspire as a test vehicle. Are you using the secondary chopper wheel in the distributor for the sequential?

I megasquirted a Festiva engine about a year ago. I still haven't solved the cold start (below 20F) issue. It takes forever to start the engine.

russian
russian New Reader
2/20/14 6:25 a.m.

Yes :) Yes, this is not ready for the racing Festiva yet.

Yes, I use both wheels in the dizzy. Technically I suspect Aspire also has a crankshaft position sensor unlike the Festiva? I need to look into that one day.

Same here - I still haven't solved the cold start issue :( I've decided to wait for two weeks and solve it next year :)

fujioko
fujioko Reader
2/20/14 7:20 a.m.

The Festiva injectors batch fire while the Aspire uses the rudimentary crank position sensor for sequential.

I'm not an EFI expert but the Apsire crank sensor is sort of unique and I'm not aware of of anything else like it.

From what I have read, the benefits of sequential are seen under lighter loads and slower engine speed. For racing, batch fire may be the simple answer.

Last fall I built a wasted spark ignition for an Aspire. I used an early model Miata CAS and had to add an additional sensor to keep the sequential happy. Overall the project worked out great but it was too much effort for an Aspire.

GameboyRMH
GameboyRMH MegaDork
2/20/14 7:50 a.m.

Wow very impressive! I'll be watching this.

russian
russian New Reader
2/24/14 6:30 p.m.
russian
russian New Reader
2/26/14 9:28 p.m.

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

alfadriver
alfadriver PowerDork
2/27/14 6:57 a.m.

For the colder temps, can I suggest that you change your injection mode a little?

While SEFI inejction can be used really well for nominal cranking, couple of problems happen as it gets colder. first the colder engine means slower cranking- which means that the sensors that detect movement don't work as effectively. Since you are probably taking data at a high rate during crank, I'm sure you may already know that by now.

But what's more is that it takes a whole lot more fuel to start a cold engine- mostly due to the crappy evaporation of the fuel at that cold temp. So instead of doing SEFI, I would suggest starting with batch firing, and then transition to SEFI after the engine is running. On that note, I would even suggest running all of the injectors on each cyl's cycle a little bit- that will build up the fuel little by little ( or alot by a lot) and get it to fire.

moparman76_69
moparman76_69 SuperDork
2/27/14 7:17 a.m.

so is this a full ems or just efi?

GameboyRMH
GameboyRMH MegaDork
2/27/14 8:47 a.m.
alfadriver wrote: For the colder temps, can I suggest that you change your injection mode a little? While SEFI inejction can be used really well for nominal cranking, couple of problems happen as it gets colder. first the colder engine means slower cranking- which means that the sensors that detect movement don't work as effectively. Since you are probably taking data at a high rate during crank, I'm sure you may already know that by now. But what's more is that it takes a whole lot more fuel to start a cold engine- mostly due to the crappy evaporation of the fuel at that cold temp. So instead of doing SEFI, I would suggest starting with batch firing, and then transition to SEFI after the engine is running. On that note, I would even suggest running all of the injectors on each cyl's cycle a little bit- that will build up the fuel little by little ( or alot by a lot) and get it to fire.

Sounds like setting the engine to only use sequential injection above a certain temp (maybe 1/2 way to full op. temp?) would be a good fix.

alfadriver
alfadriver PowerDork
2/27/14 9:41 a.m.

In reply to GameboyRMH:

It would- but you can go full SEFI at 40F. that's when the fuel's are change from winter to summer, and where you see the biggest change in cold fuel properties.

For you, you can run SEFI all the time, unless you are planning on parking your car in a refridgerator....

GameboyRMH
GameboyRMH MegaDork
2/27/14 9:46 a.m.

40F intake temp or coolant temp? Should you run batch mode always below a certain intake temp?

alfadriver
alfadriver PowerDork
2/27/14 9:51 a.m.

In reply to GameboyRMH:

Coolant- it's much closer to the fuel temp, and has much more a bearing of what happens in the intake for the fuel than the intake air does.

Really- you only need to batch file the cranking fuel, and transition immediately to sequential- it's more about delivering enough fuel to get it to fire the first time- which takes a lot of fuel. After that, it's not a big deal.

russian
russian New Reader
2/27/14 1:52 p.m.

In reply to alfadriver:

What you are describing is exactly the logic of my OEM ECU uses - it is running all the injectors on each cyl's cycle while cranking (something like below 550RPM), and then it switches to SEFI. And that's exactly the logic I've implemented :)

russian
russian New Reader
2/27/14 1:54 p.m.

In reply to moparman76_69:

That's a full standalone EMS. Too late to change the name though.

alfadriver
alfadriver PowerDork
2/27/14 2:16 p.m.
russian wrote: In reply to alfadriver: What you are describing is exactly the logic of my OEM ECU uses - it is running all the injectors on each cyl's cycle while cranking (something like below 550RPM), and then it switches to SEFI. And that's exactly the logic I've implemented :)

So you are injecting fuel every cycle or once per rev?

We've found that once for each cyl's cycle, the fuel will puddle up reliably to start reasonably quickly at colder temps.

If it eventually starts, then add more fuel. If it never starts, then take some out.

Oh, one more trick- since you are writing your own code- add in the feature that if you go wide open throttle that it turns the fuel off during crank. That way you can do a clean out if you need to.

Only for crank.

russian
russian New Reader
2/27/14 2:27 p.m.

In reply to alfadriver:

Cranking - four squirts per camshaft revolution. Running - one squirt per camshaft revolution.

About the WOT cranking trick - that's interesting! Another trick I was once told is to pre-inject some fuel into the cylinders before cranking if the temperature is really low, I can add a curve so that the duration of that pre-injection depends on the CLT reading.

alfadriver
alfadriver PowerDork
2/27/14 2:31 p.m.
russian wrote: In reply to alfadriver: Cranking - four squirts per camshaft revolution. Running - one squirt per camshaft revolution. About the WOT cranking trick - that's interesting! Another trick I was once told is to pre-inject some fuel into the cylinders before cranking if the temperature is really low, I can add a curve so that the duration of that pre-injection depends on the CLT reading.

I'm not a big fan of injecting fuel on a non moving engine. It's an easy mistake away from hydrolocking on crank. Most injectors are not big enough to make that happen even if they are full on during craking- so just fuelling when the engine is spinning is a whole lot safer.

The WOT trick is an old carb trick that all OEM's use for fuel injection.

In terms of your trickling of fuel- if you are a 4 cyl, that should be 4 pulses per cycle, which is 720 degrees, or 2 pulses per rev. That way the timing is the same as you would during sefi, just all injectors instead of 1.

russian
russian New Reader
2/27/14 2:31 p.m.

I've actually created two tickets so that these suggestions are not forgotten: https://sourceforge.net/p/rusefi/tickets/51/ https://sourceforge.net/p/rusefi/tickets/52/

tpwalsh
tpwalsh Reader
2/27/14 2:46 p.m.

The WOT== Flood Clear trick is an OLD one in the megasquirt world. Props for starting from scratch, it's seriously impressive. But why competely reengineer from scratch, when even a MS1 on a custom board would save hundreds of hours and fit in budget? http://www.diyautotune.com/catalog/cpu-megasquirti-cpu-p-105.html

Also, how are you valuing this whole project in the crapcan world? This seems to me like it screams for penalty laps.

1 2 3

You'll need to log in to post.

Our Preferred Partners
zLkPOTIN1L9ug9QQB3PoC0d9YpS9AKB3oejwjzeiJNELVYjunU2MGpgxJYtIWuLB