I’ve got an external lambda controller hooked up, I’ve been receiving info from it via analog for the last few weeks, but its CAN capable and I wanted to switch to that as soon as I could figure out what was required. I updated the baud rate on the device and imported a .dbc that I was given to test by a friend and was able to see info on the CAN stream. Success! It shows Lambda, and LSU Temp, and status of the device. However, I noticed that even though all of the channels were setup under Lambda 1, that actual output was just showing the default value. My custom channel was showing actual Lambda though, just not the overall channel that everything uses for tuning.
I discovered that if the LSU temp channel that I added is being watched for the warmup channel, then it almost immediately reports a general error and the default Lambda value, however, if I set the warmup channel to a different channel, like zero, then Lambda 1 reports the correct value and not the static failsafe. Is there a temperature value in the firmware that is set as a shutdown/error out value? Is it adjustable? The temperature being reported is 770°C which seems awful high to me. So maybe that is the problem. I’m not even driving the car, this is basically just at idle on my driveway.
I’ve reached out to the manufacturer of the device and was told that temps of 770-780° are right where they should be.
Is there a reason that when the ECU sees this, that is shuts off the lambda output and switches to the failsafe value? I don’t have a log of this behavior immediately accessable, but can get one later if needed.
Regarding the sensor temperature, it should be 780°C at all times. That’s what the heater inside the sensor is for. A sensor must be close to that temperature to work correctly.
There are two inputs for diagnostic channels, ”Error channel” and “Warmup channel”.
They take a logical value to tell if there is an error or if the sensor is warming up.
If the assigned “error channel” is equal to zero, the actual lambda value is used.
If it’s different than 0, the fail-safe value is used (error channel active).
If the assigned “warmup channel” is equal to zero, the actual lambda is used.
If it’s different than 0, the fail-safe lambda value is used (sensor is warming up).
For the warmup channel, you can create a logic function in the project tree that checks if the sensor temperature is lower than 750°C. Then assign that logic function as the warmup channel.
If you have error information from the lambda controller, you can also do something similar for the error channel.
The information on whether the sensor is working correctly is used in short-term fuel trim, for example. If the sensor is not ready or has errors, the short-term trim will be suspended.
This makes sense, and explains the behavior I was seeing. I was assigning the actual temp output of the sensor as the warmup value, whereas I actually need to create a logic function that uses that temperature data to essentially flip a switch authorizing the ecu to use the lambda value the controller is outputting. Okay cool. This is great information. Thank you!