Results 1 to 12 of 12

Thread: Spark Advance Clarification

  1. #1
    Fuel Injected!
    Join Date
    Jan 2018
    Posts
    41

    Spark Advance Clarification

    I'm seeking some clarification hoping someone can explain what I am seeing via my datalog. Trying to dial in the spark, as in some ranges I have heard audible pinging, I have reduced timing in virtually all areas of the table, and based on everything I've read I have a fairly conservative table with maximum advance being right around 31°.

    All this said, when reviewing my datalog, it would appear I am only actually seeing about ~21° of advance which I am sure is killing power.

    I have a knock sensor that I need to change, and as a result I have tuned out burst knock retard in the bin (set the enable temp to 151°C) and also temporarily disabled the error flag 43 that it is causing. I have also since identified that the knocking I have seen appears to be higher in the range in the table, around 90 kPa and 2000-2400 RPM, so I will target that area and reduce timing slightly in order to get the pinging to stop. I'm thinking maybe this could still be the source of my issues? It's hopefully getting replaced this weekend, but I need to find time to do it.

    Mainly, I am absolutely lost as to understanding why the history average isn't even really close to the table and hoping someone with more knowledge than me can help me understand what is going on here.

    Attached image shows log history vs the timing table I was running. BIN and datalog also attached.
    Attached Images Attached Images
    Attached Files Attached Files

  2. #2
    Fuel Injected! ralmo94's Avatar
    Join Date
    Feb 2020
    Posts
    769
    I am sure there are a lot of others more qualified to help you with this, but what I would try is Looking at the spark bias tables. It's my understanding, that those allow the PCM to deviate that amount from the main spark table. Reason is, a hot engine will tolerate different timing than a cold engine, same with elevation

    I did download your bin and datalog.

    I see in the datalog you posted, that you still have the knock error and ignition error. I don't know how true it is, but I have read that if there is a problem with the knock circuit, it will retard the timing about 10 deg. I also have read that they advance until knock to test for functioning sensor. I would start with the bias if it was mine.

    Hope that helps
    Attached Images Attached Images

  3. #3
    Fuel Injected! ralmo94's Avatar
    Join Date
    Feb 2020
    Posts
    769
    Wanted to let you know i changed the spark bias in my tune and it skrewed things up big time!! I wouldn''t recommend it !!
    I believe that is a value that is based on other tables. The XDf I was using said it is automatically accounted for.

    But there are other tables that account for it being adaptive. I noticed mine even has one for low octane retard. I am in the process of trying to get mine to stay possitive it keeps retarding. I messed with a few things on mine, and ended up with it locked at 12 deg. Don't want to hijack your thread, but id like mine to run what is in the main table also. Seems a lot easier to accomplish with h p tuners.

  4. #4
    Fuel Injected!
    Join Date
    Apr 2012
    Location
    Mt. Airy, MD
    Posts
    51
    You need to fix your issues before you tune. You wouldnt try to bake brownies with messed up eggs or milk would you?
    The table bias allows the ecm to calculate a negative value for ignition advance. It cannot do it in the main table as multiples of a negative always result in a negative. the bias value is a filter at the end of the spark calc that retards that amount. That's why when you set it to 0 it added 20 degrees to everything else. (just like you saw in the vette bin file...) you drive on it too long you WILL knock the rod bearings out of it. Seriously stop 'tuning" until all your error codes are resolved.

  5. #5
    Fuel Injected! ralmo94's Avatar
    Join Date
    Feb 2020
    Posts
    769
    Quote Originally Posted by bgott View Post
    I'm seeking some clarification hoping someone can explain what I am seeing via my datalog. Trying to dial in the spark, as in some ranges I have heard audible pinging, I have reduced timing in virtually all areas of the table, and based on everything I've read I have a fairly conservative table with maximum advance being right around 31°.

    All this said, when reviewing my datalog, it would appear I am only actually seeing about ~21° of advance which I am sure is killing power.

    I have a knock sensor that I need to change, and as a result I have tuned out burst knock retard in the bin (set the enable temp to 151°C) and also temporarily disabled the error flag 43 that it is causing. I have also since identified that the knocking I have seen appears to be higher in the range in the table, around 90 kPa and 2000-2400 RPM, so I will target that area and reduce timing slightly in order to get the pinging to stop. I'm thinking maybe this could still be the source of my issues? It's hopefully getting replaced this weekend, but I need to find time to do it.

    Mainly, I am absolutely lost as to understanding why the history average isn't even really close to the table and hoping someone with more knowledge than me can help me understand what is going on here.

    Attached image shows log history vs the timing table I was running. BIN and datalog also attached.
    Are you planning on running with a knock sensor, or without? If you hear audible ping, that needs fixed. If you're ve tables are off that can cause that also.

    The main thing that was keeping mine from running what was in the main table was altitude bias. But if you have audible ping at 10 deg, and you add another 10 by actually getting what is in the table, you are asking for trouble. If you plan to run a knock sensor, you need to get it in line before you use it to tune. You need to get be close before you tune spark, lean spots can cause ping, knock can cause rich spots.

  6. #6
    Fuel Injected! 84Elky's Avatar
    Join Date
    Jul 2012
    Location
    Montgomery, AL
    Posts
    204
    Attached image shows log history vs the timing table I was running. BIN and datalog also attached.
    Any chance you could post the ADX file used to create the XDL log you posted. When I export the XDL to .csv with my $0D ADX, the data does not make sense.

  7. #7
    Fuel Injected! 84Elky's Avatar
    Join Date
    Jul 2012
    Location
    Montgomery, AL
    Posts
    204
    Quote Originally Posted by 84Elky View Post
    Any chance you could post the ADX file used to create the XDL log you posted. When I export the XDL to .csv with my $0D ADX, the data does not make sense.
    Bump?

  8. #8
    Fuel Injected!
    Join Date
    Jan 2018
    Posts
    41
    Quote Originally Posted by Rocko350 View Post
    You need to fix your issues before you tune. You wouldnt try to bake brownies with messed up eggs or milk would you?
    The table bias allows the ecm to calculate a negative value for ignition advance. It cannot do it in the main table as multiples of a negative always result in a negative. the bias value is a filter at the end of the spark calc that retards that amount. That's why when you set it to 0 it added 20 degrees to everything else. (just like you saw in the vette bin file...) you drive on it too long you WILL knock the rod bearings out of it. Seriously stop 'tuning" until all your error codes are resolved.
    I completely agree on all counts. With that being said, I would have thought if I disabled the error flags (which at this point I have tried to no avail) that the timing being pulled would go away.

    I am admittedly a novice at this, and make no claims to be an expert. What I fail to understand is the stackup of all these tables to arrive at the specified timing. It seems to me that the main timing tables give enough information to form an "advance" curve based on MAP and RPM similar to how a vacuum advance and the weights work on an old school HEI distributor. In addition, I understand how a temperature scalar could be applied to help the engine run better when cool/hot as the two require more/less timing based on those circumstances. Mainly what I am trying to understand is how to arrive at those numbers to set all tables correctly.

    Just here to try and learn, struggling to understand the stackup here.

  9. #9
    Fuel Injected!
    Join Date
    Jan 2018
    Posts
    41
    Elky,

    Sorry, here's the adx. Admittedly I had given up on any answers as it wouldn't be the first thread I'd had go unanswered.

    Changing the knock sensor this weekend, going to take it for a drive afterwards and see what data I get.

    Will post a bin, and the datalogs at that point. Really just want to be able to drive my rig again without worrying about breaking it. Mask is $0D BJYK fwiw.
    Attached Files Attached Files

  10. #10
    Fuel Injected!
    Join Date
    Jan 2018
    Posts
    41
    Will be running a knock sensor, just have yet to change it. Have been operating under the assumption that I should be able to tune the engine with the knock sensor "tuned out" to a point where it was running well and add the knock sensor back in later. That is appearing at this point to not be the case.

    When I first swapped the engine, I used a knock sensor from a 95 Camaro. This may sound incredibly stupid, but at the time I had read that due to the roller cam in the L31 you would want to use the knock sensor from a roller cam engine to not pick up false knock. In hindsight, I should've checked the resistance of the new sensor vs the old sensor, as I suspect that they're not even close and that's what's throwing the code. I have a replacement knock sensor for the truck ready to go and will be swapping this weekend to hopefully rectify at least that issue.

    Finally, if it were super lean I could see it detonating even at ~21 degrees timing and high load, but it's only ever getting at its leanest about 16:1 and I think that should be able to be adjusted not in the VE tables but in the AE as it only happens really with a stab of the throttle. Thoughts?

  11. #11
    Fuel Injected! 84Elky's Avatar
    Join Date
    Jul 2012
    Location
    Montgomery, AL
    Posts
    204
    OK, a lot here so buckle up:
    1.
    First, you can tune without a knock sensor attached (with Err 43). Just won't get any knock retard if it's warranted.

    2.
    Your Err 42 must be corrected. Either you have voltage on the distributor bypass line at less than the cranking threshold RPM (generally 300), or there is no voltage on the line when RPM is > the cranking threshold RPM. Check all coil and distributor connections and those to the ECM. Something's not right.

    3.
    Your log indicates there is no spark retard when a knock is recognized. Need to correct #1 and #2 above before this can be reported.

    4.
    Spark reported in a log will never, repeat NEVER, agree with your Spark table. The code makes many adjustments. The main culprit in most masks is Low Octane retard. In $8d this can be disabled. I'm sure it can also be disabled in $0D, but I don;t know how. Search on how to do it if want to eliminate it. The low octane routine will always reduce SA by 1-2 degrees in most masks unless disabled. But really not a big deal if you know this is happening.

    5.
    The spark in the Open and Closed Throttle Tables is not the real spark advance (TDC). For reasons unknown, in $0D the spark bias at 0x413c (9.8 degrees) is being subtracted from the value entered in these tables. Look at the conversion equation in the XDF and you can see the bias (correction "Y"=Main SA Bias") is subtracted. But the code also subtracts it when determining the final SA. This is why reported SA is low. You can prove the table entry by entering 40 degrees in the table and you'll see 30.1 degrees returned. I contend this is incorrect. Rather than the conversion formula being [(X * 0.351) - Y], I believe it should be (X * 0.351). Maybe someone who truly understands $0D will chime in as what is going on here. But this is the reason your history table (actual spark provided) is approx 10 degrees lower than the your spark table. But if 40 degrees in in the table and 10 degrees is subtracted by the code, you will be seeing 30 actual degrees in a TPro history table, which is what the ECM is seeing and what it should be. I'd change the conversion equation and increase all values in the open and close throttle SA tables by 9.8 degrees. See what happens. If not desirable, can change back.

    There are a multitude of spark corrections in $0D. A spark correction is accomplished in the code by adding spark from a table to the total SA, and then subtracting a correction factor. Any difference adjusts SA +/-. This is done in virtually all GM masks. So if the table value equals the correction factor, there is no spark correction. The $0D corrections I see are below. Hex address in the bin are provided as opposed to XDF descriptions because the descriptions can be different among XDF files. The hex address in the bin calibration never changes. The XDF item can be accessed by opening the hex editor in TPro and clicking on the hex address. If the item is in the XDF, it will be highlighted in the item list. Clsoe the hex editor and click on the item in the list to access it:

    $0D SA Corrections
    a.
    If EGR Active - Can reduce SA 3-4 degrees from table at 0x4855. Is not in the XDF so can't see it but can be added if needed. The default is to access the table with vacuum (0x4855, bit = 1) to get a value. There is no correction factor for this. Here's the table:
    Code:
    ;~~~~~~~~~~~~~~~~~~~
    ;-EGR SA correction
    ;~~~~~~~~~~~~~~~~~~~
    ;
    L4855   FCB	1		;EGR load opt. byte, 1=vacuum, 0=%EGR flow
    ;	
    L4856   FCB	16		;800 RPM, row offset
            FCB	0		;0 kPa, column offset
            FCB	13		;# cols per row							  
    ;
    ; SA = value x .351
    ;
    ;	kPa: 0.0  2.5  5.0  7.5 10.0 12.5 15.0 17.5 20.0 30.0 40.0 50.0 60.0 ; RPM
    ;
    	FCB    0,   0,   0,   3,   3,   6,   9,   9,   9,   9,   9,   9,   9 ; 800 
    	FCB    0,   0,   0,   0,   0,   0,   0,   9,   9,   9,   9,   9,   9 ;1600  		
       	FCB    0,   0,   0,   0,   0,   0,   0,   9,   9,   9,   9,   9,   9 ;2400          
    	FCB    0,   0,   0,   3,   3,   6,   9,  11,  11,  11,  11,  11,  11 ;3200
    	FCB    0,   0,   0,   3,   3,   6,   9,  11,  11,  11,  11,  11,  11 ;4000
    b.
    Called "Alternate SA Correction" (this is actually a SA correction based on the difference between actual kPa and Barometric kPa) - The table is at 0x44CB and the correction factor is at 0x413E. In your bin, both are at 10 degrees, so no correction. By default, the table is accessed based on SD vacuum (option at 0x43AD) where bit =0.

    c.
    Main SA Correction - The Table is at 0x43B1 and the correction factor is at 0x413D (20 degrees). So at any given temperature, the table value is added to total SA and the correction factor is subtracted. Generally, unless there are extreme temps to be dealt with, the entire table should equal the correction factor to ensure there is no correction. Looking at your bin, there are a lot of corrections (mostly reductions) that may not be warranted.

    6. Where did you get the ADX file you posted? Unless I'm missing something, neither Air Flow nor sensor frequency is reported. It's critical these be known in order to tune to adjust BLMs. Try using the attached ADX and you can add things in your ADX the attached ADX does not include [Accel Enrich, Power Enrich, etc.] (recommended for completeness).

    7.
    Your bin does not have any air flow values in the frequency signal table at 0x6B89. This cannot be correct unless you are disregarding the MAF sensor input and running only in Speed Density Mode. Must correct. Look at another $0D bin for a starting point.

    8.
    Current BLMs in your log are reasonable. Some low, some high. Look at that below from my Analyzer program and you can see where corrections are needed.
    BLM VS INT.jpg

    BLM.GIF


    There may be more, but that's enough for now.

    HTH, Elky
    Attached Files Attached Files

  12. #12
    Fuel Injected!
    Join Date
    Jan 2018
    Posts
    41
    Quote Originally Posted by 84Elky View Post
    OK, a lot here so buckle up:
    1.
    First, you can tune without a knock sensor attached (with Err 43). Just won't get any knock retard if it's warranted.

    That's what I thought, and that's why I had set the enable temp for knock retard to 151° to keep it from happening. When I first put the knock sensor in the truck leaving the knock retard on made it undriveable. That's why I tuned it out and intended to tune without it. Just fwiw.

    2.
    Your Err 42 must be corrected. Either you have voltage on the distributor bypass line at less than the cranking threshold RPM (generally 300), or there is no voltage on the line when RPM is > the cranking threshold RPM. Check all coil and distributor connections and those to the ECM. Something's not right.

    Not sure what was causing this, think it may have been related to KS somehow. Changed the sensor over the weekend and this code is now gone as well. Verified on a drive tonight.

    3. Your log indicates there is no spark retard when a knock is recognized. Need to correct #1 and #2 above before this can be reported.

    Understood. Again, had purposely disabled the spark retard for sake of drivability until I could get that sensor changed.


    4.
    Spark reported in a log will never, repeat NEVER, agree with your Spark table. The code makes many adjustments. The main culprit in most masks is Low Octane retard. In $8d this can be disabled. I'm sure it can also be disabled in $0D, but I don;t know how. Search on how to do it if want to eliminate it. The low octane routine will always reduce SA by 1-2 degrees in most masks unless disabled. But really not a big deal if you know this is happening.

    Have come to understand that (and your #5) through more in depth research. Agreed, so long as you know it is happening you should be able to compensate for it in the spark table. I guess to me though is the representation of the data just is kinda screwy? Seems like it should function as an HEI would where the curve is more or less fixed. Minus the ~10degrees of variable vacuum advance at the top of a traditional HEI distributor the mechanical advance stays the same as it is based on centrifugal force. Seems to me these modifiers overcomplicate things. I digress, now I understand that the stock vortec table showing 36° in some spots is truly only about 26°. It still surprises me that I have enough advance to be knocking. But after my drive tonight it appears this only occurs from ~2000-3000 RPM at WOT (90-100kPa) so I think I am going to pull a degree or two from those columns and see what happens. I suppose the vehicle that stock table is for could be a lot lighter than my pig Suburban and I have heard heavier vehicles sometimes need less timing due to the load?

    5.
    The spark in the Open and Closed Throttle Tables is not the real spark advance (TDC). For reasons unknown, in $0D the spark bias at 0x413c (9.8 degrees) is being subtracted from the value entered in these tables. Look at the conversion equation in the XDF and you can see the bias (correction "Y"=Main SA Bias") is subtracted. But the code also subtracts it when determining the final SA. This is why reported SA is low. You can prove the table entry by entering 40 degrees in the table and you'll see 30.1 degrees returned. I contend this is incorrect. Rather than the conversion formula being [(X * 0.351) - Y], I believe it should be (X * 0.351). Maybe someone who truly understands $0D will chime in as what is going on here. But this is the reason your history table (actual spark provided) is approx 10 degrees lower than the your spark table. But if 40 degrees in in the table and 10 degrees is subtracted by the code, you will be seeing 30 actual degrees in a TPro history table, which is what the ECM is seeing and what it should be. I'd change the conversion equation and increase all values in the open and close throttle SA tables by 9.8 degrees. See what happens. If not desirable, can change back.

    There are a multitude of spark corrections in $0D. A spark correction is accomplished in the code by adding spark from a table to the total SA, and then subtracting a correction factor. Any difference adjusts SA +/-. This is done in virtually all GM masks. So if the table value equals the correction factor, there is no spark correction. The $0D corrections I see are below. Hex address in the bin are provided as opposed to XDF descriptions because the descriptions can be different among XDF files. The hex address in the bin calibration never changes. The XDF item can be accessed by opening the hex editor in TPro and clicking on the hex address. If the item is in the XDF, it will be highlighted in the item list. Clsoe the hex editor and click on the item in the list to access it:

    $0D SA Corrections
    a.
    If EGR Active - Can reduce SA 3-4 degrees from table at 0x4855. Is not in the XDF so can't see it but can be added if needed. The default is to access the table with vacuum (0x4855, bit = 1) to get a value. There is no correction factor for this. Here's the table:
    Code:
    ;~~~~~~~~~~~~~~~~~~~
    ;-EGR SA correction
    ;~~~~~~~~~~~~~~~~~~~
    ;
    L4855   FCB	1		;EGR load opt. byte, 1=vacuum, 0=%EGR flow
    ;	
    L4856   FCB	16		;800 RPM, row offset
            FCB	0		;0 kPa, column offset
            FCB	13		;# cols per row							  
    ;
    ; SA = value x .351
    ;
    ;	kPa: 0.0  2.5  5.0  7.5 10.0 12.5 15.0 17.5 20.0 30.0 40.0 50.0 60.0 ; RPM
    ;
    	FCB    0,   0,   0,   3,   3,   6,   9,   9,   9,   9,   9,   9,   9 ; 800 
    	FCB    0,   0,   0,   0,   0,   0,   0,   9,   9,   9,   9,   9,   9 ;1600  		
       	FCB    0,   0,   0,   0,   0,   0,   0,   9,   9,   9,   9,   9,   9 ;2400          
    	FCB    0,   0,   0,   3,   3,   6,   9,  11,  11,  11,  11,  11,  11 ;3200
    	FCB    0,   0,   0,   3,   3,   6,   9,  11,  11,  11,  11,  11,  11 ;4000
    b.
    Called "Alternate SA Correction" (this is actually a SA correction based on the difference between actual kPa and Barometric kPa) - The table is at 0x44CB and the correction factor is at 0x413E. In your bin, both are at 10 degrees, so no correction. By default, the table is accessed based on SD vacuum (option at 0x43AD) where bit =0.

    c.
    Main SA Correction - The Table is at 0x43B1 and the correction factor is at 0x413D (20 degrees). So at any given temperature, the table value is added to total SA and the correction factor is subtracted. Generally, unless there are extreme temps to be dealt with, the entire table should equal the correction factor to ensure there is no correction. Looking at your bin, there are a lot of corrections (mostly reductions) that may not be warranted.

    6. Where did you get the ADX file you posted? Unless I'm missing something, neither Air Flow nor sensor frequency is reported. It's critical these be known in order to tune to adjust BLMs. Try using the attached ADX and you can add things in your ADX the attached ADX does not include [Accel Enrich, Power Enrich, etc.] (recommended for completeness).

    That adx is straight from the TunerPro website under the $0D options. I am not sure that Air flow or sensor frequency would be a part of this bin? $0D can be run with a hack to use a MAF sensor, but in stock format is speed density only.

    7.
    Your bin does not have any air flow values in the frequency signal table at 0x6B89. This cannot be correct unless you are disregarding the MAF sensor input and running only in Speed Density Mode. Must correct. Look at another $0D bin for a starting point.

    As above, I am not running the MAF hack and I am tuning in speed density only.

    8.
    Current BLMs in your log are reasonable. Some low, some high. Look at that below from my Analyzer program and you can see where corrections are needed.
    BLM VS INT.jpg

    BLM.GIF


    There may be more, but that's enough for now.

    HTH, Elky

    I really do appreciate the in depth response. Making some progress I think, I put some 89 octane in it tonight and drove for a bit. I haven't examined the log for knock counts yet, but audibly and looking at the history tables whilst going up hill I only heard the knocking from 2000-3000RPM and about 90-100 kPa. As stated above, will pull some timing out and drive it again tomorrow and see what happens.

    If I misunderstood what you were talking about with Air flow please feel free to correct, but if you thought I was running MAF I am not.

    I'll try to get the logs posted if you want to take a look at them and verify I have eliminated the codes that were present.

Similar Threads

  1. Spark Advance Max
    By eutu1960 in forum GM EFI Systems
    Replies: 0
    Last Post: 09-20-2016, 01:11 AM
  2. Replies: 4
    Last Post: 07-30-2016, 04:27 PM
  3. Replies: 0
    Last Post: 06-14-2016, 07:28 AM
  4. $42 Spark table clarification
    By damanx in forum GM EFI Systems
    Replies: 5
    Last Post: 11-08-2013, 05:28 PM
  5. Replies: 6
    Last Post: 03-26-2013, 06:02 AM

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
  •