Chrome V3 Manual

If you're looking for a place to direct your vehicular thoughts, you've found it.

Moderator: Monochrome

Locked
User avatar
Monochrome
Founding Members
Founding Members
Posts: 18264
Joined: Tue Jan 16, 2007 1:16 pm
Location: NE Maryland
Contact:

Chrome V3 Manual

Post by Monochrome »

Cranking/Starting the engine

Something we do every day multiple times a day without much thought. It's supposed to be simple right? Turn key, spark plugs fire, injectors spray some fuel, compression builds, fuel ignites and we are off right? Simple!

Well.... The way Mitsubishi set it up, turns out there are some factors we never even thought to consider.

So the ECU has an input which gets grounded when you turn the key to the starting position. This tells the code you have engaged the starter. This is what I call "Cranking mode". In Chrome V2 I put everything together into one section called "Startup". In V3, I've separated (and renamed) the tables which are used in Cranking Mode and Startup Mode.

While in Cranking Mode, the code doesn't care what size injectors you have, what the MAF is saying or even what your battery voltage is. It simply holds the injectors open for a certain amount of time. How long depends on the temperature of the coolant. I call this the Base Cranking IPW. In Chrome V2 I had the scaling wrong for this table. It's been corrected for this version.

Image

Now at this point the engine is spinning. A healthy stock starter with a healthy battery typically spins the motor around 250rpms. You'd think the code would simply use the starter input pin to differentiate Cranking mode from "running mode" but it doesn't. It goes off the RPM value read by the crank sensor. Anything less than 344 rpms the code considers this Cranking Mode. The engine isn't considered Started until the rpms climb to 438 rpms.

Image

In theory, your engine should be able to start without the code seeing the Starter input. Haven't tested this yet (beta tester?). Guessing this is a carry over from the 80s before they setup a starter input to the ECU.

Note there's a differentiation based on coolant temp. In the VR4, SL Montero and Padjero ROM, all these values are the exact same. Even our 4 cyl counter parts share these values. At one point in the past, maybe Mitsu must have had an issue starting motors while cold but that issue was resolved and the code was never updated. Just the values were all fixed. I'm guessing older engines might have had different strength starters or maybe the throttle body fuel injection had issues? Who knows...

Just think.... If you wanted to run some aftermarket starter/transmission in your car, being able to edit these values maybe handy! Some GM starters spin the motor at 450rpms!

What's also crazy every ROM has different size fuel injectors yet all these tables are the same.... I never edited these values even when running 660cc fuel injectors too. You probably will never need to edit any of these tables till you get into the large 1200cc injector range. Curious to hear feedback from tuners about this.

Also note that there is a correction factor from the Base IPW value depending on the true RPM of the motor while the starter is cranking it over.

Mathematically the way this works is if it's 45 degrees outside and the temperature of the coolant in your motor was 45 degrees, the ECU will hold the injectors open for 44.5 milliseconds but only if the starter is turning the motor over at 100rpms. At 250 rpms, you'll only see about 80% of that number while the engine is cranking.

I've tested this over and over on a few cars to verify this math is correct.

One last factor is the Fuel Injector time limit. The ECU will only spray fuel for 15 seconds to prevent flooding the motor.

Image

So the code has another mode which to start the engine and that instead of RPM (crank speed) it uses ignition stroke counts (measured by cam speed). I played with these tables for years before I figured out they were disabled in the ROM...

Image

You're welcome to play with them. I labeled them according to what their function is in the ROM. I'm not sure which vehicles use Stroke based startup vs RPM based startup but it wouldn't surprise me if you enabled these and the stock settings worked. These values are shared across multiple ROMs.

During cranking mode ignition timing is a fixed value which never changes. I've never experimented with advancing it to assist with starting.

Image


This folks is everything involved with just cranking the engine... I'm out of time for today but will pick this up again soon.
Last edited by Monochrome on Mon Aug 12, 2019 4:59 pm, edited 2 times in total.
2020 Miata Club - BBS package
2020 GMC Sierra Elevation Duramax
2014 Exomotive Exocet - #101 "shocker yellow" - sold :(
Read more: http://mevowners.proboards.com/thread/5 ... g-pa-build
99 Solano Black VR4 - #16 of 287 - ground up restoration - sold :(

"I don't actually work on cars, I just talk about them on the internet."
User avatar
Monochrome
Founding Members
Founding Members
Posts: 18264
Joined: Tue Jan 16, 2007 1:16 pm
Location: NE Maryland
Contact:

Re: Chrome V3 Manual

Post by Monochrome »

Cranking/Starting the engine pt 2

These tables focus on the IPW values that follow just after the engine fires up. For a brief time after fire up, there's still a period where the code ignores everything like MAF, battery voltage and O2 sensors. That's controlled by these tables here.

Image

Note that these are all the same and it's always going to use the 1D value instead of the table due to the coolant temp switch being set to max. All this means is it simply holds the injectors full open for an additional 2.816ms after firing up. Not sure why the 2D vs the 1D value. Maybe some kind of carry over from earlier code? It's basically the same in all Mitsubishi ROMs.... Maybe my beta testers could play with these settings to help with hot start issues?

Moving on.... After this brief period of time, the engine is now running and the code starts to run the engine like normal.

Before I go on, it's important to understand that there's a bunch of correction factors in the code that are added to or taken away from the fuel table. Things like coolant temperature enrichment are one of many of the CFs. This post is mainly going to revolve around the tables which tweak this value just after the engine starts.

Also.... I had these wrong in Chrome V2. My mistake. The "post start enrichment timer" and "post start enrichment factor" tables were backwards... Thankfully their impact is very minor so no one noticed but it still bothers me that this wasn't correct.

Image

I renamed these tables to be Initial Start AF Enrichment Coefficient and Decay Timer. At this point the code is now using the MAF so that enrichment modifier is factored in like the engine is running normally. It's a large correction factor but it's only used for a brief period of time.

In the code, there are a lot more things going on in the ROM with just these two tables. For starters the Enrichment Coefficient is one of 4 tables but in our ROMs all 4 are set the same. The Decay timer is one of 2 tables but again, both are the same.

Check out the tables our European VR4 friends are running...

Image

The DOHC SL cars are the same too...

Image

Figuring out the relationship between all these tables has turned my hair a little grey... The timers interpolate between each other based on some gradient coefficient. It doesn't really seem to matter because the VR4 flashed onto an SL ECU will start a DOHC NA engine just fine.

The only other thing going on right after the engine starts is some idle control motor diagnostics. Note that the ECU doesn't use the ISC right away.

Image

There is a half second delay which I'm guessing is to keep it from inter-fearing with the initial firing. There is also just under a half second delay where the code tests to see if it's even plugged in.
2020 Miata Club - BBS package
2020 GMC Sierra Elevation Duramax
2014 Exomotive Exocet - #101 "shocker yellow" - sold :(
Read more: http://mevowners.proboards.com/thread/5 ... g-pa-build
99 Solano Black VR4 - #16 of 287 - ground up restoration - sold :(

"I don't actually work on cars, I just talk about them on the internet."
User avatar
Monochrome
Founding Members
Founding Members
Posts: 18264
Joined: Tue Jan 16, 2007 1:16 pm
Location: NE Maryland
Contact:

Re: Chrome V3 Manual

Post by Monochrome »

Intake - Part 1

Load

The logic in how the code calculates this was perplexing for years because guys (including myself) kept trying to compare it to stand-alones and even the GM ECUs where it simply says "this amount of pulses from the MAF means this amount of air."

The hair-pulling fact of the Mitsubishi code is the whole entire equation from MAF pulses to Injector pulses is nothing more than a bunch of correction factors. A pulse from the MAF means different things depending on the volume of the motor, the shape of the MAF and the intake tubes. Even the fuel table itself is nothing more than another correction factor. Before realizing this, we kept trying to equate that logic of "this pulse means this amount of air" and that has lead to years of confusion as to what the data in the tables mean and what they actually do.

Let's start with Load since that is the simplest to understand. Only took me 10 years to figure out what exactly Load is, but after that idea clicked, suddenly a lot of things made sense.

So what is Load?

Load is calculated by taking the pulses from the MAF and multiplying it by a factor. In Chrome V2 I called this factor MAF Size. That's not the best way to describe that table.

See all that table means is the Volume of your engine. Each pulse of the MAF means some amount of air volume is being consumed by the motor. So Load is nothing more than a percentage of air being consumed by the motor. In the case of a 3L motor, at 100 Load, the MAF is measuring 3L of air being sucked into the motor. 10 Load is 1/10th the volume (or .3L of air) and 200 Load means 6L of air is being consumed by the motor.

I have relabeled the "MAF Size" table to "Engine Volume" in Chrome V3. If you have been following my instructions since the beginning, if anyone is running an EVO MAF, you should change this value back to stock because your load values are all too low now as a result of this change. I haven't come up with a Scaling yet where you can simply enter the volume of your motor for this table.

The values for this table has been taken from Mitsubishi ROMs so these values are correct for the engine you're running. Those of you with bored out 3.1L motors will have to bear with me till I figure something out.

Image

Load is used a lot in the code as table axis and trigger points. One of the (many) issues with piggybacks is they send a different MAF pulse signal to the ECU thus this value is no longer accurate and can cause various idle, accel and even decel issues. You also completely lose functionality of most emissions equipment. Most people live with this ("my car runs fine"), but that stock smooth transitioning is lost as a result.
2020 Miata Club - BBS package
2020 GMC Sierra Elevation Duramax
2014 Exomotive Exocet - #101 "shocker yellow" - sold :(
Read more: http://mevowners.proboards.com/thread/5 ... g-pa-build
99 Solano Black VR4 - #16 of 287 - ground up restoration - sold :(

"I don't actually work on cars, I just talk about them on the internet."
Locked