Notices
ECU Flash

does the Evo 1-9 adjust timing to fractions of a degree?

Thread Tools
 
Search this Thread
 
Old Dec 16, 2009 | 04:07 PM
  #16  
l2r99gst's Avatar
Evolved Member
iTrader: (2)
 
Joined: Mar 2004
Posts: 3,499
Likes: 4
From: CA
OK, mrfred, I have some data for you. I am about to run out the door to do some errands, so it will be a couple hours, but I will post it up.

It's actually pretty funny. I haven't had time to tune my bigmaps yet, and with the cold weather, I was hitting about 350 load (overrunning my 1.3 loadfactor) and getting into areas of -7 degrees of ignition. On top of that, or maybe the cause of, I was getting some misfires.

But anyway, I will post up some cruising and some knock areas. Any particular things you want in the log? This is what you get to choose from:

load1byte
RPM
knock
ign
ffff8c17
mat
coolant
wideband
map
tps
Reply
Old Dec 16, 2009 | 04:59 PM
  #17  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Originally Posted by l2r99gst
...

But anyway, I will post up some cruising and some knock areas. Any particular things you want in the log? This is what you get to choose from:

load1byte
RPM
knock
ign
ffff8c17
mat
coolant
wideband
map
tps
The first five should be good. It gets a little hard to digest when there are too many things on the plot. Thanks.
Reply
Old Dec 16, 2009 | 05:29 PM
  #18  
l2r99gst's Avatar
Evolved Member
iTrader: (2)
 
Joined: Mar 2004
Posts: 3,499
Likes: 4
From: CA
OK, I will include one screenshot of a log in LogWorks for illustration, but since I know you like to look at and graph data in Excel sometimes, I will simply post some snippets of the log below as well:

1. This is a maybe 30s after starting the car, warming up:

PHP Code:
load    RPM   knock  ign   8c17-calc  8c17 
33.8    1375    0    18    18.8125    162 
33.8    1375    0    19    18.8125    162 
33.8    1344    0    19    18.8125    162 
33.8    1344    0    19    18.8125    162 
33.8    1344    0    19    18.8125    162 
33.8    1344    0    19    17.7578125 165 
33.8    1312    0    18    17.7578125 165 
35.1    1312    0    19    17.7578125 165 
33.8    1312    0    18    17.7578125 165 
35.1    1312    0    19    18.8125    162 
35.1    1312    0    19    18.8125    162 
35.1    1312    0    17    16.703125  168 
35.1    1281    0    19    18.8125    162 
35.1    1281    0    19    17.7578125 165 
36.4    1281    0    18    17.7578125 165 
36.4    1250    0    17    16.703125  168 
36.4    1250    0    17    16.703125  168 
36.4    1250    0    17    16.703125  168 
39      1188    0    18    17.7578125 165 
39      1188    0    18    17.7578125 165 
39      1156    0    21    20.921875  156 
40.3    1156    0    21    20.921875  156 
39      1156    0    21    20.921875  156 
40.3    1125    0    21    20.921875  156 
40.3    1125    0    21    20.921875  156 
40.3    1156    0    21    20.921875  156 
39      1156    0    21    19.8671875 159 
39      1156    0    21    20.921875  156 
40.3    1156    0    21    20.921875  156 
40.3    1156    0    21    20.921875  156 
40.3    1156    0    21    20.921875  156 
40.3    1188    0    20    18.8125    162 
39      1188    0    19    17.7578125 165 
39      1156    0    20    19.8671875 159 
40.3    1188    0    20    19.8671875 159 
40.3    1188    0    19    19.8671875 159 
39      1188    0    17    16.703125  168 
40.3    1188    0    19    18.8125    162 
39      1188    0    17    17.7578125 165 
2. Idling at the end of the log, warmed up, before I shut the car off:
PHP Code:
load    RPM knock  ign   8c17-calc    8c17 
31.2    875    0    9    8.6171875    191
31.2    844    0    10    9.671875    188
29.9    875    0    6    5.8046875    199
31.2    844    0    9    8.6171875    191
31.2    844    0    11    9.671875    188
31.2    875    0    6    5.8046875    199
31.2    844    0    6    7.9140625    193
31.2    844    0    9    8.6171875    191
31.2    875    0    7    4.75         202
31.2    844    0    7    6.859375     196
31.2    875    0    6    5.8046875    199
31.2    844    0    4    4.75         202
31.2    844    0    6    5.8046875    199
32.5    812    0    7    9.671875     188
32.5    812    0    10    9.671875    188
32.5    844    0    10    9.671875    188
32.5    844    0    7    3.6953125    205
32.5    875    0    4    3.6953125    205
31.2    844    0    4    4.75         202
32.5    844    0    9    8.6171875    191
32.5    844    0    9    8.6171875    191
32.5    875    0    8    3.6953125    205
31.2    906    0    2    1.9375       210
31.2    906    0    2    1.9375       210
29.9    875    0    4    3.6953125    205
31.2    875    0    7    5.8046875    199
31.2    875    0    6    5.8046875    199
29.9    906    0    5    2.640625     208
31.2    875    0    3    2.640625     208
29.9    875    0    6    5.8046875    199
29.9    875    0    9    8.6171875    191
29.9    875    0    8    7.9140625    193
29.9    906    0    5    4.75         202
29.9    906    0    4    4.75         202
29.9    875    0    5    7.9140625    193
31.2    844    0    9    8.6171875    191
31.2    875    0    11   8.6171875    191
31.2    875    0    8    7.9140625    193
29.9    875    0    4    3.6953125    205
29.9    875    0    5    4.75         202
29.9    875    0    7    6.859375     196
29.9    844    0    11   10.7265625   185
31.2    875    0    10   7.9140625    193
31.2    875    0    6    5.8046875    199 
3. Some knock. I was going over the 1.3 loadfactor here, so the small loadnumbers are areas over 331 load. I had some misfires here as well. The very negative timing is because I am hitting areas of the bigmap that I haven't had a chance to tune yet:
PHP Code:
load     RPM    knock  ign  8c17-calc     8c17 
195      3094    1     3    3.34375       206
213.2    3125    1     2    2.2890625     209
232.7    3188    1    -1    -0.5234375    217
257.4    3250    1    -3    -2.6328125    223
286      3312    1    -2    -1.578125     220
309.4    3375    2    -3    -4.0390625    227
2.6      3438    2    -5    -4.7421875    229
28.6     3469    3    -8    -8.2578125    239
22.1     3594    3    -7    -7.203125     236
6.5      3625    3    -6    -6.1484375    233
16.9     3750    3    -5    -5.796875     232
261.3    3781    6    -3    2.640625      208
28.6     3812    6    -6    -7.203125     236
39       3969    6    -9    -5.4453125    231
269.1    4094    5    -1    -1.9296875    221
330.2    4000    5    -4    -4.0390625    227
0        4250    4    -3    -2.6328125    223
323.7    4219    4    -2    -1.578125     220
315.9    4312    3    -1    -1.2265625    219
315.9    4406    2     0    0.1796875     215
317.2    4594    2     0    0.1796875     215
317.2    4656    1     1    0.53125       214
312      4781    0     2    1.9375        210
308.1    5000    0     3    2.640625      208
308.1    5031    0     3    2.640625      208
301.6    5156    0     3    2.640625      208 
4. A quick, clean 2nd gear pull:
PHP Code:
load     RPM   knock  ign   8c17-calc    8c17 
149.5    3000    0    10    9.671875     188
158.6    3094    0    8     7.9140625    193
172.9    3156    0    8     7.9140625    193
183.3    3281    0    9     8.6171875    191
197.6    3344    0    7     6.859375     196
217.1    3469    0    6     5.8046875    199
247      3562    0    2     1.9375       210
283.4    3656    0    1     0.8828125    213
304.2    3844    0    2     1.9375       210
319.8    4000    0    1     0.8828125    213
328.9    4062    0    0     -0.171875    216
319.8    4344    0    2     1.9375       210
306.8    4500    0    4     3.6953125    205
309.4    4625    0    4     2.640625     208
313.3    4844    0    4     3.6953125    205
305.5    5000    0    5     4.75         202
300.3    5125    0    5     4.75         202
291.2    5344    0    7     6.859375     196
284.7    5406    0    8     8.6171875    191
271.7    5688    0    9     8.6171875    191
273      5719    0    9     8.6171875    191
265.2    5969    0    10    9.671875     188
260      6062    0    10    9.671875     188
257.4    6156    0    10    9.671875     188
250.9    6375    0    11    11.78125     182
247      6469    0    12    11.78125     182
241.8    6625    0    13    12.8359375   179
236.6    6719    0    14    13.890625    176 
Forget the screenshots of the log. You can get the gist of it from the snippets.

The 8c17 does seem to follow 1 degree increments, jumping about 3 or so per degree change. During the knock you can see different jumps, so I think fractions of timing are being pulled.

Last edited by l2r99gst; Dec 16, 2009 at 06:43 PM.
Reply
Old Dec 16, 2009 | 05:49 PM
  #19  
R/TErnie's Avatar
Evolved Member
iTrader: (32)
 
Joined: Aug 2003
Posts: 5,380
Likes: 6
From: WAR EAGLE!
nice work guys!
Reply
Old Dec 16, 2009 | 06:04 PM
  #20  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Looks like there are a few decrepancies between IgnMUT and IgnECU. I wonder if its just lag getting values to DMA, knock that wasn't recorded, or something else happening. If the differences aren't due to any logging issue, then the most interesting bit of data is where IgnMUT reads -9 deg, but IgnECU reads -5.4 deg in the third snippet. That could be the ignition retard limit in action.
Reply
Old Dec 16, 2009 | 06:11 PM
  #21  
l2r99gst's Avatar
Evolved Member
iTrader: (2)
 
Joined: Mar 2004
Posts: 3,499
Likes: 4
From: CA
I looked at another part of the log that just had 1 knock count during a steady cruise.

22 deg of timing both times in the logger, but 8c17 was 155 with the 1 count of knock and 154 with 0 knock, coming out to 21.273* and 21.625*, respectively.

So, it does indeed look like knock is pulling fractions of a degree (90/256).

Last edited by l2r99gst; Dec 16, 2009 at 06:45 PM.
Reply
Old Dec 16, 2009 | 06:13 PM
  #22  
l2r99gst's Avatar
Evolved Member
iTrader: (2)
 
Joined: Mar 2004
Posts: 3,499
Likes: 4
From: CA
Originally Posted by mrfred
Looks like there are a few decrepancies between IgnMUT and IgnECU. I wonder if its just lag getting values to DMA, knock that wasn't recorded, or something else happening. If the differences aren't due to any logging issue, then the most interesting bit of data is where IgnMUT reads -9 deg, but IgnECU reads -5.4 deg in the third snippet. That could be the ignition retard limit in action.
I personally think it's a timing issue because in my actual log, 8c17 is the last thing being logged and ignition is maybe the third thing. So about 8 other things are in between. Also, I'm using my latest revision of livemap that isn't that efficient, so I think that may have something to do with it (a lot of labels and single threading, etc, slowed it down a lot). These logs are only at about 143 samples/sec.

Plus that third snippet was misfiring, etc...running in very negative areas of the untuned map, as you can tell. So, a lot was going on pretty quickly. This was at about 33 psi.

Last edited by l2r99gst; Dec 16, 2009 at 06:23 PM.
Reply
Old Dec 16, 2009 | 09:48 PM
  #23  
acamus's Avatar
Evolved Member
 
Joined: Mar 2008
Posts: 730
Likes: 3
From: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
Now that we verified that math is correct, my question would be, how many sensor ticks/pulses come within one degree of rotation, so we know what granularity of degree we can go with. Basically we need to count number of pulses from spark to spark or tdc to tdc would be even better.
Reply
Old Dec 16, 2009 | 10:12 PM
  #24  
R/TErnie's Avatar
Evolved Member
iTrader: (32)
 
Joined: Aug 2003
Posts: 5,380
Likes: 6
From: WAR EAGLE!
you will have several degrees of rotation between each rising/falling edge of the crankshaft position sensor.... It recalculates the engine speed every pulse using it's last pulse as a time reference.
Reply
Old Dec 16, 2009 | 10:23 PM
  #25  
acamus's Avatar
Evolved Member
 
Joined: Mar 2008
Posts: 730
Likes: 3
From: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
Ok, so if I understand it rigth the granularity is at oscillator crystal ticks / prescaled timers, having sensor pulses as synchronization frames?

Last edited by acamus; Dec 16, 2009 at 10:26 PM.
Reply
Old Dec 16, 2009 | 10:31 PM
  #26  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Originally Posted by acamus
Now that we verified that math is correct, my question would be, how many sensor ticks/pulses come within one degree of rotation, so we know what granularity of degree we can go with. Basically we need to count number of pulses from spark to spark or tdc to tdc would be even better.
Do you mean the CAS?
Reply
Old Dec 16, 2009 | 10:40 PM
  #27  
acamus's Avatar
Evolved Member
 
Joined: Mar 2008
Posts: 730
Likes: 3
From: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
Yes, crankshaft sensor, I do not believe that camshaft pulses are used for this purpose.
Reply
Old Dec 16, 2009 | 10:47 PM
  #28  
R/TErnie's Avatar
Evolved Member
iTrader: (32)
 
Joined: Aug 2003
Posts: 5,380
Likes: 6
From: WAR EAGLE!
Originally Posted by acamus
Ok, so if I understand it rigth the granularity is at oscillator crystal ticks / prescaled timers, having sensor pulses as synchronization frames?
the crankshaft position sensor should output a square wave to the ECU...the ECU could possibly use the rising edge or falling edge of the signal (i would tend to think it would use the rising edge) to figure out engine speed.

The camshaft position sensor is typically used to help the ECU reference where the engine is in crank angle. So when the ECU sees the camshaft position sensor output it knows that the engine is x degrees before TDC at an engine speed of xxxxRPM... it can then can convert from radians to usec's how long it needs to wait to fire the coils. I can only assume that the time delay from the camshaft position sensor is updated by each rising edge of the crankshaft as a confirmation to the amount of time between each rising edge.

The ECU probably knows that for every rising edge of the crankshaft it's travelled some amount of crank degrees... so it ***MIGHT*** for example be like this.

(CA=Crank angle)
The camshaft rising edge happens 40CA degrees BTDC. The ECU knows that there are 8CA degrees per rising edge on the crankshaft. For the given engine speed and load the ECU calculates the Timing Advance(what mr fred just did) let's say it's 23 degrees BTDC. That means the engine has 17CA degrees until it needs to fire the ignition coils. 17/8 is 2.125... Therefore the ECU knows it needs to wait 2 rising edge pulses from the crankshaft position sensor...and then use the calculated engine sped to convert the radians to usec's for 1 degree of crankangle... and then FIRE.

To reiterate... this probably isn't how the stock ecu does this, but this may give some of you C0DE N3RDS some insight. I'm sure Mr. Fred has disassembled this.
Reply
Old Dec 16, 2009 | 10:52 PM
  #29  
Ceddy's Avatar
Evolving Member
 
Joined: Apr 2008
Posts: 265
Likes: 1
From: Reading, PA
Originally Posted by acamus
Now that we verified that math is correct, my question would be, how many sensor ticks/pulses come within one degree of rotation, so we know what granularity of degree we can go with. Basically we need to count number of pulses from spark to spark or tdc to tdc would be even better.
does the Evo 1-9 adjust timing to fractions of a degree?-caswave.jpg

Four CAS WaveForms per CAM rotation.


Timing granularity is 360 x 90/255 per rotation, I think.




Edit x2:
Do the Evo8+ have word sized 3d map lookups and interpolation routines?
The earlier ecus only have byte sized lookups, so it would be really hard to fractional degree timing maps.

Last edited by Ceddy; May 13, 2010 at 03:37 PM.
Reply
Old Dec 16, 2009 | 10:56 PM
  #30  
R/TErnie's Avatar
Evolved Member
iTrader: (32)
 
Joined: Aug 2003
Posts: 5,380
Likes: 6
From: WAR EAGLE!
So much clarity with so few words...
Reply



All times are GMT -7. The time now is 07:59 PM.