Page 1 of 3 123 LastLast
Results 1 to 10 of 28

Thread: Chrome V2 Tech Manual

  1. #1
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts

    Chrome V2 Tech Manual

    It's finally here! Nearly every dark secrete locked away in that metal box behind your radio now exposed! This is the next best thing to stand alone engine management. Only this is the code the team of engineers designed for this car. In this thread I'm going to go over the details about what each table in the ROM does.

    Warning! Improper use of the modifications in this ROM can and will damage your engine. It is up to YOU the user to read & understand how the features work!


    Disclaimer

    While I've provided a dis-assembly for you to flash tune your ECU with, I can not accept responsibility for any damage caused to your motor or ECU from improper use. It is up to YOU the user to spend the time reading and researching how to handle this software.

    If this all seems a bit much to take in, I'm offering my flash tuning services. I can tune your car via email or I can come to your door. Just PM me to setup a date & time. Most of my past customers have just made the trek out here but I'm more than willing to fly to you if you can put me up for the night and pay for my travel costs.

    I also offer base tunes where you just mail me your ECU, tell me your mods and what features you'd like to run, I flash and return the ECU to you. To save time/money I can also send the base tune to your clone ECU builder and have them flash it before they mail out your ECU.


    Tuning

    I've created a separate thread which goes over all the details for initial setting up and tuning your of ROM.

    http://www.3sgto.org/tuning-engine-e...flash-ecu.html



    Background

    This ROM is a patched version of the last known VR4 ROM released from Mitsu. It's been tested to work on ALL 98 & 99 Mitsubishi ECUs. You WILL NEED a VR4 or Cloned ECU to utilize all the features of my patched ROM. If you're using another ECU other than the VR4 ECU (Montero, Diamonte, SL, Base...) some features will not be available. Fortunately there are guys who have been working on Cloning the VR4 ECU!

    More info here!

    www.clonedecu.com

    www.chromedecu.org



    Prerequisite

    You need the following:

    Laptop running windows w/ at least 1 USB port.
    Tactrix 2.0 Cable - DO NOT BUY THE 1.3 CABLE!! We need the power booster from the 2.0 cable for flashing.
    ECUFlash
    EVOScan V2.9 (It's $25, don't be cheap! ) - After you purchase, download and install EVOScan, you'll need to add my custom 3000GT log file. NO other logging program available will support my patched ROM.
    98/99 VR4 ECU w/ OBD2 connector and flash port (Don't believe boomslang includes this with their adapters)


    Getting started

    Unlike V1, I won't be releasing different patches for different setups. There is 1 universal ROM now which can be tailored to your needs.

    Go to www.clonedecu.com or www.chromedecu.org and download the RAR file.



    Inside is a folder with 3 files inside. One is the Chromed ROM (.bin file), one is the definition file for the ROM (.xml file) and the other is the definition file for EVOScan. All 3 are tied together and are meant to be used in conjunction with each other. You'll find many of the features in these definition files won't work with a stock ROM or previous versions of Chrome.

    Extract the 23862006.XML fileto:
    C:\Program Files (x86)\OpenECU\EcuFlash\rommetadata\mitsubishi

    The 23862006.bin is the ROM itself. This is the file you modify & flash to your ECU. Extract this anywhere you'd like. It doesn't matter where you put it, what you name it or how many copies you make of it.

    Finally, the Mitsubishi MUTIII 3000GT.xml file is the definition file to convert EVOScan to work with our cars. Extract this file into:
    C:\Users\USER\Documents\EvoScan v2.9\DataSettings



    Note: Sometimes there's an issue with installing ECUFlash/EvoScan. Windows 7 and Vista have a feature called UAC. It makes a duplicate copy of your program files. This means when you try to install the EvoScan and EcuFlash .xmls, the changes won’t take effect, instead the duplicate .xml will be used

    Try this! Uninstall EVOScan and ECUFlash and don’t reinstall them in C:\Program Files. Instead install to another directory created by you. For example C:\ECUPrograms\

    After EVOScan is installed, you'll need to install the 2.0 cable drivers. There are instructions on the EVOScan website for this.


    Now open up ECUFlash and open the 23862006.bin. This file is a stock tune. If you've flash tuned your car before, you'll need to copy your tables to the new "Chromed" ROM. Sorry. I can assist with this if needed. It's a good idea to save this file under a different name. It'll still be linked to the correct definition file no matter what you name it or however many copies you make of it.

    People need to be aware of the risks when flashing as bricked ECUs from low battery voltage is starting to become a common enough of an issue where the importance needs to be stressed. Guys should turn their stereos, headlights and AC OFF when flashing to ensure as little draw on the battery as possible. It's best when flashing your ECU for the first time to have a battery tender hooked up to ensure there's no voltage drop during flashing!

    Quote Originally Posted by Jeff V. View Post
    This cannot be stressed enough! I used to work at a General Motors support group, and the only function of my group was to support vehicle reprogramming and the related tools. There were pages and pages of dealer bulletins related to voltage while programming. They even started requiring the dealers to buy a special $300 battery tester/charger/maintainer for use while programming.

    They had to buy this tool not because the technology sucked, but because the damned techs wouldn't follow the rules while programming. Then, rather than call us to see if the module could be recovered, they'd just warranty it and sometimes make the customer wait for a new part.

    Doesn't matter if it's a GM, Mitsubishi or BMW. If you follow the rules, it will work every single time.
    After the first V2 flash there are fewer changes for ECUFlash to make as you tune, thus less time is spent doing the actual flash. Less time flashing is less draw on the battery which is safer. So far nearly every bricked ECU we have encountered comes from LONG flashes with a tired battery.

    I've already spoken to the Clone ECU manufacturers and ALL clones will be coming with V2 pre-flashed to ensure less time needed to flash as you tune.


    Follow up

    I've decided to make Chrome DONATION-ware meaning if you use this on your car, shoot me a little something that you feel it's worth. There have been countless sleepless nights put into this project obsessing over all the little details.

    Tuners: If you use my for tuning customer cars, I'm going to ask for $100. There's nothing I can do to enforce this so I'm just going to trust you guys to be honest with me on this.

    paypal - nonstopmix@gmail.com

    Also, the MAN behind the curtain deserves a little something for all this too. This guy is my fishing instructor. He's taught me everything about the H8/500 programing language and has played a MAJOR role in the development of this disassembly. The man is Jeff aka Gatecrasher. Please send him a little something too for dealing with my endless newb questions.

    paypal - jeffv@xtreme3s.net

    There's a few other very key people who deserve credit for their contributions to this project:

    Marc Mayer for all the assistance in getting the flash ECU compliant with all the OBD1 emissions equipment and the BCS testing!

    Aaron Hall and Nick Zenz for being my guinea pigs for all these months testing new code and helping diagnose/fix bugs!

    Matt Jannusch for the OBD baud testing and great advice!

    David Hinde aka "Merlin" for filling in a lot of the blanks in my disassembly!

    Adam Pape's wife for letting Adam work many MANY late nights with me on the Chrome Mod beta testing and dealing with my random phone calls/texts to Adam all hours of the day/night.

    and finally...

    Adam Pape for being my right hand man with the MUT diagnostics, chrome mod beta testing and all the tedious testing that came with uncovering each area of the code.
    Last edited by Greg E; 04-16-2013 at 09:54 PM.

    2014 Exomotive Exocet - #101 "shocker yellow" - 1.8L 5-speed 3.9 torsen FMII powered
    Read more: http://mevowners.proboards.com/threa.../greg-pa-build

    99 Solano Black VR4 - #16 of 287 - ground up restoration - sold
    98 Pearl White VR4 #54 of 231 - 12.84@105mph - 93 Octane 12.50@107mph - 100 Octane with Chromed ECU - sold
    99 Pearl White VR4 #108 of 287 - 3RD place stock car class ECG 11 - Sold
    98 Black VR4: 100% stock - totalled by an Illegal 2-12-08
    95 White Stealth TT - 11.852 @ 118.25 - sold
    95 SSG Stealth TT - 11.981 @ 115.81mph - sold

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

  2. The Following User Says Thank You to Greg E For This Useful Post:


  3. #2
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Start up

    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.



    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.



    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.

    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 while the engine is in "cranking mode". This is why you piggy back guy running HUGE injectors may be having 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.



    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.

    Discussion here: http://www.3sgto.org/f104/disassembl...bles-8068.html
    Last edited by Greg E; 01-01-2013 at 01:41 PM.

  4. #3
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Fuel

    Big Maps

    The stock fuel map is only 15x15 cells and the stock timing map is also a pitiful 20x15 map. What I've done with the big maps is combined unused/unnecessary maps in the ROM and made 4 15x30 cell maps.



    All 4 big maps share the same axis and they are completely independent from the rest of the ROM so you are free to scale them however you'd like. These maps are a translation from a the stock ROM and are not modified in any way. My EVOScan file is setup to log the RPM and Load addresses the ECU uses to look up these tables so tuning is more accurate.



    Injectors

    Quote Originally Posted by Merlin
    Fuel injectors have to physically move the pintall from the seat before fuel can flow. This take a finite period of time and which changes as the battery voltage varies. As the voltage is lowered, the time required to lift-off or open is increased. There is also a corresponding time delay when the injector is de-energised to the actual fuel shut off. This closing period is much shorter than the opening time and the closing period gets shorter as the battery voltage is raised. The combination of these parameters is called INJECTOR LATENCY. Different make and model injectors will have different latency specifications.
    The only two values you need to modify are the Injector Scaling and Battery Latency Comp tables when installing larger injectors. The other tables are just there for learning purposes and can be ignored.

    Setting the scaling is simple. Just enter the rated size of the injectors you are running for pump gas. If you're running E85, take the rated size and multiply it by .7 and use that number. This will add 30% enrichment needed for burning alcohol.

    The latency requires a little bit of research. This table is a great reference!

    Fuel Injector Lag Time

    Note: You can rescale the voltage side of the table to match the chart if you please.

    Injector Latency scaling equation is a function of the Injector Dead-Band Coefficient. There's no need to modify this value. It's needed for figuring out which Latency Scaling the table lookup value is used.




    Temperature Enrichment

    There are a number of temperature enrichment factors to the base fuel table. One factor is coolant temp. This is the warm up enrichment table the ECU applies to the mixture. I highly recommend at least reducing the values in this table if you are installing larger injectors.

    Example: If you're running 680s, reduce the trim by half since they are 2x the size of stock injectors.



    Haven't ever really needed to adjust the bottom two tables. The load based correction is in place to eliminate enrichment during warmup at high loads so you don't run too rich during high acceleration.

    The air temp table is just an overall fuel correction. Since cool air is denser, more fuel is needed to maintain the same AFR.

    Discussion here: http://www.3sgto.org/f104/disassembl...les-10779.html
    Last edited by Greg E; 01-01-2013 at 01:44 PM.

  5. #4
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Accell/Decell

    This is probably the most complex part of the entire disassembly so I'll do my best to simplify it.

    Again, we have a base value with 3 multipliers.



    There's another very brief enrichment factor to compensate for sudden TPS movement.



    As the load change starts to diminish during acceleration (in other words, as your engines torque starts to level off) there are decay multipliers to reduce the fuel enrichment. I'm not exactly sure what the hex number translates to into English yet but it's a single factor. It could be a timer... Not sure yet.



    Now we come to deceleration when you take your foot off the gas. These 3 tables are just timers controlling how long the injectors stay operating during decel. The coolant based table serves as a RPM change before the injectors are completely shut completely off.

  6. #5
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Closed/Open Loop

    This is still a work in progress so bare with me and I'll go over the areas I understand.

    First off we have the conditions with put the ECU into open loop. Open loop as we all know is where the ECU disregaurds the narrowband O2 sensors.

    For a given RPM the ECU looks up both a minimum engine load and TPS. When both conditions are exceeded the ECU goes into open loop.

    There are 3 Load conditions. I'm not yet sure what factor the ECU uses to switch between the first two tables, but the 3rd table is used during warm up when the engine coolant temps are less than 140 degF.

    The Load Inhibit table is just a reset value in a sense to re-enable closed loop when the ECU doesn't detect a change in load anymore.




    This table is just a timer which counts down the number of seconds after the motor is started before the ECU goes into closed loop and starts to cycle the narrowbands.

    Might be advantageous to extend this value if you have larger cams to get more consistent fueling during warmup.



    Lastly we have 3 fuel trims (low, mid and high). The Fuel Trim Range table is simply a percentage modifier to the raw input HZ from the MAF. Much like an SAFC actually. This table differentiates between the 3 trims.

    As it turns out the enrichment/enleanment factor from your fuel trims are still applied even in Open Loop so it's best to try to keep those trims as close to 0 as possible while tuning.

    The rest of the tables have to do with the response characteristics of closed loop. You may have seen Jeff and I talk back and forth on the forums about something called PID. Proportional Integral Derivative is a control method widely used in industry to control systems in a closed loop setup. It starts by calculating an error between its current position and the target position, in this case the AFR target value and current value. There are 3 parts to the control system:

    P (Proportianal Gain): Determins the reaction to the current error calculated.
    I (Integral Gain): Determins the reaction based on previous calculations.
    D (Derivitive Gain): Alters the reaction based on how much the error has changed. I call this the feed back gain.



    Bascially, the higher the numbers, the greater the reaction. There isn't really any need to play with these at all unless you want to try to make your O2s cycle faster/slower for some reason.

    Not quite sure what the different zones mean yet. I *think* it might have to do with individual cylinder gain settings.

  7. #6
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Fuel Pump

    This section just applies to the conditions which the ECU triggers the fuel pump between the high and low setting. It's starts as a simple 2D table based off engine load and RPM. The Load Reset table is just to switch back to low when the ECU doesn't detect a change in load anymore.

    I threw the operation comments into the tables. As it turns out, the fuel pump is switched to high mode after you first start the car and stays there for a set time after startup. I was surprised to find that the ECU also keeps it switched into high mode while coolant temps > 203 degF and air intake temps > 140 degF.


  8. #7
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Limp Mode

    So it turns out if there is an issue with the MAF (or you leave it unplugged ) the ECU has a function in place where it'll operate the fuel injectors based off just RPM and TPS. There's even an enrichment value based off coolant temp! The EVO guys call this "Alpha-N fuel tuning" and its function was a mystery for many years.



    As you install larger injectors it might be wise to scale down this table in case you need to use it. Say when an innercooler pipe blows off and you have no tools to fix it...

    Hell if you're feeling daring, try fine tuning this table and drive around with no MAF for a while. The closed loop function doesn't work with it unfortunately.

  9. #8
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Intake

    Try to let go of the notion that the stock MAF is some intelligent air counter and try to think of it more in the terms of any 5V sensor. There's a voltage and a scaling (the ECU associates the input pulses to some amount of air). Granted it's not a linear varying voltage signal like a wideband O2 sensor or a MAP sensor, but it's still a 5V pulse signal sent to the ECU. The faster the pulses, the more air.

    The MAF sensor can only read air volume. Dennis has a great explanation for how the mitsu MAFs work.

    Quote Originally Posted by DG
    The Mitsu Karmann air flow sensor is a volume sensor - so you are right in saying "it'll show the exact same pulses for 70deg air as it does for 110 deg air" because (assuming all other conditions are equal) the volume of flow is the same. What changes with the temperature change is the density, and with it, the mass.

    So the Mitsu "MAF" must be temperature and baro pressure compensated in order to produce a mass value, which is what we want. And by no small coincidence, the sensor has a baro pressure and air temp sensor in the body of the "MAF".

    Hot wire sensors - like the GM sensor - use an entirely different measuring system (the amount of cooling on a heated wire) and these sensors measure air mass directly with no need to temperature or pressure compensate (at least on paper - I would not be surprised to find out that GM ECUs use some "fudge factors" to cover for where theory diverges from practice)
    Knowing the volume doesn't get you anywhere, since the number of air molecules in a given volume changes with temperature and pressure. If you know air volume, temperature and pressure though, you can get air mass. Air Mass can be used to determine the correct amount of fuel.

    This is one of the reasons for the closed loop feature of the ECU. Even with all the tables used to calculate air mass, your final number is only as good as the base number. Even a completely stock, perfect condition car will have varying fuel trims depending on the weather outside. You'll never ever have a perfect 0% trim under all weather conditions.

    Quote Originally Posted by DG
    The trims are less about weather as they are about engine wear and general chaos (in the mathematical sense). Remember that the reasoning behind closed loop fuel control is emissions. The manufacturers were forced to go closed-loop-control by increasingly tighter emissions standards over increasingly longer periods of time. As engines wear, build up carbon, spark plugs get weaker, injectors clog etc the calibration changes (slightly) and your emissions change accordingly. Closed loop allows the ECU to compensate for these drifts away from the mechanical state of the engine as it was delivered from the factory.

    Closed loop will also accomodate errors in your weather-related tables as well (and for tuners, your fuel tables) which is why I cheat like a bastard and run closed loop with a low lean-out authority and a high enrichen authority all the time (with a pair of wideband sensors), tweaking fuel tables to try and minimize the amount of O2 correction. The OEM, with a narrow band O2, can't cheat like this except on cells where it is supposed to be 14.7:1 so the weather based corrections are probably very good (thus the reason why I want to duplicate them)
    So how does the ECU calculate airflow? It starts with the MAF Size and the MAF Pulses. The larger the MAF size number, the more air the MAF can count (in the code, you must set this value according to the MAF you're actually running)

    AirCount = MAF Pulses Per RPM
    MAF Hz = MAF Pulses Per Second = AirCount/RPM

    Load is the term used for years as a number value to show how much air volume there is. More Load = More HP. So the object of the game is to get as much airflow in the motor as possible.

    Load quite simply is just Air_Count * MAF_Size / 65536. This is uncompensated Load (meaning Air Temp and Baro haven't been applied yet).

    Being able to read this number accurately is advantageous over the traditional boost gauge/butt dyno as you're able to see if your airflow numbers go up with each mod performed. When you get to the point where you keep raising the boost, but airflow isn't increasing, then you hit the limit of the efficiency of your turbos on your particular setup.


    Caution! There's a MAF Pulse Limitation in the code. This isn't a physical limitation of the MAF itself, just an issue where the ECU will stop adding fuel past a certain PPS (Pulse per second) due to a 1 byte limitation in memory. Beyond this limitation, the ECU will stop adding fuel so be forewarned.

    This limitation is 13.06 PPS or 319.7 grams of air/second (table is shown in the V2 xml). With a stock MAF, this is only about 450hp depending on which HP calculator you're using. This is coincidentally is about where the stock 3/S MAF also seems to run out of resolution. Thought that was interesting. Obviously the car is capable of making more power as people have been doing so for years by fooling the ECU into seeing less air with a piggyback.

    I'm not sure what this limitation is with an EVO MAF yet. The EVO MAF won't pulse as often for the same airflow as the stock 3/S MAF and I need more data to make an educated guess. Wouldn't be surprised if the limitation is double the stock 3/S MAF. If the demand requires I come up with a way around this limitation, I can, but for now, I'm not going to worry about it till we start seeing more big builds with the Flash ECU.

    AirFlowMAX = MAFLimit * AirTempComp * WaterTempComp

    *Note: These 2 comp tables are only used for calculating MAX airflow NOT engine load. Also note they are just set to 1 so they are disabled anyway.





    So that's airflow. Next the ECU calculates a MAF Correction value for the injectors during the IPW calculation. It does this using the MAF Scaling, Adder and VE tables. The MAF Smoothing table is just a way to measure the engines Volumetric Efficiency (VE).





    Changes to MAF Smoothing (VE) Table will produce large results relative to the value in the Scaling Table. So if you need to adjust the amount of fuel based on airflow, adjust the values in the VE table. It's kinda like an SAFC in a way only you're going off the actual MAF values instead of RPM. The higher the number in the VE table, the more fuel the ECU will use. Lower values = Less fuel.

    It's important to note that changes to your intake, innercoolers exhaust, head work, turbos... All this changes your particular engines VE and the MAF may not detect this change in airflow. This table is tuned for a 100% stock car. Something as simple as hard pre-turbo intake pipes can effect the readings from the MAF as more can sneak thru it without being detected.

    When tuning cars, I don't mess with the fuel injector size and latency values beyond setting up the values for whatever injectors is being used. Most people also tend to want to play with the fuel table too much during initial tuning, but if you get your VE table setup just right, the AFR value you see in the fuel table is what you'll get on the wideband.

    The fuel trims are handy for tuning this table. If your trims are increasing, add more to the VE table in that range to bring them back to 0. If your trims are negative, lower the numbers.




    Something interesting in the code is an idle correction factor during it's airflow calc process. Since at idle vacuum is so great, it causes an anomaly with the idle AFR in that the ECU will think there's a lot more air there than what's actually flowing thru the MAF. This correction is based off the idle switch and it works to differentiate the low fuel trim between idle and just low speed driving.

    When you install cams and vac is a lot less than stock, consider bringing up this idle correction factor a bit as it may cause too lean of an idle mixture (not that a lean idle is really is a bad thing).

    Discussion here: http://www.3sgto.org/f104/disassembl...ion-10345.html
    Last edited by Greg E; 01-01-2013 at 01:39 PM.

  10. #9
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Idle

    This was actually the most straight forward area of the disassembly. Too bad in Chrome V1 I had it all wrong.... Nearly all the tables I had listed in that XML didn't do what I thought. There were various flags I didn't understand at the time. Turns out the park/neutral switch was the trigger between each table set. With the P/N switch always being grounded on our cars (because of the MTX) only one set of tables were used and the target idle for the AC was just a single cell, not a whole RPM based 2D table.

    In V2, I made a couple branch tweaks so the code never uses the duplicate tables and I tweaked the target idle tables to incorporate the AC function based off RPM.

    Turns out, the ISC does quite a bit more than just handle idle. It's got a fixed position for start-up and it changes for cruising as well (suspect it's to help bring the RPMs down slower when you're off the gas changing gears). The starter and idle switch differentiate between the various ISC tables. Best to make sure both these switches work when doing a flash ECU swap. I've labeled the flag bits in EVOScan.




    There are 3 other temporary ISC bump up conditions. There's a minor bump up for when the AC is initialy turned on (which then tapers back to the AC ON conidtions), when the ABS is triggered and when you turn the steering wheel.




    The last thing I want to go over is the idle timing stability control area of the code. The ISC will get the airflow in the right range for your desired idle RPM but it's ignition timing which is used to keep the idle at the desired speed. You've probably noticed that at idle, your timing values are always inconsistent and constantly jumping around. This is why.

    There are two variables in the ROM which the code references. One is the sensitivity variable and the second is a max timing adjustment limiting variable.



    Not sure exactly what the sensitivity number translated to English means but I know that raising this value will increase the number of timing corrections per second and the timing limit is + or - 8 deg in the 99 ROM. This is how it's calculated:

    TimingCorrection = Sensitivity/64 * (TimingLimit / 500 * TargetIdleRPM - .256 * RPM)

    This Timing Correction value is added/taken away directly from the base ignition map. The timing corrections are applied afterwards.

    Now when you put the ECU into SAS mode, one of the things the code does is set the timing limit to 0 and fix the ignition timing to 5 deg so you can set the base idle with the BISS. This is one of the reasons why it's important to set the idle with SAS mode and not play with the BISS while the idle timing stability controller is active. You'll get inconsistent idle doing it that way.

    Discussion here: http://www.3sgto.org/f104/disassembly-idle-10352.html
    Last edited by Greg E; 01-01-2013 at 01:40 PM.

  11. #10
    I lack color... verified
    Feedback Score 1 (100%) Greg E's Avatar
    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,601
    Thanks
    104
    Thanked 500 Times in 242 Posts
    Timing

    There are 2 base ignition maps and 7 corrections after this initial map lookup (one is the idle sensitivity correction). Note that the idle/cruise area of these two base maps are about the same. Only reduction is under accel/boost. There used to be a correction table during warm up to help the cats heat up quicker, but I've eliminated this table and used the open memory for the BIG timing maps. This is why it's important you leave the cat warm up feature in periphery 0 switched off.





    Right after the base value is looked up, there are 3 trims. One is based off Engine Coolant Temp, another is Baro pressure and the last is Air Temp. The IAT and baro trims are disabled by default. Not pictured is the Load comp for the AIT trim which is also disabled.





    Next we have an initial brief timing reduction during acceleration and then there's an overall reduction factor applied above 100 engine load which is actually a percentage reduction when > 4000rpm. All this is to compensate for the sudden lean condition caused by the mad rush of air into the motor when you suddenly punch the throttle to avoid knock.




    We are all familiar with the timing reduction during knock safety feature of the ECU. Every count of knock reduces ignition timing by approx 1/3 of a degree. The max amount of ignition timing retard during knock is 10.4 degrees and can be edited if need be (although you should tune your motor well enough to never need this limit ).




    Also in this section are the ignition coil dwell tables. Jeff L from Stealth316 has the best description of how the coils work.

    Stealth 316 - Ignition Coils
    Stealth 316 - 3S Ignition System (DOHC)

    Quote Originally Posted by Jeff
    Energization Time Control
    The ECU controls the ignition coil primary current to achieve and then maintain a value of 6 amps. Using mapped values in memory, the ECU lengthens the energization time when the battery voltage is lower, and shortens the energization time when the battery voltage is higher. However, the ECU will not extend the energization time longer than 75% of the ignition interval. Each coil fires once every engine revolution and so the ignition interval is the time it takes for the engine to revolve once. Energization time is about 4 ms.
    There are 3 dwell tables in the code. First is the latency table (which functions very similar to injector latency), then there's correctoin factor based on an RPM switch (which is disabled) and finally that 75% dwell limit table.



    Discussion here: http://www.3sgto.org/f104/disassembl...bles-8069.html
    Last edited by Greg E; 01-01-2013 at 01:41 PM.

Page 1 of 3 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
The 3000GT/Stealth/GTO Web History Project
3000gt.com
3000GT / Stealth International WWWboard Archive
Jim's (RED3KGT) Reststop
3000GT/Stealth/GTO Information and Resources
Team 3S
3000GT / Stealth / GTO Information
daveblack.net
3000GT/Stealth/GTO Clubs and Groups
Michigan 3S
MInnesota 3S
Wisconsin 3S
Iowa, Nebraska, Kansas 3S
North California 3000GT/Stealth
United Society of 3S Owners
3000GT/Stealth/GTO Forums
3000GT/Stealth International
3000GT/Stealth/GTO Event Pages
3S National Gathering
East Coast Gathering
Upper Mid-West Gathering
Blue Ridge Gathering