Bench timing vs. on-the-car timing

ijames

Active Member
Joined
Jun 1, 2001
Wanted to post the results of some timing tests that Dave and I just finished. First some intro, then the tests, then the discussion :). Dave has been making measurements on a bench, looking at the time delays between crank senor and est events, to directly measure the ignition timing. His data contains two surprises: the timing can be many degrees higher than the chip commands, and the timing generally increases with rpm above the maximum rpm in the main timing map (4800). This increase is over 10 deg in some chips, for a total timing of 30-40 deg at 6000 rpm in some chips where the timing map indicates a maximum advance of 22-24 deg. For more on Dave's tests, see http://www.turbobuick.com/forums/showthread.php?threadid=46755&referrerid=746 . This is drastically different from what we believe the result will be when we set a timing value in the chip, and I wanted to determine what the actual relationship between chip and spark is on my car.

To investigate this, I made a chip from the stock image that came in my 86 ttype with some changes. The injector constant is set to 75.25 lb/hr so I can run it (I have 72's). The entire main timing table has been set to 20 deg ($57), the coolant bias table has been set to 15.12 deg which cancels the base bias value for a net of zero, the WOT spark table set to 20 deg, the MAT advance correction table left at zeros, the tcc locked correction table left at zeros, the burst knock retard set to zero, highway mode advance table set to zeros, boost spark left at zero, P/N advance left at zero, and all the spark decays left alone. Just for grins I left the ALDL advance increment at $316D set at 8 degrees since the ecm will not be in ALDL mode during this test, but every other advance-related parameter was set so that the timing would be 20 deg at all times. The checksum is $A221 if you want to recreate this and verify it. Dave burned a chip with this image and tested it in his bench setup, with these results:

MAT=80* Engine Temp=190*
TPS=4.8v Speed =30 MPH
LV8=255 MAF=255

RPM Actual Timing Prom Timing

800 20.7 20
1000 20.9 20
1200 21.0 20
1400 21.1 20
1600 21.4 20
1800 21.5 20
2000 21.7 20
2200 21.9 20
2400 22.3 20
2800 22.3 20
3200 22.6 20
3600 23.1 20
4000 23.3 20
4400 23.7 20
4800 24.2 20
5000 24.5
5500 24.8
6000 25.4
7000 25.7
8000 27.1

Next, I ran this chip on my car while checking the timing with a SnapOn timing delay light set to 40 deg (divide by two for waste spark so 20 deg) to bring the timing mark to zero on the timing tab. Idling it was about 1 deg off, showing 21 deg, so there's a little slop somewhere between crank sensor, balancer keyway, and timing chain. DirectScan showed the advance to be over 23 deg at startup but this decayed to 20 in about a minute, and the advance was exactly 20 the rest of the time the engine was running. Coolant temperature was about 165 deg F at the start and 200 at the end. My estimate is that I should be able to see a change of 0.5 deg. Revving up in park the timing dropped 5-6 deg for less than a second and then was rock steady exactly at 21 deg all the way to the rev limiter at 5600 rpm. LV8 got as high as about 65-75, and the tps was under 3 V. Took about 2-3 seconds to go from idle to 5600. Repeated with a little less tps and stopped at 4600, with the same result. Second test was to brake torque up in gear. Here I got to about 3400 rpm and lv8 was 255 from 2400 or so on up, with tps again between 2 and 3.5 V. Boost peaked at about 12 psi with no tire spin. Spoolup was typical for my car, about 3-4 seconds to go from idle to 12 psi, and I held it there for another couple of seconds. Again, timing was rock steady at 21 deg by the light and 20 by DS.

Okay, that's the raw data, now for the discussion. I would have easily seen a change of 5 deg going from idle to 5600 rpm in park and I saw no change. This covers most of the rpm range but lv8 is lower than in Dave's case. The boost test gets lv8 up to 255 as in Dave's case but the rpms only go up to 3400. However, again, I would have seen a 3 deg change. DS showed that the commanded advance was 20 deg no matter what the tps, coolant, rpm, and lv8 readings were, so I am satisfied that I would have seen the change Dave did if it occurred. There was also no evidence of jitter greater than 0.5 deg. I don't know why the timing dropped for a second because the bkr retard was set to zero, but after that first second the timing was steady back at 21 deg indicated. My conclusion from all of this is that the spark advance at the plug is what the chip commands it to be, with no extra advance over 4800 rpm. I have no evidence of the behavior over 6400 rpm where the rpm value in the ecm overflows.
 
Good points!!!

What the folks have to remember (ESPECIALLY those that are running Translator +), is that DS is always going to display the commanded timing in the main table. No matter what is ending up at the spark plugs, DS, because of the data bytes being accessed is displaying main spark table values only, ever.
 
Originally posted by TurboDave
Good points!!!

What the folks have to remember (ESPECIALLY those that are running Translator +), is that DS is always going to display the commanded timing in the main table. No matter what is ending up at the spark plugs, DS, because of the data bytes being accessed is displaying main spark table values only, ever.


WHAT?
I was sure DS was looking at the final timing computation, stored in RAM. How would a Translator change a RAM location in the ecm?.
DS won't reflect the Translator Plus corrections, but that's to be expected, since the Translator doesn't effect the code.
 
I want everybody to give Carl a pat on the back for discovering a mistake I made in measuring the timing. Carl had done some testing on his car, so I had to do the same testing, plus a little more investigation. Here is what I found. That thing called time domain correction at address 3164 is a correction to the rpm signal directly and not the est signal (est signal indirectly). Apparently there is a delay with the hall effect sensor and the crank sensor slots. I had always suspected that there may be a delay with the sensor, but at the time had no way to really check it. Come to find out now, that there was a simple way to check it. The docs say there is a 198 us correction. From the data I took, I found a 142 us correction. Now, for all the data I took, in order to correct to correct what was posted as actual timing, use this formula:

Real engine timing = Actual timing(from data) - (142 us*RPM) / .166

Example:

real engine timing = 24.2 - (142e-6 * 4800)/.166

real engine timing = 24.2 - (.,6816)/.166

real engine timing = 24.2 - 4.1

real engine timing = 20.1*

All of you who have the data I posted need to correct those actual timing numbers. There is one good thing about this though, is that the interface I made to read the timing, the software can be adjusted to account for this delay. Even though my scope will read a bit different. So now the timing I read will reflect that delay. I will also have to modify my datalogger software also.

So yes I made a mistake. But the real issue here is *correlation*. Thanks to Carl we have correlation. I hope I didn't ruffle your feathers in our private emails:eek:

I sure hope everybody reads this and understands what happened. Carl is the *man*, not me.

Carl, a big thanks to you buddy.

Dave
 
Aw, shucks, gee :). Neither one of us is more or less "the man" than the other. That's how science gets done - communication and lots of independent control experiments. I'm glad we worked out what the discrepancy was, so that now we have a better understanding and you have a more useful tool on your bench.
 
Originally posted by bruce



WHAT?
I was sure DS was looking at the final timing computation, stored in RAM. How would a Translator change a RAM location in the ecm?.
DS won't reflect the Translator Plus corrections, but that's to be expected, since the Translator doesn't effect the code.

No not really. Take a look at a car running a Thrasher, compared to any other chip. DS displays what's in the main timing table, even when the Thrasher is installed. The Thrasher has used some unique tricks, and if you look at max load timing in the main table, the numbers are INSANE high, but the car runs as though things are normal.
It's hard for a simpleton like me to explain, but if you look in a typical Thrasher "street" chip, you'll notice the max load timing in the main table is up in the mid 30's :eek:

But through some unique tricks in the 15E, 15F, and 160 locations, the timing in the main table is bumped up and extra 15 degrees or so, but the engine is actually getting real world numbers closer 18-19 max load timing (sane).


The Translator doesn't change a ram location, that's why you can't see the changes you make with T+ on the DS
 
Actually, I think DS includes most corrections in the timing it shows. I think it does the math itself but that's my speculation. For example, you can see the startup advance decay down to the main table, you see the highway spark addition, I think you see the tcc retard included in the advance that it reports. So far as I know you don't see the esc retard or bkr retard. My guess is that he just assumed that no one would change the base offset of the main table.
 
In looking back at some old DS files, I think your right Carl. I stand corrected.
I have been able to confirm main spark, tcc retard, and highway mode advance.

I've also confirmed that knock retard is not shown being removed from the advance (advance does not drop by the retard amount), nor is burst knock retard.
 
Forgot to add that I don't know if the base offset of the other tables that have one (like tcc retard) is read from the eprom or assumed by DS, so while it includes those in the displayed advance I don't know for sure if it's correct in a chip that changes the base offsets. This is kind of nit-picking since the only commercial chip that I know of that changes these offsets is the Thrasher, but I do wish Kent had got it "right" :D .
 
From Gomer,
your answers are in part here.
When you talking ecm code, you have several cases of timing and retard, and they at times don't match what you would normally think of. ie PE and nonPE knock retard are not considered as being an advance. While TCC retard is.
So if you want to read advance you look at one RAM location,
PE retard, another.
Non PE retard, another.
I would imagine that it's for things like the WG DC cut that they keep the PE retard seperate for doing that calc.

I edited this just to make it more understandable. But left in enough for you to see all is not as it appears.

* SUM THE ADVANCES *
SUMADV LDAA #0
ADDB TEMP+7 SUM THE ADVANCES;
ADCA #0 SAP = SAMAIN + SAALDL+ SAHM -KCTBIAS
ADDB TEMP+6 -SRHR + SATC + SATI - KATSBIAS + ATSSPK
ADDB TEMP+5
ADDB KSAALDL
ADDB SATI
SUBB KCTBIAS
SUBB K ATSBIAS
SUBB TEMP+4
SUBB TEMP+3
LDAA MCUINST IN PARK/NEUTRAL?
BCC STDADV NO- BRANCH
ADDD KPNSPK YES- ADD IN P/N SPARK ADVANCE
STDADV STD SAP SAP SCALED 8
BPL SUBREF
JSR $5809 THUMBSUB
SUBREF LDD SAP SAREF = SAP -REFANGL;
SUBB KREFANGL
SBCA #0
STD SAREF

Golllllyyyyy
 
Great stuff you guys! Like my wife always says "keep it up".

I do have a timing question just out of curiosity. Is the cam sensor output a square wave like the crank sensor? If not, what is the pulse width?

Also, does anyone know why 25* ATDC for #1 was picked as the reference point for the cam signal?
 
Top