Page 38 of 55 FirstFirst ... 28333435363738394041424348 ... LastLast
Results 556 to 570 of 825

Thread: DIY LTCC or similar system for LT1s

  1. #556
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    You have gathered some immense quantity of data. Amazing job. I bet you have freaked out at some point.
    Too bad we didn`t have the spark energy output. And that coil discharge time is awesome.

    Map correction proved useless so you can ditch that input and use ECT instead. I discovered that 96-97 lt1 calibrations have some added code for dwell. An rpm vs voltage calculations and Map corrections. There are also 3 different dwell calculations used by the TPU, just like in the later ls1 code. Map os also fixed at *1 correction.


    I examined the data you have for the d580 coils which I also have. The GM data is at 85% for not normal operating range and close to 93% at normal operating range.
    So these coils are maxed out from factory.

    The other coils are more like one size fit all settings, since they are at least 2 different interchangeable coils for given application.

    I also managed to make the full coil list with part numbers, stamp number and years of usage.

    Gen0
    1. 12558984 p/n and stamped; d580; square ls1 cars 97-04 made by denso.

    Gen1
    2. 12558693 p/n and stamped; d581; square ls1 truck 99-04 made by mitsubishi.
    3. 10457730 p/n; 19005218 stamped; d585; round ls1 truck 99-07; made by ??ac delco

    Gen2
    4. 12611424 p/n
    4.1 12570616, H6T55271ZC stamped; melco mitsubishi ;d510c square; truck 07-13
    4.2 updated with 12611424 acdelco stamped; d510c square; truck 07-13
    5. 12573190 p/n and stamped; d514a; round 05-13 cars, trucks; made by delphi

    Gen3
    6. GM 12619161 p/n and stamped; square 14-on; made by GM or ??delphi??
    7. GM 12658183 p/n and stamped; round 14-on; made by GM or ??delphi??


    I am not getting a heart attack. The plan you have seems good enough. Not sure if 2 2d tables can substitute 2 3d tables but it will be close enough. The gm data proved to be upto the 85-93% safety margin, so perfectly suitable to be used as a starting point.

    I have 3 different theories why there are no multi spark implemented.
    An overkill.
    NO real gains or improvement.
    Code implemented for emissions but not needed or used or code is not polished enough and needs improvement or some undesirable side effects experienced during testing.



    Looking again at the data, there might be some modeling or pattern for coil temperature vs engine coolant used by GM. Some of the coils[gen1] are off the chart at 100*C and I doubt they can reach that levels underhood.
    SO gen1 used much higher safety margin, guess the 1 size fit all +20% was applied there.
    Last edited by kur4o; 01-26-2020 at 03:41 AM.

  2. #557
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Quote Originally Posted by kur4o View Post
    Map correction proved useless so you can ditch that
    I tend to agree, but have considered possibly using map to skew the dwell target from "safe" to "pedal to the metal" - i.e. high MAP values would get closer to 85% and low values closer to 93% (just arbitrary numbers for an example). For now I'm going to leave it open for discussion because reading the ADC is interrupt driven and doesn't really demand a lot of processor time. The only problem it may pose is adding another multiplier.

    Quote Originally Posted by kur4o View Post
    I examined the data you have for the d580 coils ... The GM data is at 85% for not normal operating range and close to 93% at normal operating range. So these coils are maxed out from factory.
    Possibly, but I would tend to think there's plenty of safety margin engineered into the internal dwell limiting circuitry.

    Thanks for the coil part #s - I doubt I'll get a chance to do much with it but it's good info to have.

    Quote Originally Posted by kur4o View Post
    Not sure if 2 2d tables can substitute 2 3d tables but it will be close enough.
    In looking how the RPM vs voltage tables taper it seems this is mainly geared at cranking situations. It may be possible to do both as 3d tables, but in moving to this strategy I'll have to be calculating the multipliers and converting the dwell time to degrees on the fly. I just don't want to overtax the microprocessor with unnecessary calculations.

    Anyway, I was able to connect the MAP input on my test setup to the ECT yellow wire. The good news is it looks like it's going to be workable. I experimented with connecting and disconnecting the (bare) wire ends while the car was running and there were no changes in the raw ADC coming off the ALDL.

    Here's the "kicker". As the car was warming up and I was making notes of the raw ADC value and the converted (degrees C) value in eehack and what the ADC value was in the ignition controller, something strange happened. Around 50C the ADC value from the ignition controller jumped from about 188 (about 1.2vdc) to 730 (~3.6vdc).

    Follow the data in the "M" (map) field below...

    Code:
    R4185:A25:D0.44:C6:M187:V796:T1:E0:L0:S0
    R4131:A25:D0.44:C5:M184:V797:T2:E0:L0:S0
    R4112:A25:D0.44:C7:M185:V794:T3:E0:L0:S0
    R4105:A24:D0.44:C2:M184:V795:T4:E0:L0:S0
    R4153:A23:D0.43:C1:M185:V798:T1:E0:L0:S0
    R4187:A23:D0.42:C8:M188:V807:T2:E0:L0:S0
    R4208:A24:D0.42:C4:M189:V811:T3:E0:L0:S0
    R4210:A25:D0.43:C3:M732:V810:T4:E0:L0:S0
    R4183:A25:D0.44:C6:M734:V812:T1:E0:L0:S0
    R4144:A25:D0.44:C5:M733:V811:T2:E0:L0:S0
    R4124:A25:D0.44:C7:M731:V809:T3:E0:L0:S0
    R4132:A25:D0.44:C2:M731:V809:T4:E0:L0:S0
    R4134:A23:D0.44:C1:M731:V813:T1:E0:L0:S0
    Immediately an "ut oh" light went on and I started wondering if I'd done something stupid like shorted out my PCM. But after letting it cool down I re-tested from 44C to 52C with a volt meter on the pin, and confirmed that the PCM must be switching between two different voltage divider networks for improved linearity. Pretty neat. This really doesn't present a problem, I'll just have to map out a complete conversion table, including the transition to the high-temp voltage divider where the table will wrap around.

    I'll start working on a re-write tomorrow.

  3. #558
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    Immediately an "ut oh" light went on and I started wondering if I'd done something stupid like shorted out my PCM. But after letting it cool down I re-tested from 44C to 52C with a volt meter on the pin, and confirmed that the PCM must be switching between two different voltage divider networks for improved linearity. Pretty neat. This really doesn't present a problem, I'll just have to map out a complete conversion table, including the transition to the high-temp voltage divider where the table will wrap around.
    I have seen this at a lot of gm code. 2 coolant tables switched by some mystery reason with a hardware switch. Never could figure it out, always thought about different applications. I think that is handled by tside, I will dig out some conformation about it, and how it is done. It is not possible to get a linear signal from a 5kohms to 100 ohm signal drop.

  4. #559
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    412
    Quote Originally Posted by spfautsch View Post

    Here's the "kicker". As the car was warming up and I was making notes of the raw ADC value and the converted (degrees C) value in eehack and what the ADC value was in the ignition controller, something strange happened. Around 50C the ADC value from the ignition controller jumped from about 188 (about 1.2vdc) to 730 (~3.6vdc).

    Follow the data in the "M" (map) field below...

    Code:
    R4185:A25:D0.44:C6:M187:V796:T1:E0:L0:S0
    R4131:A25:D0.44:C5:M184:V797:T2:E0:L0:S0
    R4112:A25:D0.44:C7:M185:V794:T3:E0:L0:S0
    R4105:A24:D0.44:C2:M184:V795:T4:E0:L0:S0
    R4153:A23:D0.43:C1:M185:V798:T1:E0:L0:S0
    R4187:A23:D0.42:C8:M188:V807:T2:E0:L0:S0
    R4208:A24:D0.42:C4:M189:V811:T3:E0:L0:S0
    R4210:A25:D0.43:C3:M732:V810:T4:E0:L0:S0
    R4183:A25:D0.44:C6:M734:V812:T1:E0:L0:S0
    R4144:A25:D0.44:C5:M733:V811:T2:E0:L0:S0
    R4124:A25:D0.44:C7:M731:V809:T3:E0:L0:S0
    R4132:A25:D0.44:C2:M731:V809:T4:E0:L0:S0
    R4134:A23:D0.44:C1:M731:V813:T1:E0:L0:S0
    Immediately an "ut oh" light went on and I started wondering if I'd done something stupid like shorted out my PCM. But after letting it cool down I re-tested from 44C to 52C with a volt meter on the pin, and confirmed that the PCM must be switching between two different voltage divider networks for improved linearity. Pretty neat.
    That's interesting because that's bang on where my O2's decide to flat line between 45 to 50 degrees C.

    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  5. #560
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Quote Originally Posted by kur4o View Post
    I will dig out some conformation about it, and how it is done. It is not possible to get a linear signal from a 5kohms to 100 ohm signal drop.
    Don't worry about it - it's not going to pose a problem. I'll simply build a lookup table that goes something like:

    Code:
    [adc_raw_value],[coolant_temp],[coil_temp]
    730,50c,<user configurable>
    715,52c,<user configurable>
    700,55c,<user configurable>
    670,57c,<user configurable>
    
    ... (need to collect more data points but you get the idea)
    
    288,38c,<user configurable>
    240,44c,<user configurable>
    200,48c,<user configurable>
    190,50c,<user configurable>
    The PCM is doing all the heavy lifting here - the ignition controller is just listening passively.

    Edit:

    Quote Originally Posted by kur4o View Post
    I have seen this at a lot of gm code. 2 coolant tables switched by some mystery reason with a hardware switch. Never could figure it out
    Just wanted to add / clarify - in this case there's significant signal transformation going on behind the scenes here - as you say likely on the t-side. But the "raw" ADC value in the ALDL datastream was perfectly linear. I imagine they started doing this out of necessity when the Y-body engineers wanted to start showing a digital coolant temp in the DIC / CCM.

  6. #561
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Completely anecdotal information, but looking more closely at the "raw" value in the ALDL stream it seems like this might be some hybrid conversion to kelvin. Looks almost as if it's the coolant temp in kelvin minus 200(k). This has the benefit of representing all possible operating temperatures in a single unsigned byte (0-255 can represent -73c to 181c).

  7. #562
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    It's back to the drawing board on reading coolant temp. I didn't get a good look at lower temp ADC readings last night due to some initial problems logging from the ignition controller.

    Logging more thoroughly today I discovered that 2.8v on the ADC input could be 11c or it could be 67c - without knowing what voltage divider the PCM has selected this won't work.

    I'm searching for ideas to overcome this - open to suggestions.

    Some ideas I'm mulling over in no particular order are:

    * pulsing the microcontroller's ADC pin to +5v on key-on and then watching what happens on the pin (possibly nothing to see)

    * a patch to drive an unused pin low / high above / below a certain coolant temp (requires a spare output pin in the PCM, patch, another wire to the diy-ltcc)

    * using a fallback / limp dwell table until the ADC senses the crossover to the hi-temp voltage divider, with a runtime override

    * adding an additional temperature sensor that could be affixed to one of the coils (requires mods to the circuit board and / or an add-on board)

    The AVR has an internal temperature sensor that I'd wanted to monitor anyway, but in winter the underhood temps won't be high enough to count on this effecting the ignition controller's temperature (tested this today).

    Edit: I thought of another possibility that would require no additional wiring, no patches and only moderate calibration requirement on the ignition controller side. The 0x12075 Crank Spark Advance vs Coolant Temp table defines cranking spark advance based on ECT. Looking at what spark advance is requested from the PCM at startup would clue me in to whether 2.8v meant 11c or 67c (using the above example).

  8. #563
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    I look in depth to this table switching.

    Initially the pcm uses table0. At reset table 0 is set and the voltage range is 5v-0.957v.
    When 0.957 is reached pcm switches to table1. With the new rc network the voltage should rise to 3.6v and the new voltage ranges at 3.6v-0v. The pcm stays at table1 form 3.6v -0v. It switches back to table0 if the voltage raise more than 3.98v.
    The thresholds in degrees are 40*C and 50*C degree.
    5v equals -40 degrees, 0v equals 151 degrees.

    It is done to increase resolution. You have like 8v volts total resolution. Table0 is used for colder operating range below 50*C and table1 is used for hotter operating range.


    To monitor raw coolant AD counts, log AD tab in eehack and look for ADCHANNEL0109 in hacker view.
    Logging byte_80 $02 will give you the selected table. if $02=1 table0 is used, if $02=0 table1 is used.

    At reset the pcm defaults to table0, if temp is above 50*C or voltage below 0.957volts it switches to table1. There is some time between the 2 events. If the controller is fast enough it can log the switching if the temp is above 50*C and know which table to use. There will be no voltage change if the coolant is at around 145*C, the voltages will match between the the 2 tables and the raise can`t be sensed.

    Table0 is at $EED1 on tside
    Table1 is at $EFD1 on tside.

    The hardware switch is at 1807 bit $02.

    Other non intrusive way to log the switch is to make an aldl request and log byte_80 via mode2 request. Not recommended.

    Adding pin pull will be simple job and 10 bytes patch.

    If you pull the ECT pin high to 5v the pcm will switch to table0 and than switch to table 1 when the pin is pulled low. Watching for voltage switch can give a clue on the table being used.

  9. #564
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Good info, thanks for looking. The tables might save me a lot of time capturing data points.

    I added a 'ect raw' field in my eehack definition that just removed the conversion to C, assuming this was the raw adc data. But it's obviously not - it's some kind of proprietary engineering unit.

    Quote Originally Posted by kur4o View Post
    Adding pin pull will be simple job and 10 bytes patch.

    If you pull the ECT pin high to 5v the pcm will switch to table0 and than switch to table 1 when the pin is pulled low. Watching for voltage switch can give a clue on the table being used.
    I'm going to test whether I can extrapolate temperature from initial cranking spark advance as I mentioned in the edit to my previous post (0x12075 Crank Spark Advance vs Coolant Temp). The controller is already picking this up so the worst case is I use a default / generic dwell time for the first coil fire.

    Manipulating the voltage on the pin would be my last resort because it would change what the PCM thinks temperature is during first fire, which is really critical to decent starts.

    Hoping to test how the initial cranking advance might work tonight, but it may be tomorrow because Monday nights are always a pita. If it will work it will take a bit of coding to get right, but I'd rather not rely on needing a patch and an extra pin to the PCM if at all possible.

  10. #565
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    The "raw output" you have monitored is the linear lookup data from the tables. So it is the raw output filtered for linearity.

    The crank spark method have some downsides. It is not universal across all calibrations. Some user can change the table to suit the modified engine cranking.

    In my case between 40-50*C the spark is set 8 and 6 degrees in the 2 adjacent cells. Not enough room for error to chose from. If you pick 7 degrees at crank time, it might belong to both of the ECT tables.

    Voltage sense at reset and look for a change. Hope the avr is fast enough. You can wire a variable resistor to the ECT 5v output and log the voltage rise between rc networks switching.

  11. #566
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Quote Originally Posted by kur4o View Post
    The crank spark method have some downsides. It is not universal across all calibrations. Some user can change the table to suit the modified engine cranking.
    True, but the same user could copy their changes into the diy-ltcc firmware and re-flash it at the same time. This isn't a table a lot of folks tweak on extensively (it's 17 cells).

    Quote Originally Posted by kur4o View Post
    In my case between 40-50*C the spark is set 8 and 6 degrees in the 2 adjacent cells. Not enough room for error to chose from. If you pick 7 degrees at crank time, it might belong to both of the ECT tables
    I'll have to think it over more carefully to make sure I'm not overlooking something, but I believe you might be missing what I'm shooting at.

    Just for fun, let's go back to my 2.8v example. At 2.8v ECT could be either 11c or 67c. In the stock y-body calibration, 11c will call for 13 degrees initial spark advance, and 67c will call for about 9. In my modified table those numbers are 11 and 6.

    Closer to the transition point, let's say 43c, would be at 1.15v on table0, and some ridiculously high temperature on table1. I'm not feeling like being completely thorough and analytical right now so for sake of argument let's say that's 130c. That's a commanded 11 vs 4 degrees in the factory tune, and 8 vs 3 in my modified table. See what I'm shooting at here? All that's needed is 2-3 degrees difference to extrapolate what ECT really is.

    If I'm missing something simple and obvious don't hesitate to point it out. I'm proud but I'm also not that bright so I'll get over it with the help of a healthy dose of ethanol.

    Quote Originally Posted by kur4o View Post
    Voltage sense at reset and look for a change. Hope the avr is fast enough. You can wire a variable resistor to the ECT 5v output and log the voltage rise between rc networks switching.
    When you use the term "reset" are you meaning key-on? The AVR is more than fast enough, I'm seeing > 8.5khz sampling of the ADC section using the highest precision prescaler, dividing that between two or three analog inputs should be more than adequate. But, there's AVR initialization taking place at key-on that takes some time. Unfortunately I don't have a capture scope so it's hard for me to quantify how long before the ADC section is returning results.

    If I had a capture scope and / or a spare PCM I could run on a test bench this avenue would be a lot easier to investigate.

  12. #567
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    The reset is whenever the pcm is brought back from sleep mode. In our case a simple ign on will force the pcm to boot and reset. At ign off however there is like 10-15 seconds timer before the pcm sleeps.

    A chart for temperature vs voltage for the 2 tables can show a better picture if the crank spark select will work. As you pointed there will be significant voltage change at around the switch point. The plan you have seems workable.

  13. #568
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    I have a request for coil testing. It will be really interesting to find a relation between coil discharge time and spark plug type vs plug gap.

    If you have some spare time a test for spark duration with different spark plugs[copper, single platinum, double platinum and iridium]with different gaps[0.04, 0.045, 0.05, 0.06] will be awesome.

  14. #569
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,475
    Just found this floating on the web.
    http://www.bowlingss.com/DownLoads/P...Holden_LS1.pdf

    Check page 40 for indepth view of the ECT sensor.
    Last edited by kur4o; 01-31-2020 at 12:50 AM.

  15. #570
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Quote Originally Posted by kur4o View Post
    When 0.957(v) is reached pcm switches to table1. ... It switches back to table0 if the voltage raise more than 3.98v.

    The thresholds in degrees are 40*C and 50*C degree.
    Are these thresholds specified by ADC count or the conversion value (which is the "engineering" unit I mentioned previously)? I'd love to know their exact values and where the compare branches are in the program.

    I dug into the LT-1 disassebly I've been annotating and have learned a lot, but it's unclear to me where these switch points reside.

    I've been able to draw several connections between the 0xEED1 and 0xEFD1 tables and some other data points I've collected, so I feel like I'm very close to having this part nailed down. The biggest difference I've come across is that the AVR has a 10 bit ADC processor (0-1023) whereas the PCM seems to have an 8 bit ADC processor (0-255). So I'll need to divide all the ADC values by 4. Otherwise it looks like it will be a walk in the park.

    Quote Originally Posted by kur4o View Post
    Just found this floating on the web. ... Check page 40 for indepth view of the ECT sensor.
    Thanks! That's very informative that they published the actual resistance values and circuit design. Cool find!

    Quote Originally Posted by kur4o View Post
    I have a request for coil testing ... If you have some spare time a test for spark duration with different spark plugs ... will be awesome.
    I've been busting my butt to get all the information I have incorporated into the next firmware as well as working towards a build that handles temperature compensation. Best case, this is going to eat up at least 10-12 days to get to a "rough draft". But I'll do my best to make time to get some spark durations with different gaps and electrode materials.

    Ultimately I'd like to build out a zener pile and test spark energy across the board. But at this point in the project I'd rather have a working (if incomplete) firmware for the one and only test subject, because it's a lot more fun to own if I can drive it.

    Side note - since discovering that the coils I have require < 4ms of dwell, I'd been nudging the dwell target down little by little. But after a rudimentary analysis of the test data I decided to try boosting cranking dwell by quite a bit, and cold starts have thus far responded with great enthusiasm. I feel like it's about to get real (or blow up in a magnificent ball of fire).

Similar Threads

  1. Which TBI system is better?
    By KeyAir in forum GM EFI Systems
    Replies: 41
    Last Post: 05-13-2019, 09:39 PM
  2. Hard start 93 LT1 with LTCC Ignition Mod
    By beestoys in forum GM EFI Systems
    Replies: 0
    Last Post: 05-18-2015, 08:58 AM
  3. ABS system?
    By K1500ss4x4 in forum Gear Heads
    Replies: 3
    Last Post: 02-06-2014, 06:21 AM
  4. Vortec EGR System?
    By EagleMark in forum OBDII Tuning
    Replies: 40
    Last Post: 06-02-2013, 10:07 PM
  5. Quicker way to do Spark Hook test on the street for LT1s and others?
    By sherlock9c1 in forum Fuel Injection Writeups Articles and How to New and Old
    Replies: 15
    Last Post: 03-03-2013, 01:52 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
  •