LS1TECH - Camaro and Firebird Forum Discussion

LS1TECH - Camaro and Firebird Forum Discussion (https://ls1tech.com/forums/)
-   Generation III External Engine (https://ls1tech.com/forums/generation-iii-external-engine-6/)
-   -   Microprocessor (PIC) Based Guage POD for LQ4's in a Boat (https://ls1tech.com/forums/generation-iii-external-engine/1934754-microprocessor-pic-based-guage-pod-lq4s-boat.html)

Cfoss Apr 5, 2020 09:17 PM

Microprocessor (PIC) Based Guage POD for LQ4's in a Boat
 
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, and also to alert me to when the bilge pump is on etc.The PIC uses an 8 bit A-D on a %V base. 5V = 255 counts.

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.

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.

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

In other 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 PCM 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.

Test 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


I 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. 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 using HP Tuners 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


All times are GMT -5. The time now is 06:24 PM.


© 2026 MH Sub I, LLC dba Internet Brands