Notices
ECU Flash

ignition timing trims

Thread Tools
 
Search this Thread
 
Old Dec 15, 2008, 08:48 AM
  #16  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
I'll have to look for these maps in my ROM. Where is the post for the cold ignition retard maps?

The only reason I am asking is because I am curious of those values...the first map above posted by mrfred shows 20* timing being added at 180 load, 4000RPM? That just doesn't make any sense to me, unless the retard maps are taking out something similar.


Eric
Old Dec 15, 2008, 08:50 AM
  #17  
EvoM Guru
Thread Starter
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
Originally Posted by travman
I wonder if that cold timing adder map is what is causing that weird rpm climb during cold conditions when first driving the car? The one that some of us experienced after disabling the cold ignition retard tables.
Possibly. I'm interested to hear how Dan's car runs when he zeros out the table.

Originally Posted by l2r99gst
I'll have to look for these maps in my ROM. Where is the post for the cold ignition retard maps?

The only reason I am asking is because I am curious of those values...the first map above posted by mrfred shows 20* timing being added at 180 load, 4000RPM? That just doesn't make any sense to me, unless the retard maps are taking out something similar.


Eric
There is some overlap between the advance and retard maps, but not at that location. That advance map is really wierd.
Old Dec 15, 2008, 09:52 AM
  #18  
Evolved Member
iTrader: (8)
 
03whitegsr's Avatar
 
Join Date: Nov 2006
Location: Utah
Posts: 4,001
Received 14 Likes on 12 Posts
If somebody could find these for 94170015, I'd be happy to try them out. It was -8C this morning here.

A table similar to this may explain why I can feel power bounce around so badly around 2500-3000 RPM and light load when the engine is cold. The car feels like dramatic ignition/fuel changes are taking place like a switch is being turned on and off in a random nature. Usually just giving it a touch of throttle makes the power consistent.

I'd be happy to zero these out and see how the car acts.
Old Dec 15, 2008, 10:11 AM
  #19  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
mrfred,

Quick question for you regarding disassembly, since I am still learning.

I noticed that this map in the 885 ROM starts with the same variable refences as the high octane ignition maps, ffff69d0 and ffff69d2. So, how do you know the locations for the axes and why are they different than the location from the high octane ignition maps?

I may have found this table for the 96940011 ROM, but I need to understand the axes lookups first. The map I found refences the same first variable but a different second compared to my high octane ignition map. My high octane ignition compared to this new map are:

ffff8880 ffff8882
ffff8880 ffff8886

I figured that since the first variable was the same (like your map), that the axis at least for that variable would be the same ast he high octane map, but based on your posting of the new table code, you chose new location addresses for the axes with different amount of elements.


Eric
Old Dec 15, 2008, 11:23 AM
  #20  
EvoM Guru
Thread Starter
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
FFFF69D0 and FFFF69D2 are both temporary variables that store the result of the axis lookup. The RAM variable that contains the input value (e.g., RPM or load) is just below that variable. For this table in the 88590015 ROM, the RPM axis table goes like: FFFF69D0 (stores axis lookup result), FFFF6B1E (input 2-byte RPM variable), 0x0B (11 axis values), and then axis data. Its the same setup for the load axis, but its a little tricky in this instance because the input RAM variable used for this lookup happens to be a temporary RAM variable. This is done in several places in the code. For this axis lookup, you'll see FFFF69D2 (stores axis lookup result), FFFF69CA (temporary RAM variable), 0x0E (14 values), and axis data.

Each ROM has its own temporary RAM variable for table lookups that it uses throughout the code when the programmers want to use a temporary RAM variable. For the 88590015, its FFFF69CA. At any rate, you need to look at the code to figure out what RAM variable goes into the temporary RAM input variable. You'll see r0 being written to FFFF69CA just before the table lookups. If you trace back (in this case, to the subroutine that is called just before r0 is written to FFFF69CA) to see what goes into r0, you'll see that its a 2-byte load value. This might sound daunting, but its not so bad once you know what to look for.

Last edited by mrfred; Dec 15, 2008 at 11:32 AM.
Old Dec 15, 2008, 11:25 AM
  #21  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
Thanks for the explanation.
Old Dec 15, 2008, 01:11 PM
  #22  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
OK, I *think* I found this first map in the 96940011 ROM. Maybe mrfred can verify for me. It looks a lot different than the 885590015 ROM, so I'm curious if this is the correct table.

Anyway, this is what I have, in case anyone wants to take a look:
Code:
<table name="Base Timing Trim vs Load and RPM" category="Timing" address="4c9d" type="3D" level="1" swapxy="true" scaling="Timing">
		<table name="Engine Load" address="65ae" type="X Axis" elements="14" scaling="Load"/>
		<table name="RPM" address="658e" type="Y Axis" elements="11" scaling="RPM"/>
</table>


Edit: Updated with correct address of 4c9d and updated screenshot
Attached Thumbnails ignition timing trims-timing-advance-based-coolant-multiplier.jpg  

Last edited by l2r99gst; Dec 15, 2008 at 05:18 PM.
Old Dec 15, 2008, 01:33 PM
  #23  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
I am in the same boat, still learning, but when some simple explanations are given it all clicks into place.

The "snapshot RPM" RAM locations I will have a look at. They may be heavily filtered rpm values used for stable target idle calculation. I am interested in what they do to get these values. There are a bunch of 1D points that look like max and min timing trim values for the stability subroutine I might have a play with. Having control over this can really improve idle with larger cammed motors.
Old Dec 15, 2008, 01:34 PM
  #24  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
Also, if I have the multiplier table correct, it's a little different too:

Code:
<table name="Base Timing Trim vs Load and RPM Multiplier vs CTS" category="Timing" address="4d3e" type="2D" level="1" scaling="Scale128">
  		<table name="Coolant Temp" address="5d96" type="Y Axis" elements="8" scaling="Temp"/>
	</table>
Attached Images  
Old Dec 15, 2008, 01:45 PM
  #25  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
I think you are both off in your 3D map addresses by 1. The first number in the map is not part of the map itself, as it is for other 3D maps (seems to be more of a Y axis size indication). Move forward by one and it looks correct.
Old Dec 15, 2008, 01:49 PM
  #26  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
Here are the IAT ignition retard maps for 96940011. I scaled some of my maps to degrees F, since I'm more used to that. I did that for this map, for example, so I will include that scaling for you here as well (you may have to change the endian values depending on your ECUFlash version):

Code:
<scaling name="TempF" units="F" toexpr="1.8*x-40" frexpr="(x+40)/1.8" format="%.01f" min="-40" max="419" inc="1" storagetype="uint16" endian="little"/>

<table name="Ignition Retard vs Air Temp - above certain load" category="Timing" address="388a" type="2D" level="2" scaling="TimingTrim8">
		<table name="Air Temp" address="5ec8" type="X Axis" elements="8" scaling="TempF"/>
	</table>

	<table name="Min Load for Ignition Retard vs Air Temp" category="Timing" address="38a4" type="2D" level="1" scaling="Load8">
  		<table name="Engine Speed" address="594e" type="Y Axis" elements="10" scaling="RPM"/>
	</table>

Attached Thumbnails ignition timing trims-ignition-retard-vs-iat.jpg  
Attached Images  

Last edited by l2r99gst; Dec 15, 2008 at 01:55 PM.
Old Dec 15, 2008, 01:51 PM
  #27  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
Originally Posted by Mattjin
I think you are both off in your 3D map addresses by 1. The first number in the map is not part of the map itself, as it is for other 3D maps (seems to be more of a Y axis size indication). Move forward by one and it looks correct.
I don't know enough to know if that 11 is part of the map or not. I'll let mrfred handle looking into that and I will update my post if necessary. I'm not even 100% certain if the maps are correct yet, either, so I will update everything once mrfred has a chance to verify.
Old Dec 15, 2008, 01:54 PM
  #28  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
They are the same maps from what I can see, but change the address to 4c9d and the map will be correct. It is the same as for any of the other 3D ignition maps. Go back one number in any of your 3D timing tables and you will see the same thing. The same map is in my rom but it is zeroed by dafault, and also has an 11 as the first number. Not only that, but you are missing the last digit of your map :-)

Last edited by Mattjin; Dec 15, 2008 at 02:03 PM.
Old Dec 15, 2008, 01:58 PM
  #29  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
Originally Posted by Mattjin
They are the same maps from what I can see, but change the address to 4c9d and the map will be correct. It is the same as for any of the other 3D ignition maps. Go back one number in any of your 3D timing tables and you will see the same thing.
Yep, it does look a lot better. Groups the numbers a bit better. I'll update my post in a bit.
Old Dec 15, 2008, 04:19 PM
  #30  
EvoM Guru
Thread Starter
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
Originally Posted by Mattjin
They are the same maps from what I can see, but change the address to 4c9d and the map will be correct. It is the same as for any of the other 3D ignition maps. Go back one number in any of your 3D timing tables and you will see the same thing. The same map is in my rom but it is zeroed by dafault, and also has an 11 as the first number. Not only that, but you are missing the last digit of your map :-)
You're right. I never noticed that with 3D maps. The first number after the RAM variables appears to be the number of columns in the table. Updating my first post now...


Quick Reply: ignition timing trims



All times are GMT -7. The time now is 03:27 AM.