PDA

View Full Version : Disassembly: Startup fuel tables



Greg E
03-21-2012, 12:10 AM
90% of you probably won't ever need to modify these tables but I was curious how the start up routine worked in the ECU. Turns out, there's quite a bit going on when you turn the key. I believe the answer to the issue with "hot starts" on some cars can be fixed in here. As it turns out the fuel table, injector size and latency tables are completely ignored during this time. The ECU simply calculates an IPW based on a few factors.

Once the engine first starts rotating from the starter, there is a single injector pulse that is calculated. The value comes from from a table which I've dubbed "Cranking IPW " and then there is an Adder value applied, then this Primer pulse sent to the injectors. As you can see, the cooler the coolant temps, the longer the injectors are held open.

http://i.imgur.com/Xr8IT.jpg

After this primer pulse is setup, there are various corrections which are applied to it. First one is a multiplier which is looked up based on how fast your starter is cranking the motor. There are two tables and coolant temp determines which tables is used. As you can see, both tables are the same so coolant temp is irrelevant. The coolant temp switch value between these two tables is -4 degF so again....

In a future chrome ROM, I might make use of this for an alcohol switchable map. ;)

http://i.imgur.com/F0x2O.jpg

So we have the Primer Pulse * RPM Correction Factor = Corrected Primer Pulse.

It's not over yet. There are 2 other compensations still to go!

So as the starter is now cranking the motor, the ECU now counts how many ignition strokes the motor is turning and then starts reducing the Corrected Primer Pulse.

http://i.imgur.com/Dypj6.jpg

The formula from start to finish is this:

(Base Primer Pulse + Adder value) * RPM Comp / Ignition stroke reduction = Start up IPW

Again the fuel table, injector size and latency tables are completely ignored during this time. This is why you piggy back guy running HUGE injectors may be having hot start issues. Just after the engine has started, there is also a milisecond timer counting down and another enrichment factor is applied based on coolant temperature again (shown in the above screen shot).

One last table the ECU uses is just a simple RPM look up to tell if the motor is actually running on it's own power or still being spun by the starter. Not sure why this is still here. The ECU knows when you have the key turned into the START position. Must be left over from the earlier days before they wired up the starter system to the ECU.

http://i.imgur.com/Zs9X9.jpg

I've been able to run as high as 560cc injectors EVO injectors without really needing to tweak these tables but when you start getting to the 720cc range, you might want to start reducing the base values a bit. I usually just divide them in half and the car starts stock smooth again with no spark plug fouling. :)

Alan92RTTT
03-21-2012, 07:10 AM
Should this be in the ECU forum?

J. Fast
03-21-2012, 08:35 AM
90% of you probably won't ever need to modify these tables (even when running alcohol) but I was curious how the start up routine worked in the ECU. Once again, the EVO ROM disassembly was my guide thru this and once again, our code is much much simpler. :) I'm still picking thru all this and unfortunately, it seems like I have to dissect the entire IPW calculation but here's some progress:


Once the engine first starts rotating from the starter, there is a single injector pulse that is calculated. The value comes from from a table which I've dubbed "Cranking IPW -vs- Coolant Temp" and then sent to the injectors. The fuel table, injector size and latency tables are completely ignored during this time.

Just after the starter is disengaged we get into the mess of incorporating everything. I still don't quite understand it all, but there are 2 start up compensations for IPW that involve coolant temp. One we are familiar with and that's the "Coolant Temp Fuel Enrichment" table which is just an additional percentage added onto the IPW.

The other is an adjustment to something the EVO guys call the "base fuel pulse width". I'm still picking apart how this value is calculated, but this table takes a percentage off that just after the starter disengages.

http://www.imgur.com/omYvg.jpg

More to come on this when I get time.

Cranking IPW vs. Coolant is your priming pulse.

Base Pulse Width Startup Comp vs. Coolant Temp is for after the engine starts. You add more fuel right after startup so the engine doesn't stall warms up. You can program an ECU Startup Comp based on a specific number of engine revolutions ( ie. 300 passes thru the cam trigger wheel), or you can set a specific time for startup comp (say 1:00 minute), or you can program and compensate based on coolant temperature. Lots of options. I think the program you're using only allows for a coolant temp adjustment.

Greg E
03-21-2012, 09:05 AM
Cranking IPW vs. Coolant is your priming pulse.

Base Pulse Width Startup Comp vs. Coolant Temp is for after the engine starts. You add more fuel right after startup so the engine doesn't stall warms up. You can program an ECU Startup Comp based on a specific number of engine revolutions ( ie. 300 passes thru the cam trigger wheel), or you can set a specific time for startup comp (say 1:00 minute), or you can program and compensate based on coolant temperature. Lots of options. I think the program you're using only allows for a coolant temp adjustment.

Primer pulse would be a better term for the first table. I'll rename it.

The program can use any value for adjustments, its just the stock ecu is using coolant temp.

Greg E
10-17-2012, 09:42 PM
*Bump*

I finished this disassembly some time ago. Just now getting around to updating this thread! :)

Jesters Deadd
10-19-2012, 11:36 AM
I have successfully edited these tables now my 1000cc injs start my car great! And I finally removed the fuel pressure solenoid. I would get flooding issues before. But now it starts like stock hot ot cold... maybe better.:) Seems silly Mitsubishi even used that fuel pressure solenoid! They could have saved tons of money if they just twicked these tables in the program and not fitted our cars with those solenoids. But hey we get an extra output to play with.
@ greg I may make my old pin 48 control a shift light now, just til i come up with some thing better to do with it. :)
BTW: Greg you're the Man! haha

Greg E
10-19-2012, 12:11 PM
I have successfully edited these tables now my 1000cc injs start my car great! And I finally removed the fuel pressure solenoid. I would get flooding issues before. But now it starts like stock hot ot cold... maybe better.:) Seems silly Mitsubishi even used that fuel pressure solenoid! They could have saved tons of money if they just twicked these tables in the program and not fitted our cars with those solenoids. But hey we get an extra output to play with.
@ greg I may make my old pin 48 control a shift light now, just til i come up with some thing better to do with it. :)
BTW: Greg you're the Man! haha

That was the whole point of the "custom" outputs. To make them do anything your imagination can dream of! :)

Greg E
10-23-2012, 09:00 PM
The post start enrichment wasn't clearly explained in the first post. I just fixed that.

anyonebutme
10-23-2012, 11:14 PM
That was the whole point of the "custom" outputs. To make them do anything your imagination can dream of! :)

Sounds like a good output for my huge ass knock warning light...

Greg E
10-24-2012, 09:23 AM
Sounds like a good output for my huge ass knock warning light...

Wire that up to the check engine light and use the knock CEL chrome mod.

anyonebutme
10-24-2012, 11:05 PM
Wire that up to the check engine light and use the knock CEL chrome mod.

I would, but Brett hasn't provided a harness and ECU yet, lol.

DG
10-25-2012, 11:19 AM
Interesting.

I'm going to have a look at converting this to AEM-speak and see how my current setup differs from OEM.

The OEM sequence is a little more complex.

Have you disassembled the post-start warmup sequence too?

DG

Jesters Deadd
10-25-2012, 11:32 AM
Why do AEM guys want to copy the stock code?

Greg E
10-25-2012, 12:07 PM
Interesting.

I'm going to have a look at converting this to AEM-speak and see how my current setup differs from OEM.

The OEM sequence is a little more complex.

Have you disassembled the post-start warmup sequence too?

DG

Yes. They're in the first post. The last 2 tables are just an enrichment multiplier added to the IPW for a short amount of time. The enrichment factor and length of time are shown in the screen shot. This isn't an enrichment to "cranking" IPW. It's an enrichment to "normal" engine running IPW. The ECU switches out of "cranking mode" and into "normal mode" when RPMs > 438rpm as shown in the last table.

"Warm up enrichment" will be explained in another thread but its just another mulitplier based on coolant temperature.

I know you AEM guys are anxious to see the whole routine from MAF to final IPW. I'm working on typing that all out. It's quite complex! I'm very sorry I haven't been keeping the 3STech threads alive but I have been working nearly every day on this for the last year!

Greg E
10-25-2012, 12:09 PM
Why do AEM guys want to copy the stock code?

Is that a serious question? :p

Greg E
10-25-2012, 12:11 PM
I would, but Brett hasn't provided a harness and ECU yet, lol.

Brett is off serving our country. I got to speak with him the day before he left. He wasn't clear exactly how long he'd be gone but I'm not expecting him back till November at the earliest. He's a very busy person but I'm sure you'll find his stuff worth the wait!

NOMIEZVR4
10-25-2012, 12:18 PM
Thanks to Greg I'm also now running 1000cc injectors on my VR-4 with no start up issues thus far. Cant wait to crank up the boost...Hey what/where is the fuel pressure solenoid? I would like to get rid of stuff that isn't needed anymore.

Greg E
10-25-2012, 12:21 PM
Thanks to Greg I'm also now running 1000cc injectors on my VR-4 with no start up issues thus far. Cant wait to crank up the boost...Hey what/where is the fuel pressure solenoid? I would like to get rid of stuff that isn't needed anymore.

That's a whole nother discussion thread. So far only me and Marc are running the FPR and Adam will be testing it soon too. After I get a few more people using this setup I'll post the results.

Jesters Deadd
10-25-2012, 02:44 PM
Is that a serious question? :p

:) haha

Jesters Deadd
10-25-2012, 02:45 PM
Thanks to Greg I'm also now running 1000cc injectors on my VR-4 with no start up issues thus far. Cant wait to crank up the boost...Hey what/where is the fuel pressure solenoid? I would like to get rid of stuff that isn't needed anymore.

The pin has been repurposed... the solenoid has been too.

Chris@Rvengeperformance
03-04-2013, 02:08 PM
FYI you may find you need to lower the timer on the post start enrichment on warm startup.

I'm on the 1050s now and the car starts and idles instantly perfectly when stone cold, but on warm startup it starts initially great and idles rich for a moment. I've started dropping the enrichment timer a bit and will report back.

It is nothing that makes the car not start or need throttle to keep going, just trying to make it perfect. It just sounds a little rough for a second or 2. When it is stone cold it starts better than stock. The car doesn't even crank, as soon as you touch the key it starts, even in 30 degree weather. I did dial in the injectors pretty well and halved the cranking IPW values.

Greg E
03-04-2013, 02:29 PM
I do that to all the base tunes I send out.

Sorry I could have sworn I advised you to do the same once...

Chris@Rvengeperformance
03-04-2013, 02:32 PM
I do that to all the base tunes I send out.

Sorry I could have sworn I advised you to do the same once...

highly possible, just sharing some info. The 1050s were dialed in in about an hour of cruising around, laughably easy. I ended up back at the stock VE table though, the car actually needed a lot more fuel at idle than I thought, but idles stoic perfectly.

Do you have a thread for known setups, latencies, and scaling? I can add mine?

Greg E
03-04-2013, 02:44 PM
Trying to avoid guys posting tunes because it enables future users to be lazy and not tune their cars the proper way.

Greg E
03-04-2013, 02:45 PM
Another thing, did you disable the FPR solenoid?

Chris@Rvengeperformance
03-04-2013, 02:46 PM
Another thing, did you disable the FPR solenoid?

no I haven't.

Chris@Rvengeperformance
03-04-2013, 02:47 PM
Trying to avoid guys posting tunes because it enables future users to be lazy and not tune their cars the proper way.

I would never share the whole rom, would only post latencies and scaling as a starting point.

Chris@Rvengeperformance
03-04-2013, 02:49 PM
no I haven't.

actually, I can't find this, where is the setting? Or does the harness need to be unplugged?

Greg E
03-04-2013, 03:07 PM
Ah that's right. I didn't have the stock operational settings in chrome 2.0. It'll be in 2.1. I should make a disassembly thread about it.

The FPR solenoid is pin 48 on the 99 ECU. In 2.0 if you don't have "Custom Pin 48 output" turned on, the solenoid will function like stock unless you have it eliminated. Its purpose is to bleed away some vac before the regulator to increase fuel pressure during hot starts. Closed loop disregards this enrichment so it doesn't counter effect the operation.

Never understood why Mitsu installed this....

Chris@Rvengeperformance
03-04-2013, 03:48 PM
Ah that's right. I didn't have the stock operational settings in chrome 2.0. It'll be in 2.1. I should make a disassembly thread about it.

The FPR solenoid is pin 48 on the 99 ECU. In 2.0 if you don't have "Custom Pin 48 output" turned on, the solenoid will function like stock unless you have it eliminated. Its purpose is to bleed away some vac before the regulator to increase fuel pressure during hot starts. Closed loop disregards this enrichment so it doesn't counter effect the operation.

Never understood why Mitsu installed this....

Easy enough. I enabled custom pin 48 output and set the coolant temp feature to something ridiculous like 250. Should work for now.

KeithMac
03-07-2013, 09:18 AM
How long does it take for the ecu to start using the maf after cold start (say 40 farenheit?). How long are afterstart enrichments active at same temp?. 5seconds?.

Greg E
03-07-2013, 09:48 AM
The ECU starts using the MAF the moment you take your hand off the key. The ECU is in cranking mode when you turn the key into the start position.

http://i.imgur.com/Dypj6.jpg

The bottom two tables should answer your other question.

Using your example of 40 degF there's a 2.5 second 162.5% enrichment factor.

KeithMac
03-07-2013, 01:55 PM
Thanks, so primer pulse and decay is only active when key is in start position?, and after start enrichment modifies the injector pulsewidth that's already had the maf reading and baro, iat etc already factored in?.

Greg E
03-07-2013, 02:02 PM
Thanks, so primer pulse and decay is only active when key is in start position?, and after start enrichment modifies the injector pulsewidth that's already had the maf reading and baro, iat etc already factored in?.

You got it.

The top table is the percentage reduction of the primer pulse. As the engine cranks, the cranking IPW is reduced to avoid fouling the plugs.

I'm thinking I should re-write this disassembly. It does seem a bit confusing.

KeithMac
03-07-2013, 02:24 PM
Thanks for explaining it again!. Makes sense to me now :) .

Don't suppose you've seen an idle rpm target based on coolant temp on your travels through the code?. Mine seems to target 1500 rpm when cold based on watching IAC step count, dropping to 700 hot.

Greg E
03-07-2013, 02:29 PM
Maybe... :suspect:

http://www.3sgto.org/tuning-engine-electronics-ecu-discussions/10777-chrome-v2-tech-manual.html#post211650

There's actually 32 different target idle RPM tables. In chrome I simplified things.

KeithMac
03-07-2013, 03:31 PM
Thanks again!, some good reading there.