Jump to content

Incorrect GP Temperature values


Rozsko

Recommended Posts

Hey Everyone,

As I was explaining in an earlier thread (https://forums.linkecu.com/topic/13223-can-stream-setup-for-dual-bus/), I connected an AEM 22 channel CAN modul to the ECU.

Fortunately not all the 22 channels require an individual address, thus an individual stream, so I ended up needing only two streams.

Unfortunately though not everything is quite right. With these additional sensors (3pcs of EMAP - CAN AN6/7/8, 3pcs of IAT - CAN TC5/6/7) there is not much I want to do, but only log them really (well, with the exception of an EMAP which is used by the Link Lambda).

The pressure sensors are linear calibration, so I could simply build that into the CAN frame parameter setup, however the NTC sensors being non-linear I need a cal table assigned to them somehow, and that's where my the problem starts.

Problem#1: It seems that now the receivable parameter list on the CAN setup is quite narrow and I can't assign these sensor inputs directly to a (let's say) AN Temp pin. The only option that makes sense is to have them assigned to CAN TC.

Problem#2: CAN TC inputs can not be assigned as source to any GP Inputs, this is where I thought to give up, but then I looked at the Math channels and voila. Unfortunately this is not working properly either.

Problem#3: So after setting up the Math channels with Parameter a = CAN TC input and equation = "a+0" (it seems with simply "a" being in the equation, it is not producing any output), the Ohm values are outputted properly and I can assign the Math channel to the GP Temp inputs as source and assign a calibration table, but using the calibration table for the AEM IAT sensor (which I already use with the IAT input) or the std Bosch NTC calibration for the MAF temp sensor, the temperature values are absolutely non sense.

Any idea, any suggestion would be highly appreciated.

Thanks,

Béla

Math channel setup and runtime values: https://1drv.ms/u/s!Ale4oyMCOgLThOMoAk9Foh8uJhedLQ

Cal table 1: https://1drv.ms/u/s!Ale4oyMCOgLThOMpKP3Mn4UdmKPIaw

GP Temp3: https://1drv.ms/u/s!Ale4oyMCOgLThOMqoebrQ-KASndl8g

 

 

Link to comment
Share on other sites

The problem is the AEM device already has a pull-up resistor, so that converts the sensor resistance to a voltage, so it technically incorrect for them to then broadcast the resistance as it has already been converted to a voltage.  I suspect that is probably something they have done to get around some weird code problem in one of their ECU's.  So when you input resistance into a cal table in the Link ecu that will then also do the calculation to convert the resistance to voltage so you are kind of getting the same math applied twice.  

Can you use Analog inputs 5-8 on the AEM device which output the voltage instead?  

Link to comment
Share on other sites

2 hours ago, Adamw said:

So when you input resistance into a cal table in the Link ecu that will then also do the calculation to convert the resistance to voltage so you are kind of getting the same math applied twice.  

Can you use Analog inputs 5-8 on the AEM device which output the voltage instead?  

Thanks Adam for the quick reply.

I understand what you are saying about AEM shouldn't convert the voltage to ohms, but (as you said too) I guess they have a reason to do so. Putting that theory aside if you look at the runtime values you can clearly see that the CAN TC parameters are simply receiving an ohm value as if you look that up in the calibration, that equals to roughly 20 C. The same true of the Math channels. All 3 Math channels I use output the Ohm values. So to apply the Cal table 1 unit conversion/mapping to the Math channels should clearly result in showing degrees of Celsius in my mind and I really can't understand why ~3470 as a value of Ohm is handled differently in the G4X depending if this values is received from a Math channel or normal An Temp input.

If I look at IAT, its source is An Temp2 with the same Cal Table 1, and it works correctly. The only difference is that An Temp2 is directly wired to an AEM IAT sensor.

On your second question, yes, I can try that. In that case, I assume thought the calibration table should be Volts to C.

Link to comment
Share on other sites

When a temp sensor is connected to a AN temp input, the ecu is measuring the voltage drop across the sensor.  It cant measure resistance, only voltage.  So even though you are filling out a cal table based on ohms, this is just done via ohms law, the raw input that the ecu see's is actually volts.  So when you input the raw value over CAN it needs to be in volts as well.  

 

Link to comment
Share on other sites

20 hours ago, Adamw said:

When a temp sensor is connected to a AN temp input, the ecu is measuring the voltage drop across the sensor.  It cant measure resistance, only voltage.  So even though you are filling out a cal table based on ohms, this is just done via ohms law, the raw input that the ecu see's is actually volts.  So when you input the raw value over CAN it needs to be in volts as well.  

 

Thanks again Adam.

I 100% understand what you are saying, but I don't necessarily agree how this is treated. Of course this is just my opinion and nothing else, so please don't take it wrong.

On the other hand I moved the pins in the connector and setup the Analog5,6,7 with 2.2k pull up resistor in the AEM unit and configured the same in the ECU.

What I am not sure about is why the CAN output is simply truncating to whole number when the divider is set to 1000, but it is, so instead I do that in the math channels.

Overall the result is much better so far, though there is a bit of variance among the AEM IAT sensors (obviously some is expected). I would think that half a C is ok, but the sensor connected to ANTemp2 is the same sensor and is showing 22C. Do you think this is still ok compared to 19.7 and 20.2?

The bigger difference tough is with the built in MAF temp sensor. With the std bosch NTC calibration it is showing 24.8C which is really inaccurate. Can you advise which calibration should I really use for that? (06 STi MAF sensor)

https://1drv.ms/u/s!Ale4oyMCOgLThONAxSIpICPB2tG5NQ

 

Also returning back my first post a bit on the first two issues/limitations, is that really how it should work? Or do you plan include those functionalities in future releases? It would be really nice to be able receive a bit more types of inputs from CAN and/or assign the CAN TC inputs to GP inputs.

Thanks

Link to comment
Share on other sites

3 hours ago, Rozsko said:

Also returning back my first post a bit on the first two issues/limitations, is that really how it should work? Or do you plan include those functionalities in future releases? It would be really nice to be able receive a bit more types of inputs from CAN and/or assign the CAN TC inputs to GP inputs.

Why are you using CAN TC inputs?  You are transmitting a digital representation of voltage so you should be using CAN AN Volt inputs, then you can use these directly as a source for any function.  

 

3 hours ago, Rozsko said:

Overall the result is much better so far, though there is a bit of variance among the AEM IAT sensors (obviously some is expected). I would think that half a C is ok, but the sensor connected to ANTemp2 is the same sensor and is showing 22C. Do you think this is still ok compared to 19.7 and 20.2?

The bigger difference tough is with the built in MAF temp sensor. With the std bosch NTC calibration it is showing 24.8C which is really inaccurate. Can you advise which calibration should I really use for that? (06 STi MAF sensor)

That sounds about as good as can be expected.  Due to the way thermistors are made, a tiny change in chemical composition from batch to batch has a large effect of the resistance.  Common Bosch automotive NTC sensors for instance have a +/-5% tolerance on the resistance, then a further +/-1.4°C tolerance on the temp at 25°C.  That tolerance extends to +/-3.5°C @ 100°C.  

Link to comment
Share on other sites

8 hours ago, Adamw said:

Why are you using CAN TC inputs?  You are transmitting a digital representation of voltage so you should be using CAN AN Volt inputs, then you can use these directly as a source for any function.  

Simply because I am out of CAN An inputs.

 

8 hours ago, Adamw said:

Common Bosch automotive NTC sensors for instance have a +/-5% tolerance on the resistance, then a further +/-1.4°C tolerance on the temp at 25°C.  That tolerance extends to +/-3.5°C @ 100°C.  

That's what I was suspecting, but not hoping for.

Thanks again. Appreciate your answers.

Link to comment
Share on other sites

  • 1 year later...

Hi Guys,

Bringing this old topic back with some updates I've just done, just in case anyone else is running into the same issue.

So after a long time I started to mess with my car again and the next project is RealDash. Now that means I have to realign quite a bit of my gauge setup. Namely, I will get rid of the AEM X-series gauges that currently feed to the ECU through CAN and I will simply connect their sensors to the 22 channel AEM CAN modul. This means that I am running out of Analog Volt based inputs on the CAN module with the currently applied workaround.

So what I have done is that I moved the three IAT sensors back to Analog 9, 10 and 11 to transmit the values in resistance.

Then I created a math channel for each of them with the following formula to calculate the Voltage from the resistance: "5/(a+2200)*a" (2200 is the ohm value of the pull-up resistor in the AEM CAN modul) (https://1drv.ms/u/s!Ale4oyMCOgLThYwSd5VyWMOJ8WsRBQ ), and I feed these math channels into the GP Temp inputs with the same Voltage based calibration table I used before (https://1drv.ms/u/s!Ale4oyMCOgLThYwUXrauN8NfPe-i1w)

So now, I have enough Analog Voltage inputs on the AEM CAN modul to connect the oil pressure, the fuel pressure and the oil temp sensors.

Cheers,

Béla

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...