Results 1 to 3 of 3

Thread: DIY Guage Pod for Gen3 GM

  1. #1
    Tuner
    Join Date
    May 2019
    Location
    Duncan, BC, CDA
    Posts
    51

    DIY Guage Pod for Gen3 GM

    Hi all. I'm putting a pair of LQ4s in my boat. Things are going good with the first one-running well on land at least, converted to 1 bar speed density. Tuning is yet to be performed, but it's idling warm a bit rich with the stock programming.

    Anyway, I've been creating a digital guage pod for the rpm, coolant temp and oil pressure.

    I was going to do separate sensors and all that, but then I thought why do that when i can piggyback on the existing sensors. It actually works pretty well.

    I thought I'd share some insights.

    I used a PIC, specifically a 16F74 with a 8 bit (0-255) A-D. Here are the formulas for Voltage, and for "counts":

    Temperature: I was surprised to find that the voltage to the ECM is linear with changes in temperature. Here is the data set that I measured:

    Temp(c) Voltage
    49 3.7
    54 3.5
    57 3.357
    59 3.281
    62 3.13
    66 3.014
    67 2.982
    68 2.947
    69 2.867
    79 2.462
    81 2.392

    From this I derived the formula:

    Temp = volts(-24.46)+139.22

    If using counts, 0-5V = 0-255, then the formula is:

    Temp = (counts *-0.863)+283





    For oil pressure, there is lots of info on line that the scaling is .5-4.5V, 0-130psi. This is correct information.

    Measured:
    Volts Pressure
    .5 -.3
    1.88 43.6
    1.72 39
    2.15 52
    2.64 68

    Formulae:

    Pressure = volts(31.92)-17.4

    Pressure = (counts-26)*130/204

    The way the counts formula breaks down is this:

    counts -26 removes the .5V offset in the signal. Then simply multiply this by 130psi, divided by the count representation of 4 volts (4.5V-.5V) and that's it.



    Caveat: I haven't done the RPM yet, but I'll come back and verify this information

    I used a technique that measures the time it takes for 1 complete ignition cycle to take place. This is really quick and can be averaged to good effect.

    So, if you measure 1 ignition cycle, then you have to realize that there are 4 cycles per revolution (in a 4 stroke) then we have just measured the time for 1/4 of a revolution.

    Now you have to invert that measured time to get the frequency. It's a bit of a trick in the microprocessor, but it can be done.

    So let's say the measured time was 7.5ms. This inverts to about 133hz

    But this is the time for 1/4 cycle so we have to divide by 4. We now get 33.33hz

    So this is the frequency in cycles per second, but rpm is cycles (revolutions) per minute, so we multiply by 60 and we get 2000 rpm.

    Hope that helps someone in the future.


    Chay

  2. #2
    Tuner
    Join Date
    May 2019
    Location
    Duncan, BC, CDA
    Posts
    51
    A few notes for those who may be following this.

    Tach:

    The tach signal is low active. Without a pullup resistor you get nothing. For the 5V input on the PIC what I did was run 12V to a 2k2 resistor, then the other side of the 2K2 connects to the white ecm wire , the PIC input, and one side of a 1K resistor. The other side of the 1K resistor goes to common. With the high and low tach resolution set to 6 (Stock setting), the formula for rpm is: RPM = Frequency *30.1

    Inother words if the square wave frequency was 100hz, you would be at 3010 rpm.

    This is very accurate throughout the range.

    Engine Coolant Temp:

    GM pulled a trick here! They have the ECM change up the pullup resistors half way through the temperature range. This is to increase resolution to the a-d over the entire range. The trouble is that when you are just reading the input voltage from the ECM, you can't tell what factor the ECM is on.

    More full data:

    ECM Volts
    (degf)

    50 2.764
    55 2.498
    64 2.234
    73 2.0
    81 1.8
    84 1.68
    90 1.47
    95 1.37
    100 1.27
    104 1.2
    113 0.97
    118 0.9
    120 0.8
    ECM SWITCH!
    120.2 3.7
    129.2 3.5
    134.6 3.357
    143.6 3.281
    150.8 3.13
    152.6 3.014
    154.4 2.982
    154.4 2.947
    156.2 2.867
    174.2 2.462
    177.8 2.392


    So, I'm thinking perhaps I can set the fan output to 120 deg F and use that output as an input to the PIC to tell it when to switch from low to high temp calculations. Should work in principal.


    Onward and upward.


    Chay

  3. #3
    Tuner
    Join Date
    May 2019
    Location
    Duncan, BC, CDA
    Posts
    51
    Yeah the fan output works!

    Pin C1-42, low active. This means I can use exactly the same setup as my tach for resistors. When the voltage is high, the use the low temp curve, when it is 0, use the high temp curve.

    I set the enable at 122 and the disable temp at 120 so if anything the temp looks lower than it should. This keeps it from triggering the alarm setpoints I made, and the transition occurs pretty fast at this temp anyway.


    The formula for the low temperature zone (In counts, 5V=255) is:

    Temp(f)= -7/10(counts)+144



    Chay
    Last edited by cfoss1000; 03-29-2020 at 05:34 PM.