What's the PID for flex fuel tune e%?

Thraxbert

Well-Known Member
First Name
Robert
Joined
May 3, 2021
Threads
24
Messages
1,057
Reaction score
1,879
Location
Texas
Car(s)
'20 Supra 3L, boosted 3.8L Gen Coupe, '93 Jimny
Hey. If the DME can read eth% with a flex tune, there must be a readable PID for it. How can I find that PID for Torque or other services that support custom data displays?
Sponsored

 
OP
OP
Thraxbert

Thraxbert

Well-Known Member
First Name
Robert
Joined
May 3, 2021
Threads
24
Messages
1,057
Reaction score
1,879
Location
Texas
Car(s)
'20 Supra 3L, boosted 3.8L Gen Coupe, '93 Jimny
You still need the flex fuel sensor installed to get ethanol content
Yes, of course. That's presumptive with the question. The Zeitronix communicates ethanol percentage over CAN, so there must be some sort of PID associated with it that can be added and read. I'd like to know if anyone has figured this out.
 

black_sedan

Well-Known Member
First Name
BR
Joined
Sep 15, 2019
Threads
14
Messages
641
Reaction score
542
Location
Northeast Florida
Car(s)
a90 Supra, Ford Raptor
Yes, of course. That's presumptive with the question. The Zeitronix communicates ethanol percentage over CAN, so there must be some sort of PID associated with it that can be added and read. I'd like to know if anyone has figured this out.
if we’re talking ecutek you need racerom and the setting for that feature would need to be enabled by your tuner
 
OP
OP
Thraxbert

Thraxbert

Well-Known Member
First Name
Robert
Joined
May 3, 2021
Threads
24
Messages
1,057
Reaction score
1,879
Location
Texas
Car(s)
'20 Supra 3L, boosted 3.8L Gen Coupe, '93 Jimny
I don't think you guys are understanding what I'm asking. I'll rephrase.

Running a Zeitronix unit in the vehicle allows the ethanol percentage to reported over CAN. Yes, that allows a tune like BM3 or Ecutek to read the content and adjust the parameters map on the fly AKA "flex fuel."

But that is not what I'm asking, and I'm not talking about tunes. What I'm talking about are PIDs, or On board Diagnostic Parameter IDs. Every car uses PIDs. PIDs are hexadecimal messages sent by the ECU over the CAN bus, and it's why you can hook up an OBD scanner to read a code, see the engine RPM, etc.

Every OBD2 car has a standard set of PIDs. They're all the same. Then each car has vendor-specific or vehicle-specific PIDs that can provide more info. For example, the transmission oil temperature on the Supra does not use the same PID as another car. But if you know the PID, and how to decode it into a human-readable format, you can read and report the info.

That takes me to the Zeitronix. It adds ethanol content reporting to the CAN bus, which means somewhere and somehow it is sending a message that says "this is the ethanol percentage." If this message didn't exist, a tune wouldn't be able to read it from the ECU and wouldn't be able to provide flex fuel support.

So I'm looking to better understand the structure and format of the ethanol message the Zeitronix unit is sending, and how I can read that message with an external device connected to OBD/CAN. This has nothing to do with tuning the car.
 
OP
OP
Thraxbert

Thraxbert

Well-Known Member
First Name
Robert
Joined
May 3, 2021
Threads
24
Messages
1,057
Reaction score
1,879
Location
Texas
Car(s)
'20 Supra 3L, boosted 3.8L Gen Coupe, '93 Jimny
  • Like
Reactions: zrk
OP
OP
Thraxbert

Thraxbert

Well-Known Member
First Name
Robert
Joined
May 3, 2021
Threads
24
Messages
1,057
Reaction score
1,879
Location
Texas
Car(s)
'20 Supra 3L, boosted 3.8L Gen Coupe, '93 Jimny
Okay, maybe I've made progress. Or maybe I've wasted hours of my time today for nothing.

First, we know from Zeitronix itself that it communicates on CAN bus ID 0x00EC hex and 11-bit CAN identifiers.

So I tried the obvious: pinging PID 00EC with Torque. No response.

Okay, so the ECU has different "modes" where different channels of codes are sent. Mode 21,22,23 are often used for vendor-specific things. I tried plugging in 22 EC and got data back! The ECU reported 7E9037F2213. Interestingly, that equates to ~8.0 when you hit this value with the typical (A/255)*100 formula for calculating ethanol percentages on other platforms... Not entirely unreasonable for the e content of 93 gas. Did I get it? Probably not.

As a roundabout verifier, I pinged this interface several times and got the same HEX code back over and over. Ethanol content fluctuates slightly when you're putting it through a sensor, usually some wobble in the first first decimal place, as the car runs. I've seen this in my other car that runs E50. So it's unlikely this 7E9037F2213 response is the ethanol content we're looking for because it came back over and over at the same number.

That takes me back to the 11-bit thing from Zeitronix. A standard CAN message on a car has specific format/encoding that looks like this. This is NOT AN OBD2 MESSAGE.


1637472708465.png


If we take Zeitronix at face value, then 0x00EC is the default CAN ID of the Zeitronix unless Visconti changes it to something else (which they can, and you can).

Okay, Zeitronix also says:

Data 0 is 8 bits long (meaning bits 0 thru 8 in the data)
Data 1 is 8 bit (-40) to derive Celsius of the fuel (meaning bits 9-16 in the day)
Data 7 is 0x00 for sensor OK, 0x01 for sensor not ok

This gives us some clues about the CAN ID (orange) and CAN data (blue) in the diagram being sent by the Zeitronix unit. That took me here, suggesting I wasn't entirely wrong for suspecting Mode 22.

Mode 22 represents UDS, where you can directly read information by Identfier... identifier... LIKE OUR 0x00EC CAN IDENTIFIER. Case closed here, I need to be in mode 22 but I was using it wrong.

1637470152626.png


Okay, that's a big clue. We know our CAN ID is 0x00EC (maybe).

We know/think our Service ID (SID) is 22 (this is a hex value).

Standard CAN messages are limited to 64 bits (8 bytes) aka HEX 40.

Byte 1 (8 binary bits) should be the ethanol percentage if we convert to decimal, e.g. 0x38 hex should be 56% ethanol.

Byte 2 is another 8 bits, and if we convert that to decimal and subtract 40 we have the fuel temp in ethanol.

And in the 7th byte, 0x00 = sensor OK or 0x01 = sensor not OK.

And another clue: Zeitronix says that Data 0 (the first 8 bits) contains the eth%

Putting it all together, I'm thinking maybe the "PID" is not a PID at all but a mode 22 UDS query formatted differently.

And we're just guessing it uses the simplest single frame, in which case the query is:

EC (Zeitronix CAN ID 11-bit)
00 (single frame query)
40 (8 bytes data in the message)
22 (service mode)

Data bytes
1. 0-64 (eth)
2. 00-FF(temp)
3. null
4. null
5. null
6. null
7. 00 or 01 (sensor)

OR MAYBE I'M A TOTAL MORON WHO HAS NO IDEA WHAT'S GOING ON AND THIS SHIT WILL NEVER WORK BECAUSE THE FRAMES ARE A PROPRIETARY SIZE AND TORQUE CAN'T RESD THOSE KINDS OF CAN MESSAGES REEEEEEEEE

1637474693742.png


1637469474443.png
 
Last edited:

Surebob

Well-Known Member
First Name
Greg
Joined
Mar 23, 2022
Threads
2
Messages
47
Reaction score
53
Location
Los Angeles
Car(s)
2021 GR Supra A90
sorry for the bump, did you ever make any progress in general on reading different values through OBD port? things like boost, HP, Torque, temps and stuff, i know some custom gauges that are obd based do this and i was wondering if i can figure this out i can make my own 3d printed gauges with those nice smartwatch round OLEDS you can get on ebay.
 

razorlab

Well-Known Member
First Name
Bryan / Briana
Joined
Oct 2, 2021
Threads
22
Messages
4,624
Reaction score
9,152
Location
Your moms bedsheets
Car(s)
Not a Corvette.
sorry for the bump, did you ever make any progress in general on reading different values through OBD port? things like boost, HP, Torque, temps and stuff, i know some custom gauges that are obd based do this and i was wondering if i can figure this out i can make my own 3d printed gauges with those nice smartwatch round OLEDS you can get on ebay.

You are looking for OBD2 addresses? Here you go:


ChannelOBDII PIDCAN ID MatchRaw Value MappingFormulaUnits Conversion
PIDChannel NameShort NameUnitsPrecisionMin ValueMax ValueRateOBDII PIDModePassive Mode29 Bit ModeCAN ID MatchMaskSub IDCAN BusOffsetLengthSource TypeBit ModeEndianMultiplyDivideAddUnits Conversion
04Calculated LoadCalcLoad%1010010Hz401h20240Disabled131UnsignedBig1002550No Conversion
05Engine Coolant TempECT°F1030010Hz501h20240Disabled131UnsignedBig11-40 °C --> °F
06Short-Term Fuel Trim - Bank 1STFTB1%2-10010010Hz601h20240Disabled131UnsignedBig100128-100No Conversion
07Long-Term Fuel Trim - Bank 1LTFTB1%2-10010010Hz701h20240Disabled131UnsignedBig100128-100No Conversion
0BIntake Manifold PressureMAPpsia1025525Hz1101h20240Disabled131UnsignedBig14.696101.3250No Conversion
0CEngine SpeedRPM1/minutes0016383.7525Hz1201h20240Disabled132UnsignedBig140No Conversion
0DVehicle SpeedWheelSpeedmiles/hr0025525Hz1301h20240Disabled131UnsignedBig110kph --> MPH
0ETiming AdvanceAdvancedegrees2-6463.525Hz1401h20240Disabled131UnsignedBig12-64No Conversion
0FIntake Air TemperatureIAT°F1030025Hz1501h20240Disabled131UnsignedBig11-40 °C --> °F
11Throttle PositionTPS%1010025Hz1701h20240Disabled131UnsignedBig1002550No Conversion
15O2 Sensor 2 - Bank 1 (volts)O2S2B1Avolts301.27525Hz2101h20240Disabled131UnsignedBig12000No Conversion
15O2 Sensor 2 - Bank 1 (%)O2S2B1B%2-10010025Hz2101h20240Disabled141UnsignedBig100128-100No Conversion
1FTime Since Engine StartRunTimeseconds00655351Hz3101h20240Disabled132UnsignedBig110No Conversion
21Mileage With MIL OnMilDistancemiles00655351Hz3301h20240Disabled132UnsignedBig110kph --> MPH
2ECommanded Evap PurgeEvapPurge%101001Hz4601h20240Disabled131UnsignedBig1002550No Conversion
2FFuel LevelFuelLevel%101001Hz4701h20240Disabled131UnsignedBig1002550No Conversion
30Warmups Since Code ClearResetWarmups002551Hz4801h20240Disabled131UnsignedBig110No Conversion
31Mileage Since Code ClearResetDistancemiles00655351Hz4901h20240Disabled132UnsignedBig110kph --> MPH
33Barometric PressureAAPpsia102551Hz5101h20240Disabled131UnsignedBig14.696101.3250No Conversion
3AO2 Sensor 1 - Bank 1 - Air/Fuel (lambda)AFRlambda30225Hz5801h20240Disabled132UnsignedBig2655350No Conversion
3AO2 Sensor 1 - Bank 1 - Air/Fuel (mA)AFRmAmA1-12812825Hz5801h20240Disabled152UnsignedBig1256-128No Conversion
3CCatalyst Temp - Bank 1 S1CatTemp°F0030001Hz6001h20240Disabled132UnsignedBig110-40 °C --> °F
42ECU VoltageECUVoltsvolts10655351Hz6601h20240Disabled132UnsignedBig110000No Conversion
43Absolute Engine LoadAbsLoad%102570025Hz6701h20240Disabled132UnsignedBig1002550No Conversion
44Commanded Air/Fuel RatioAFRCommandedlambda30225Hz6801h20240Disabled132UnsignedBig2655350No Conversion
45Relative Throttle PositionRTP%1010025Hz6901h20240Disabled131UnsignedBig1002550No Conversion
46Ambient Air TemperatureAAT°F103001Hz7001h20240Disabled131UnsignedBig11-40 °C --> °F
47Absolute Throttle Position BATPB%1010025Hz7101h20240Disabled131UnsignedBig1002550No Conversion
49Accelerator Pedal Position DAPPD%1010025Hz7301h20240Disabled131UnsignedBig1002550No Conversion
4AAccelerator Pedal Position EAPPE%1010025Hz7401h20240Disabled131UnsignedBig1002550No Conversion
4CThrottle ActuatorThrottle%1010025Hz7601h20240Disabled131UnsignedBig1002550No Conversion
55Short-Term Fuel Trim 2 - Bank 1STFT2B1%1-10010025Hz8501h20240Disabled131UnsignedBig100128-100No Conversion
56Long-Term Fuel Trim 2 - Bank 1LTFT2B1%1-10010025Hz8601h20240Disabled131UnsignedBig100128-100No Conversion
5CEngine Oil TemperatureEOT°F1030010Hz9201h20240Disabled131UnsignedBig11-40 °C --> °F
62Actual TorqueTorque%1-12513025Hz9801h20240Disabled131UnsignedBig11-125No Conversion
67Engine Coolant Temp - Sensor 1ECTS1°F1030025Hz10301h20240Disabled131UnsignedBig11-40 °C --> °F
67Engine Coolant Temp - Sensor 2ECTS2°F1030025Hz10301h20240Disabled141UnsignedBig11-40 °C --> °F
68Intake Air Temperature - Sensor 1IATS1°F1030025Hz10401h20240Disabled131UnsignedBig11-40 °C --> °F
68Intake Air Temperature - Sensor 2IATS2°F1030025Hz10401h20240Disabled141UnsignedBig11-40 °C --> °F
 
OP
OP
Thraxbert

Thraxbert

Well-Known Member
First Name
Robert
Joined
May 3, 2021
Threads
24
Messages
1,057
Reaction score
1,879
Location
Texas
Car(s)
'20 Supra 3L, boosted 3.8L Gen Coupe, '93 Jimny
sorry for the bump, did you ever make any progress in general on reading different values through OBD port? things like boost, HP, Torque, temps and stuff, i know some custom gauges that are obd based do this and i was wondering if i can figure this out i can make my own 3d printed gauges with those nice smartwatch round OLEDS you can get on ebay.
All of these PIDs are already available straight from the ECU. They are common to all cars.
 
  • Like
Reactions: zrk

underdonk

Well-Known Member
Joined
Jan 6, 2021
Threads
44
Messages
1,879
Reaction score
1,878
Location
USA
Car(s)
'21 Supra 3.0 Premium
Catch me up here - how are you interfacing with the CAN bus?
 

underdonk

Well-Known Member
Joined
Jan 6, 2021
Threads
44
Messages
1,879
Reaction score
1,878
Location
USA
Car(s)
'21 Supra 3.0 Premium
Easiest place to tap into the CAN bus is the twisted pair in the passenger footwell. Right hand side, under the glove box. Pop off the plastic interior piece and it's right there.

IMG_4523.jpeg
Got it. Thank you. So it seems that @Thraxbert has arrived at the logical conclusion that the software is the limiting factor in this case. There are all sorts of open source CAN sniffing tools available as long as one has the hardware to support them. I have experience with this stuff on the industrial control system side of the shop (toxic and nuclear waste processing), but we use pretty specialized tools (hardware and software) for this purpose. I've seen the open source tools work, though. There are some good, general tools available on the commercial market I've used for this purpose (outside of automotive work) in the past as well. At the risk of stating the obvious, that seems like what's needed here? The answer could be yours for $14,999.
Sponsored

 
 




Top